git imap-send

优质
小牛编辑
131浏览
2023-12-01

名称

git-imap-send - 从 stdin 发送一组补丁到一个 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.folder和imap.tunnel 或 imap.host 设置为适当的值。

变量

imap.folder

放入邮件的文件夹,通常是草稿文件夹。例如:“INBOX.Drafts”,“INBOX /草稿”或“Gmail /草稿”。需要。

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

示例

要使用 GMail 的 IMAP 界面提交补丁,首先编辑 〜/ .gitconfig 来指定您的帐户设置:

[imap]
        folder = "[Gmail]/Drafts"
        host = imaps://imap.gmail.com
        user = user@gmail.com
        port = 993
        sslverify = false

如果出现“文件夹不存在”的错误,您可能需要改为使用:folder =“Google Mail / Drafts”。

一旦提交准备好发送,运行以下命令:

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

只需确保在电子邮件客户端中禁用换行(GMail 的 Web 界面将包装行,无论如何,所以您需要使用真正的 IMAP 客户端)。

警告

您仍然有责任确保您的电子邮件程序发送的电子邮件符合您项目的标准。许多项目不喜欢要添加的补丁。某些邮件代理会以某种方式转换补丁(例如换行,将它们以 format = flowed 的方式发送),从而导致它们失败。如果你不检查这个,你会生气地嘲笑你。