简体中文 ▾ 主题 ▾ 最新版本 ▾ git-imap-send 最近更新于 2.43.1

名称

git-imap-send - 将补丁集合从标准输入发送到 IMAP 文件夹

概要

git imap-send [-v] [-q] [--[no-]curl]

描述

此命令将使用 git format-patch 生成的邮件箱上传到 IMAP 草稿文件夹。这允许在使用无法直接读取邮件箱文件的邮件客户端时,像发送其他电子邮件一样发送补丁。该命令也适用于任何电子邮件字段按“From”、“Date”和“Subject”顺序排列的通用邮件箱。

典型用法如下:

git format-patch --signoff --stdout --attach origin | git imap-send

选项

-v
--verbose

显示详细信息。

-q
--quiet

静默模式。

--curl

使用 libcurl 与 IMAP 服务器通信,除非通过隧道连接。如果 Git 在构建时未设置 USE_CURL_FOR_IMAP_SEND 选项,则此选项将被忽略。

--no-curl

使用 Git 自己的 IMAP 例程与 IMAP 服务器通信,而不是使用 libcurl。如果 Git 在构建时设置了 NO_OPENSSL 选项,则此选项将被忽略。

配置

要使用此工具,必须将 imap.folderimap.tunnelimap.host 设置为适当的值。

本节中此行以上的所有内容均未包含在 git-config[1] 文档中。以下内容与该文档中的内容相同

imap.folder

邮件的存放文件夹,通常是草稿文件夹。例如:"INBOX.Drafts"、"INBOX/Drafts" 或 "[Gmail]/Drafts"。必填。

imap.tunnel

用于设置到 IMAP 服务器隧道的命令,通过该隧道将管道传输命令,而不是使用直接网络连接到服务器。当未设置 imap.host 时,此项为必填。

imap.host

标识服务器的 URL。对于非安全连接,使用 imap:// 前缀;对于安全连接,使用 imaps:// 前缀。当设置了 imap.tunnel 时,此项被忽略,否则为必填。

imap.user

登录服务器时使用的用户名。

imap.pass

登录服务器时使用的密码。

imap.port

连接到服务器的整数端口号。对于 imap:// 主机默认为 143,对于 imaps:// 主机默认为 993。当设置了 imap.tunnel 时,此项被忽略。

imap.sslverify

一个布尔值,用于启用/禁用 SSL/TLS 连接使用的服务器证书验证。默认为 true。当设置了 imap.tunnel 时,此项被忽略。

imap.preformattedHTML

一个布尔值,用于启用/禁用发送补丁时使用 HTML 编码。HTML 编码的补丁将用 <pre> 括起来,并具有 text/html 的内容类型。具有讽刺意味的是,启用此选项会导致 Thunderbird 将补丁作为纯文本、固定格式的电子邮件发送。默认为 false

imap.authMethod

指定与 IMAP 服务器进行身份验证的方法。如果 Git 是在没有 NO_CURL 选项的情况下构建的,或者您的 curl 版本早于 7.34.0,或者您正在使用 --no-curl 选项运行 git-imap-send,则唯一支持的方法是 CRAM-MD5。如果未设置此项,则 git imap-send 将使用基本的 IMAP 明文 LOGIN 命令。

示例

使用隧道模式

[imap]
    folder = "INBOX.Drafts"
    tunnel = "ssh -q -C user@example.com /usr/bin/imapd ./Maildir 2> /dev/null"

使用直接模式

[imap]
    folder = "INBOX.Drafts"
    host = imap://imap.example.com
    user = bob
    pass = p4ssw0rd

使用带 SSL 的直接模式

[imap]
    folder = "INBOX.Drafts"
    host = imaps://imap.example.com
    user = bob
    pass = p4ssw0rd
    port = 123
    ; sslVerify = false
注意
在排除故障时,您可能希望使用 sslVerify=false,如果您怀疑连接问题的原因是您在尝试设置(或已设置)的私有服务器 example.com 上使用的证书可能未正确验证。

使用 Gmail 的 IMAP 接口

[imap]
	folder = "[Gmail]/Drafts"
	host = imaps://imap.gmail.com
	user = user@gmail.com
	port = 993
注意
如果您收到“文件夹不存在”的错误,您可能需要改用:folder = "[Google Mail]/Drafts"
注意
如果您的 Gmail 帐户设置为非英语语言,“草稿”文件夹的名称将被本地化。

提交准备就绪后,运行以下命令:

$ git format-patch --cover-letter -M --stdout origin/master | git imap-send

请确保在邮件客户端中禁用自动换行(Gmail 的网页界面无论如何都会自动换行,因此您需要使用真实的 IMAP 客户端)。

注意

确保您的电子邮件程序发送的邮件符合项目标准仍然是您的责任。许多项目不喜欢以附件形式发送补丁。一些邮件代理会将补丁进行转换(例如,自动换行、以 format=flowed 格式发送),从而导致补丁失败。如果您不检查这一点,您将收到愤怒的指责和嘲笑。

特别是 Thunderbird 已知存在问题。Thunderbird 用户可以访问此网页了解更多信息:https://kb.mozillazine.org/Plain_text_e-mail_-_Thunderbird#Completely_plain_email

另请参阅

GIT

Git[1] 套件的一部分

scroll-to-top