为什么 git-imap-send 似乎将 HTTP 发送到 IMAP 连接?

Why does git-imap-send seem to be sending HTTP to an IMAP connection?

我希望我没有在这里犯一些明显的错误,但是当尝试在命令 git format-patch --signoff --stdout --attach --root HEAD | git imap-send -v 中使用 git imap-send 时,我得到了这个(每个补丁重复一次错误) :

$ git format-patch --signoff --stdout --attach --root HEAD | git imap- 
send -v
sending 21 messages
*   Trying 192.168.1.22...
* Connected to mail.tdstoragebay.com (192.168.1.22) port 143 (#0)
* Server auth using Basic with user 'user'
> PUT /INBOX HTTP/1.1
Host: mail.tdstoragebay.com:143
Authorization: Basic auth-token
Accept: */*
Content-Length: 3233
Expect: 100-continue

* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE 
IDLE STARTTLS AUTH=PLAIN AUTH=LOGIN] TD-StorageBay Dovecot ready.
PUT BAD Error in IMAP command received by server.
Host: BAD Error in IMAP command received by server.
* BYE Too many invalid IMAP commands.
* Connection #0 to host mail.tdstoragebay.com left intact
* Found bundle for host mail.tdstoragebay.com: 0x1f59250 [serially]
* Connection 0 seems to be dead!
* Closing connection 0

在我看来,git imap-send 正试图将 HTTP 数据发送到我的 IMAP 服务器。我读过的所有文档似乎都没有 说明此行为,imap-send 使用普通 IMAP。如果是这样,这是怎么回事,更重要的是,如何解决?

Git版本:2.7.4

OS: Linux 薄荷 18.3

Git配置:

imap.host=imap://mail.tdstoragebay.com (internal server)
imap.port=143
imap.folder=INBOX

升级到 Git 2.18 后,错误似乎已自行解决。虽然我仍然很好奇为什么它首先存在。

自 Git 2.7.4

以来,已有一些与 imap 发送相关的修复

值得注意的是:

  • commit d2d07abimap-send:告诉 cURL 使用 imap://imaps://” (Git 2.10.2)
  • commit 690307fimap-send:如果需要,添加包装器以获取服务器凭据” (Git 2.15.0)

这些修复中的任何一个都可能对您的情况产生影响。


"git imap-send"(man) 用于忽略 core.askpass 等配置变量;此问题已在 Git 2.30(2021 年第一季度)、

中得到纠正

参见 commit 5021236 (01 Dec 2020) by Nicolas Morey-Chaisemartin (nmorey)
(由 Junio C Hamano -- gitster -- in commit 18da626 合并,2020 年 12 月 8 日)

imap-send: parse default git config

Reported-by: Philippe Blain
Signed-off-by: Nicolas Morey-Chaisemartin

git imap-send git config(man) does not parse the default settings and thus ignore core.askpass value.

Rewrite config parsing to support core settings.