使用git send-email时如何解决“无法正确初始化SMTP”的问题?

11
我试图使用git发送一个补丁。
当我尝试发送邮件时,会生成以下错误输出。

enter image description here

我的 .gitconfig 文件看起来像这样

enter image description here


你正在尝试通过以挑剔著称的 Gmail 服务器发送邮件。Git 邮件曾经工作过吗? - Thorbjørn Ravn Andersen
我第一次尝试这个,但我以前在许多其他软件中使用过 Gmail 服务器,而且它一直运行良好。 - jones j alapat
5个回答

3

公司防火墙可能会阻止所需端口

我注意到这个问题只在工作中出现,而在家里没有出现,后来发现我的工作防火墙正在阻止所需的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


2

我有一个类似的问题,在做了很多研究后,我找到了答案...

请按照以下方式配置.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日起,谷歌将不再支持使用第三方应用或设备,这些应用或设备要求您只使用用户名和密码登录您的谷歌账户。


1
从2022年5月30日起,不再支持使用较不安全的应用程序登录...https://support.google.com/accounts/answer/6010255?hl=en&visit_id=637977818727862987-3835089515&p=less-secure-apps&rd=1 - hustnzj

0

3
这个链接可能会提供答案,但请将链接中相关和重要的部分粘贴到您的回答中。这是因为如果链接被移动或删除,您的回答仍应为读者提供足够的信息。 - phoenix

0

我之前也遇到过类似的问题,后来发现我将加密协议设置为了 SSL 而非 TLS。在 .gitconfig 中更改这个参数有所帮助。

这篇文章说 Git 版本可能不是最新的,你可以试试更新 Git 版本。


smtpEncryption选项有点令人困惑。ssl表示普通的TLS连接(端口465),而tls表示STARTTLS(端口587)。 - Jan Schär

0

你能否ping通SMTP服务器?如果不能,使用SMTP服务器的IP地址。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接