git send-email发送消息失败

3
我正在尝试发送一个git补丁进行上游社区审查;但是接收者没有收到消息;
我已经尝试将'--to'更改为我的私人电子邮件地址之一,但即使这样也没有被发送到我的私人邮箱;
命令:
git send-email --no-chain-reply-to --from "Ganapathi Bhat <xxx@gmail.com>" --to linux-wireless@vger.kernel.org my_patch.patch

输出:

Unable to initialize SMTP properly. Check config and use --smtp-debug. VALUES: server=smtp.gmail.com encryption=tls hello=yyy.yyy.com port=587 at /usr/lib/git-core/git-send-email line 1506

命令:
``` git config -l ```
输出:
user.email=xxx@gmail.com
user.name=Ganapathi Bhat
sendemail.smtpencryption=tls
sendemail.smtpserver=smtp.gmail.com
sendemail.smtpuser=xxx@gmail.com
sendemail.smtpserverport=587

补丁应该被发送到社区进行审查流程,并且它应该出现在下面的列表中: https://patchwork.kernel.org/project/linux-wireless/list/

你能运行带有--smtp-debug参数的命令,并编辑你的回复,将它产生的输出内容包含在内吗? - undefined
在添加--smtp-debug=1之后,我没有获得任何额外的详细信息;甚至tcpdump也没有显示任何内容。 - undefined
1个回答

4
考虑到 git send-email手册,测试一下添加等号('=')是否会改变什么:
git send-email --no-chain-reply-to --from="Ganapathi Bhat" --to=linux-wireless@vger.kernel.org my_patch.patch
                                        ^^^                   ^^^

下一步是检查你的发送电子邮件配置git config -l
请参阅Git提示
例如,对于GMail:

git send-email现在支持TSL/SSL,因此使用gmail只需设置以下配置变量:

[sendemail]
    smtpencryption = tls
    smtpserver = smtp.gmail.com
    smtpuser = yourname@gmail.com
    smtpserverport = 587

OP Ganapathi Bhat确认了一个配置问题在评论中:

git send-email发送消息失败

我使用了错误的"smtpserver";
我联系了IT人员,获取了应该使用的正确"smtpserver",解决了问题。


提到sendmail配置,请确保使用sendemail

Git 2.29(2020年第四季度)将在定义"sendmail.*"配置变量时停止,这可能是错误尝试定义"sendemail.*"变量。

请参见提交记录dd84e52(2020年7月23日),由Drew DeVault(ddevault进行提交。
(由Junio C Hamano -- gitster --提交记录a00bda2中合并,2020年8月17日)

git-send-email: 如果设置了sendmail.*配置,则退出

签署者:Drew DeVault

我发现有几个人在第一次尝试使用git send-email(man)时会错误地设置sendmail.*配置选项,而不是sendemail.*
此补丁将检测此错误并以友好的警告退出。

git config现在在其手册页面中包括:

sendemail.forbidSendmailVariables

为避免常见的配置错误,如果存在任何"sendmail"的配置选项,git send-email将会以警告终止。设置此变量可绕过检查。


在Git 2.33(2021年第三季度)中, "git send-email"(man) 进行了一些优化,其中一些与上述提交相关。

请查看 提交 17530b2提交 c95e3a3提交 5a544a4提交 f4dc943提交 447ed29提交 4adbf38提交 fef381e提交 9264d29提交 2b110e9提交 119974e提交 671818a提交 879be43提交 ecc4ee9(2021年5月28日)由 Ævar Arnfjörð Bjarmason (avar)
(由Junio C Hamano -- gitster --提交 8de2e2e合并,日期为2021年7月22日)

send-email: 惰性加载配置以获得更快的速度提升

签名作者: Ævar Arnfjörð Bjarmason

缩短 git-send-email(man) 执行甚至最琐碎的任务(例如提供“-h”输出)所需的时间,首先列出已存在的配置键,然后只有在它们确实存在时才调用例如 "git config --bool"(man)。在多次运行中,这将使我从约250ms的时间加速到约150ms的时间,并且 t9001-send-email.sh 的运行时间从约25s加速到约20s。这引入了一种竞争条件,在我们发现列表并调用 read_config() 之间如果插入了配置键,则会执行“错误”的操作,即我们不会知道关于竞争性添加的键。理论上,这是一种行为上的改变,在实践中并不重要。此处更改的 config_regexp() 函数是在 dd84e52 添加的("如果设置了 sendmail.* 配置,则 git-send-email:die",2020-07-23,Git v2.29.0-rc0 -- merge 列在 batch #8 中),用于 git-send-email。因此,我们可以在找不到 git config 值的情况下更改其奇怪的返回值。如果以标量上下文调用 *.pm 代码的差异很重要,但现在不再如此。
注意:Git 2.33以上版本破坏了gitk,但已在Git 2.34(2021年第四季度)中修复:
请参见提交 b996f84(由Ævar Arnfjörð Bjarmason (avar)于2021年9月6日提交)。
(由Junio C Hamano -- gitster --于2021年9月15日合并至提交 10de757

send-email: 修复 v2.33.0 中“第一个配置键获胜”的回归问题

报告者:Eli Schwartz
测试者:Eli Schwartz
签名者:Ævar Arnfjörð Bjarmason

修复一个在我的c95e3a3 ("send-email: move trivial config handling to Perl", 2021-05-28, Git v2.33.0-rc0 -- merge listed in batch #6) 中的回归问题。在这个问题中,我们会选择多个定义过的配置键中的第一个,而不是使用 "git config --get"(man)" 的正常 "最后一个键胜出" 语义。
例如,当 .git/config 中的 sendemail.smtpServer 和 ~/.gitconfig 中的值不同时,就会出现问题。
我们会选择 ~/.gitconfig 而不是 .git/config,而不是更喜欢存储库本地版本。
对于/etc/gitconfig等也是如此。
即,如果在 say ~/.gitconfig 和 in-repo .git/config 中设置了任何一个,那么在 v2.33.0 中将优先选择 --global 而不是 --local。

@GanapathiBhat 我已经编辑了答案:sendemail配置应该更新。 - undefined
非常抱歉;我可以检查一下,但有没有快速的方法(最好是命令行)来确认这个问题;我正在使用Ubuntu系统; - undefined
我之前使用了错误的"smtpserver";我联系了IT人员,得到了正确的"smtpserver",解决了问题;非常感谢你的帮助; - undefined
@GanapathiBhat 太棒了!我已经将您的评论包含在答案中,以增加可见性。 - undefined
1
将sendmail更改为sendemail对我解决了问题。谢谢。 - undefined
显示剩余4条评论

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