当我尝试发送邮件时,会生成以下错误输出。
我的 .gitconfig 文件看起来像这样
我的 .gitconfig 文件看起来像这样
公司防火墙可能会阻止所需端口
我注意到这个问题只在工作中出现,而在家里没有出现,后来发现我的工作防火墙正在阻止所需的IMAP / SMTP端口。
如果是这种情况,你必须与你的网络管理员交谈。
不同之处在于,当你使用像Gmail这样的Web界面时,所有的流量都通过HTTP端口进行传输,而这些端口是允许的,但是git send-email
直接使用电子邮件协议端口。
测试的一个好方法是,先尝试使用mutt
或其他本地电子邮件客户端发送常规邮件,以避免污染公共邮件列表。
你还可以查看以下问题的答案,检查是否有出站端口被阻止:https://superuser.com/questions/631087/how-to-easily-determine-which-outbound-ports-arent-blocked-by-firewall
我有一个类似的问题,在做了很多研究后,我找到了答案...
请按照以下方式配置.gitconfig文件...
[sendemail]
from = yourEmail@gmail.com
smtpserver = smtp.gmail.com
smtpserverport = 587
smtpencryption = tls
smtpuser = yourEmail@gmail.com
smtppass = password
suppresscc = self
chainreplyto = false
接下来,您必须允许您的邮件帐户从不安全的应用程序登录,例如对于Gmail,请按照以下链接操作:https://support.google.com/accounts/answer/6010255?hl=en
要调试实际错误,您可以启用以下标志。
--smtp-debug=1
为了保护您的账户安全,从2022年5月30日起,谷歌将不再支持使用第三方应用或设备,这些应用或设备要求您只使用用户名和密码登录您的谷歌账户。
请尝试此链接: http://morefedora.blogspot.com/2009/02/configuring-git-send-email-to-use-gmail.html
除此之外,您可能还需要更改 Gmail 帐户中的设置,以允许不安全的应用程序设置 (https://www.google.com/settings/security/lesssecureapps)。
我之前也遇到过类似的问题,后来发现我将加密协议设置为了 SSL 而非 TLS。在 .gitconfig
中更改这个参数有所帮助。
这篇文章说 Git 版本可能不是最新的,你可以试试更新 Git 版本。
smtpEncryption
选项有点令人困惑。ssl
表示普通的TLS连接(端口465),而tls
表示STARTTLS(端口587)。 - Jan Schär你能否ping通SMTP服务器?如果不能,使用SMTP服务器的IP地址。