You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

GitLab中使用BLAT发带附件邮件遇SMTP套接字错误的解决方法

解决BLAT发送邮件时的"Not a socket for a SMTP server"错误

这个错误其实很好理解——你现在的BLAT命令只说了要发什么内容、发给谁、带什么附件,但完全没告诉它该通过哪个SMTP服务器来发送邮件,它自然没法建立有效的socket连接,就会报这个错。咱们一步步来搞定:

1. 先给BLAT配置好SMTP基础信息(一次性操作)

首先得让BLAT知道你的发件邮箱对应的SMTP服务器参数,以你用的Yahoo邮箱为例,它的SMTP服务器是smtp.mail.yahoo.com,端口587,还需要SSL加密。

先执行一次配置命令(以后发邮件就不用重复输这些参数了):

blat -install smtp.mail.yahoo.com santoshkumar.angadi@yahoo.com 587

如果你的Yahoo邮箱开启了两步验证,直接用登录密码会失败,得去Yahoo账号设置里生成应用专用密码,然后把密码加上:

blat -install smtp.mail.yahoo.com santoshkumar.angadi@yahoo.com 587 -pw "你的Yahoo应用专用密码"

2. 修正你的发送命令

配置完成后,再运行你的发送命令,记得加上发件人参数-f(和配置的邮箱保持一致):

blat -subject "IP is not pingable" -body "please check the attachment for the error logs" -attach C:\Temp\error.txt -to santoshkumar.angadi@yahoo.com -f santoshkumar.angadi@yahoo.com

3. 不想提前配置?直接在命令里带全SMTP参数

要是你不想做一次性配置,每次发邮件时直接把所有SMTP参数都带上也行:

blat -subject "IP is not pingable" -body "please check the attachment for the error logs" -attach C:\Temp\error.txt -to santoshkumar.angadi@yahoo.com -f santoshkumar.angadi@yahoo.com -server smtp.mail.yahoo.com -port 587 -pw "你的Yahoo应用专用密码" -ssl

这里的-ssl参数必须加,因为Yahoo的SMTP要求强制SSL加密。

额外提醒

  • 要是你的GitLab是企业内部环境,优先用公司内部的SMTP服务器(找IT要地址、端口和认证信息),比公共邮箱更稳定
  • 先测试不带附件的简单邮件,确认SMTP连接没问题后再添加附件
  • 检查下防火墙/杀毒软件有没有拦截BLAT访问587端口

内容的提问来源于stack exchange,提问作者Santosh Kumar

火山引擎 最新活动