1df823862SWu XiangCheng.. SPDX-License-Identifier: GPL-2.0-or-later 29d47f514SAlex Shi 38bfb5561SAlex Shi.. include:: ../disclaimer-zh_CN.rst 49d47f514SAlex Shi 5*78b07714SWu XiangCheng.. _cn_email_clients: 6*78b07714SWu XiangCheng 7df823862SWu XiangCheng:Original: Documentation/process/email-clients.rst 89d47f514SAlex Shi 9df823862SWu XiangCheng:译者: 10df823862SWu XiangCheng - 贾威威 Harry Wei <harryxiyou@gmail.com> 11df823862SWu XiangCheng - 时奎亮 Alex Shi <alexs@kernel.org> 12df823862SWu XiangCheng - 吴想成 Wu XiangCheng <bobwxc@email.cn> 139d47f514SAlex Shi 14df823862SWu XiangCheng:校译: 15df823862SWu XiangCheng - Yinglin Luan <synmyth@gmail.com> 16df823862SWu XiangCheng - Xiaochen Wang <wangxiaochen0@gmail.com> 17df823862SWu XiangCheng - yaxinsn <yaxinsn@163.com> 189d47f514SAlex Shi 199d47f514SAlex ShiLinux邮件客户端配置信息 208bfb5561SAlex Shi======================= 219d47f514SAlex Shi 224ed38de7SAlex ShiGit 234ed38de7SAlex Shi--- 244ed38de7SAlex Shi 254ed38de7SAlex Shi现在大多数开发人员使用 ``git send-email`` 而不是常规的电子邮件客户端。这方面 264ed38de7SAlex Shi的手册非常好。在接收端,维护人员使用 ``git am`` 加载补丁。 274ed38de7SAlex Shi 284ed38de7SAlex Shi如果你是 ``git`` 新手,那么把你的第一个补丁发送给你自己。将其保存为包含所有 294ed38de7SAlex Shi标题的原始文本。运行 ``git am raw_email.txt`` ,然后使用 ``git log`` 查看更 304ed38de7SAlex Shi改日志。如果工作正常,再将补丁发送到相应的邮件列表。 314ed38de7SAlex Shi 324ed38de7SAlex Shi 33df823862SWu XiangCheng通用配置 348bfb5561SAlex Shi-------- 35df823862SWu XiangCheng 369d47f514SAlex ShiLinux内核补丁是通过邮件被提交的,最好把补丁作为邮件体的内嵌文本。有些维护者 379d47f514SAlex Shi接收附件,但是附件的内容格式应该是"text/plain"。然而,附件一般是不赞成的, 389d47f514SAlex Shi因为这会使补丁的引用部分在评论过程中变的很困难。 399d47f514SAlex Shi 40df823862SWu XiangCheng同时也强烈建议在补丁或其他邮件的正文中使用纯文本格式。https://useplaintext.email 41df823862SWu XiangCheng有助于了解如何配置你喜欢的邮件客户端,并在您还没有首选的情况下列出一些推荐的 42df823862SWu XiangCheng客户端。 43df823862SWu XiangCheng 449d47f514SAlex Shi用来发送Linux内核补丁的邮件客户端在发送补丁时应该处于文本的原始状态。例如, 459d47f514SAlex Shi他们不能改变或者删除制表符或者空格,甚至是在每一行的开头或者结尾。 469d47f514SAlex Shi 479d47f514SAlex Shi不要通过"format=flowed"模式发送补丁。这样会引起不可预期以及有害的断行。 489d47f514SAlex Shi 499d47f514SAlex Shi不要让你的邮件客户端进行自动换行。这样也会破坏你的补丁。 509d47f514SAlex Shi 51df823862SWu XiangCheng邮件客户端不能改变文本的字符集编码方式。要发送的补丁只能是ASCII或者UTF-8编码 52df823862SWu XiangCheng方式,如果你使用UTF-8编码方式发送邮件,那么你将会避免一些可能发生的字符集问题。 539d47f514SAlex Shi 54df823862SWu XiangCheng邮件客户端应该生成并且保持“References:”或者“In-Reply-To:”邮件头,这样邮件会话 55df823862SWu XiangCheng就不会中断。 569d47f514SAlex Shi 57df823862SWu XiangCheng复制粘帖(或者剪贴粘帖)通常不能用于补丁,因为制表符会转换为空格。使用xclipboard, 58df823862SWu XiangChengxclip或者xcutsel也许可以,但是最好测试一下或者避免使用复制粘帖。 599d47f514SAlex Shi 60df823862SWu XiangCheng不要在使用PGP/GPG签名的邮件中包含补丁。这样会使得很多脚本不能读取和适用于你的 61df823862SWu XiangCheng补丁。(这个问题应该是可以修复的) 629d47f514SAlex Shi 639d47f514SAlex Shi在给内核邮件列表发送补丁之前,给自己发送一个补丁是个不错的主意,保存接收到的 649d47f514SAlex Shi邮件,将补丁用'patch'命令打上,如果成功了,再给内核邮件列表发送。 659d47f514SAlex Shi 669d47f514SAlex Shi 679d47f514SAlex Shi一些邮件客户端提示 688bfb5561SAlex Shi------------------ 69df823862SWu XiangCheng 709d47f514SAlex Shi这里给出一些详细的MUA配置提示,可以用于给Linux内核发送补丁。这些并不意味是 719d47f514SAlex Shi所有的软件包配置总结。 729d47f514SAlex Shi 739d47f514SAlex Shi说明: 74df823862SWu XiangCheng 75df823862SWu XiangCheng- TUI = 以文本为基础的用户接口 76df823862SWu XiangCheng- GUI = 图形界面用户接口 779d47f514SAlex Shi 789d47f514SAlex ShiAlpine (TUI) 79df823862SWu XiangCheng************ 809d47f514SAlex Shi 819d47f514SAlex Shi配置选项: 829d47f514SAlex Shi 83df823862SWu XiangCheng在 :menuselection:`Sending Preferences` 菜单: 849d47f514SAlex Shi 85df823862SWu XiangCheng- :menuselection:`Do Not Send Flowed Text` 必须开启 86df823862SWu XiangCheng- :menuselection:`Strip Whitespace Before Sending` 必须关闭 87df823862SWu XiangCheng 88df823862SWu XiangCheng当写邮件时,光标应该放在补丁会出现的地方,然后按下 :kbd:`CTRL-R` 组合键,使指 89df823862SWu XiangCheng定的补丁文件嵌入到邮件中。 90df823862SWu XiangCheng 91df823862SWu XiangChengClaws Mail (GUI) 92df823862SWu XiangCheng**************** 93df823862SWu XiangCheng 94df823862SWu XiangCheng可以用,有人用它成功地发过补丁。 95df823862SWu XiangCheng 96df823862SWu XiangCheng用 :menuselection:`Message-->Insert File` (:kbd:`CTRL-I`) 或外置编辑器插入补丁。 97df823862SWu XiangCheng 98df823862SWu XiangCheng若要在Claws编辑窗口重修改插入的补丁,需关闭 99df823862SWu XiangCheng:menuselection:`Configuration-->Preferences-->Compose-->Wrapping` 100df823862SWu XiangCheng的 `Auto wrapping` 。 1019d47f514SAlex Shi 1029d47f514SAlex ShiEvolution (GUI) 103df823862SWu XiangCheng*************** 1049d47f514SAlex Shi 1059d47f514SAlex Shi一些开发者成功的使用它发送补丁。 1069d47f514SAlex Shi 107df823862SWu XiangCheng撰写邮件时: 108df823862SWu XiangCheng从 :menuselection:`格式-->段落样式-->预格式化` (:kbd:`CTRL-7`) 109df823862SWu XiangCheng或工具栏选择 :menuselection:`预格式化` ; 1109d47f514SAlex Shi 111df823862SWu XiangCheng然后使用: 112df823862SWu XiangCheng:menuselection:`插入-->文本文件...` (:kbd:`ALT-N x`) 插入补丁文件。 1139d47f514SAlex Shi 114df823862SWu XiangCheng你还可以 ``diff -Nru old.c new.c | xclip`` ,选择 :menuselection:`预格式化` , 115df823862SWu XiangCheng然后使用鼠标中键进行粘帖。 1169d47f514SAlex Shi 117df823862SWu XiangChengKmail (GUI) 118df823862SWu XiangCheng*********** 1199d47f514SAlex Shi 120df823862SWu XiangCheng一些开发者成功的使用它发送补丁。 1219d47f514SAlex Shi 122df823862SWu XiangCheng默认撰写设置禁用HTML格式是合适的;不要启用它。 1239d47f514SAlex Shi 124df823862SWu XiangCheng当书写一封邮件的时候,在选项下面不要选择自动换行。唯一的缺点就是你在邮件中输 125df823862SWu XiangCheng入的任何文本都不会被自动换行,因此你必须在发送补丁之前手动换行。最简单的方法 126df823862SWu XiangCheng就是启用自动换行来书写邮件,然后把它保存为草稿。一旦你在草稿中再次打开它,它 127df823862SWu XiangCheng已经全部自动换行了,那么你的邮件虽然没有选择自动换行,但是还不会失去已有的自 128df823862SWu XiangCheng动换行。 129df823862SWu XiangCheng 130df823862SWu XiangCheng在邮件的底部,插入补丁之前,放上常用的补丁定界符:三个连字符(``---``)。 131df823862SWu XiangCheng 132df823862SWu XiangCheng然后在 :menuselection:`信件` 菜单,选择 :menuselection:`插入文本文件` ,接 133df823862SWu XiangCheng着选取你的补丁文件。还有一个额外的选项,你可以通过它配置你的创建新邮件工具栏, 134df823862SWu XiangCheng加上 :menuselection:`插入文本文件` 图标。 135df823862SWu XiangCheng 136df823862SWu XiangCheng将编辑器窗口拉到足够宽避免折行。对于KMail 1.13.5 (KDE 4.5.4),它会在发送邮件 137df823862SWu XiangCheng时对编辑器窗口中显示折行的地方自动换行。在选项菜单中取消自动换行仍不能解决。 138df823862SWu XiangCheng因此,如果你的补丁中有非常长的行,必须在发送之前把编辑器窗口拉得非常宽。 139df823862SWu XiangCheng参见:https://bugs.kde.org/show_bug.cgi?id=174034 140df823862SWu XiangCheng 141df823862SWu XiangCheng你可以安全地用GPG签名附件,但是内嵌补丁最好不要使用GPG签名它们。作为内嵌文本 142df823862SWu XiangCheng插入的签名补丁将使其难以从7-bit编码中提取。 143df823862SWu XiangCheng 144df823862SWu XiangCheng如果你非要以附件的形式发送补丁,那么就右键点击附件,然后选择 145df823862SWu XiangCheng:menuselection:`属性` ,打开 :menuselection:`建议自动显示` ,使附件内联更容 146df823862SWu XiangCheng易让读者看到。 147df823862SWu XiangCheng 148df823862SWu XiangCheng当你要保存将要发送的内嵌文本补丁,你可以从消息列表窗格选择包含补丁的邮件,然 149df823862SWu XiangCheng后右键选择 :menuselection:`另存为` 。如果整个电子邮件的组成正确,您可直接将 150df823862SWu XiangCheng其作为补丁使用。电子邮件以当前用户可读写权限保存,因此您必须 ``chmod`` ,以 151df823862SWu XiangCheng使其在复制到别处时用户组和其他人可读。 1529d47f514SAlex Shi 1539d47f514SAlex ShiLotus Notes (GUI) 154df823862SWu XiangCheng***************** 1559d47f514SAlex Shi 1569d47f514SAlex Shi不要使用它。 1579d47f514SAlex Shi 158df823862SWu XiangChengIBM Verse (Web GUI) 159df823862SWu XiangCheng******************* 160df823862SWu XiangCheng 161df823862SWu XiangCheng同上条。 162df823862SWu XiangCheng 1639d47f514SAlex ShiMutt (TUI) 164df823862SWu XiangCheng********** 1659d47f514SAlex Shi 166df823862SWu XiangCheng很多Linux开发人员使用mutt客户端,这证明它肯定工作得非常漂亮。 1679d47f514SAlex Shi 168df823862SWu XiangChengMutt不自带编辑器,所以不管你使用什么编辑器,不自动断行就行。大多数编辑器都有 169df823862SWu XiangCheng:menuselection:`插入文件` 选项,它可以在不改变文件内容的情况下插入文件。 1709d47f514SAlex Shi 171df823862SWu XiangCheng用 ``vim`` 作为mutt的编辑器:: 172df823862SWu XiangCheng 1739d47f514SAlex Shi set editor="vi" 1749d47f514SAlex Shi 175df823862SWu XiangCheng如果使用xclip,敲入以下命令:: 176df823862SWu XiangCheng 1779d47f514SAlex Shi :set paste 178df823862SWu XiangCheng 179df823862SWu XiangCheng然后再按中键或者shift-insert或者使用:: 180df823862SWu XiangCheng 1819d47f514SAlex Shi :r filename 1829d47f514SAlex Shi 183df823862SWu XiangCheng把补丁插入为内嵌文本。 184df823862SWu XiangCheng在未设置 ``set paste`` 时(a)ttach工作的很好。 1859d47f514SAlex Shi 186bb08dbb3SAlex Shi你可以通过 ``git format-patch`` 生成补丁,然后用 Mutt发送它们:: 187bb08dbb3SAlex Shi 188bb08dbb3SAlex Shi $ mutt -H 0001-some-bug-fix.patch 189bb08dbb3SAlex Shi 1909d47f514SAlex Shi配置选项: 191df823862SWu XiangCheng 1929d47f514SAlex Shi它应该以默认设置的形式工作。 193df823862SWu XiangCheng然而,把 ``send_charset`` 设置一下也是一个不错的主意:: 194df823862SWu XiangCheng 195df823862SWu XiangCheng set send_charset="us-ascii:utf-8" 1969d47f514SAlex Shi 197bb08dbb3SAlex ShiMutt 是高度可配置的。 这里是个使用mutt通过 Gmail 发送的补丁的最小配置:: 198bb08dbb3SAlex Shi 199bb08dbb3SAlex Shi # .muttrc 200bb08dbb3SAlex Shi # ================ IMAP ==================== 201bb08dbb3SAlex Shi set imap_user = 'yourusername@gmail.com' 202bb08dbb3SAlex Shi set imap_pass = 'yourpassword' 203bb08dbb3SAlex Shi set spoolfile = imaps://imap.gmail.com/INBOX 204bb08dbb3SAlex Shi set folder = imaps://imap.gmail.com/ 205bb08dbb3SAlex Shi set record="imaps://imap.gmail.com/[Gmail]/Sent Mail" 206bb08dbb3SAlex Shi set postponed="imaps://imap.gmail.com/[Gmail]/Drafts" 207bb08dbb3SAlex Shi set mbox="imaps://imap.gmail.com/[Gmail]/All Mail" 208bb08dbb3SAlex Shi 209bb08dbb3SAlex Shi # ================ SMTP ==================== 210bb08dbb3SAlex Shi set smtp_url = "smtp://username@smtp.gmail.com:587/" 211bb08dbb3SAlex Shi set smtp_pass = $imap_pass 212bb08dbb3SAlex Shi set ssl_force_tls = yes # Require encrypted connection 213bb08dbb3SAlex Shi 214bb08dbb3SAlex Shi # ================ Composition ==================== 215bb08dbb3SAlex Shi set editor = `echo \$EDITOR` 216bb08dbb3SAlex Shi set edit_headers = yes # See the headers when editing 217bb08dbb3SAlex Shi set charset = UTF-8 # value of $LANG; also fallback for send_charset 218bb08dbb3SAlex Shi # Sender, email address, and sign-off line must match 219bb08dbb3SAlex Shi unset use_domain # because joe@localhost is just embarrassing 220bb08dbb3SAlex Shi set realname = "YOUR NAME" 221bb08dbb3SAlex Shi set from = "username@gmail.com" 222bb08dbb3SAlex Shi set use_from = yes 223bb08dbb3SAlex Shi 224df823862SWu XiangChengMutt文档含有更多信息: 225bb08dbb3SAlex Shi 226df823862SWu XiangCheng https://gitlab.com/muttmua/mutt/-/wikis/UseCases/Gmail 227bb08dbb3SAlex Shi 228df823862SWu XiangCheng http://www.mutt.org/doc/manual/ 229bb08dbb3SAlex Shi 2309d47f514SAlex ShiPine (TUI) 231df823862SWu XiangCheng********** 2329d47f514SAlex Shi 2339d47f514SAlex ShiPine过去有一些空格删减问题,但是这些现在应该都被修复了。 2349d47f514SAlex Shi 235df823862SWu XiangCheng如果可以,请使用alpine(pine的继承者)。 2369d47f514SAlex Shi 2379d47f514SAlex Shi配置选项: 238df823862SWu XiangCheng 239df823862SWu XiangCheng- 最近的版本需要 ``quell-flowed-text`` 240df823862SWu XiangCheng- ``no-strip-whitespace-before-send`` 选项也是需要的。 2419d47f514SAlex Shi 2429d47f514SAlex Shi 2439d47f514SAlex ShiSylpheed (GUI) 244df823862SWu XiangCheng************** 2459d47f514SAlex Shi 2469d47f514SAlex Shi- 内嵌文本可以很好的工作(或者使用附件)。 2479d47f514SAlex Shi- 允许使用外部的编辑器。 248df823862SWu XiangCheng- 收件箱较多时非常慢。 2499d47f514SAlex Shi- 如果通过non-SSL连接,无法使用TLS SMTP授权。 250df823862SWu XiangCheng- 撰写窗口的标尺很有用。 251df823862SWu XiangCheng- 将地址添加到通讯簿时无法正确理解显示的名称。 2529d47f514SAlex Shi 2539d47f514SAlex ShiThunderbird (GUI) 254df823862SWu XiangCheng***************** 2559d47f514SAlex Shi 256df823862SWu XiangChengThunderbird是Outlook的克隆版本,它很容易损坏文本,但也有一些方法强制修正。 2579d47f514SAlex Shi 258df823862SWu XiangCheng在完成修改后(包括安装扩展),您需要重新启动Thunderbird。 2599d47f514SAlex Shi 260df823862SWu XiangCheng- 允许使用外部编辑器: 2619d47f514SAlex Shi 262df823862SWu XiangCheng 使用Thunderbird发补丁最简单的方法是使用扩展来打开您最喜欢的外部编辑器。 2639d47f514SAlex Shi 264df823862SWu XiangCheng 下面是一些能够做到这一点的扩展样例。 2659d47f514SAlex Shi 266df823862SWu XiangCheng - “External Editor Revived” 267df823862SWu XiangCheng 268df823862SWu XiangCheng https://github.com/Frederick888/external-editor-revived 269df823862SWu XiangCheng 270df823862SWu XiangCheng https://addons.thunderbird.net/en-GB/thunderbird/addon/external-editor-revived/ 271df823862SWu XiangCheng 272df823862SWu XiangCheng 它需要安装“本地消息主机(native messaging host)”。 273df823862SWu XiangCheng 参见以下文档: 274df823862SWu XiangCheng https://github.com/Frederick888/external-editor-revived/wiki 275df823862SWu XiangCheng 276df823862SWu XiangCheng - “External Editor” 277df823862SWu XiangCheng 278df823862SWu XiangCheng https://github.com/exteditor/exteditor 279df823862SWu XiangCheng 280df823862SWu XiangCheng 下载并安装此扩展,然后打开 :menuselection:`新建消息` 窗口, 用 281df823862SWu XiangCheng :menuselection:`查看-->工具栏-->自定义...` 给它增加一个按钮,直接点击此 282df823862SWu XiangCheng 按钮即可使用外置编辑器。 283df823862SWu XiangCheng 284df823862SWu XiangCheng 请注意,“External Editor”要求你的编辑器不能fork,换句话说,编辑器必须在 285df823862SWu XiangCheng 关闭前不返回。你可能需要传递额外的参数或修改编辑器设置。最值得注意的是, 286df823862SWu XiangCheng 如果您使用的是gvim,那么您必须将 :menuselection:`external editor` 设置的 287df823862SWu XiangCheng 编辑器字段设置为 ``/usr/bin/gvim --nofork"`` (假设可执行文件在 288df823862SWu XiangCheng ``/usr/bin`` ),以传递 ``-f`` 参数。如果您正在使用其他编辑器,请阅读其 289df823862SWu XiangCheng 手册了解如何处理。 290df823862SWu XiangCheng 291df823862SWu XiangCheng若要修正内部编辑器,请执行以下操作: 292df823862SWu XiangCheng 293df823862SWu XiangCheng- 修改你的Thunderbird设置,不要使用 ``format=flowed`` ! 294df823862SWu XiangCheng 回到主窗口,按照 295df823862SWu XiangCheng :menuselection:`主菜单-->首选项-->常规-->配置编辑器...` 296df823862SWu XiangCheng 打开Thunderbird的配置编辑器。 297df823862SWu XiangCheng 298df823862SWu XiangCheng - 将 ``mailnews.send_plaintext_flowed`` 设为 ``false`` 299df823862SWu XiangCheng 300df823862SWu XiangCheng - 将 ``mailnews.wraplength`` 从 ``72`` 改为 ``0`` 301df823862SWu XiangCheng 302df823862SWu XiangCheng- 不要写HTML邮件! 303df823862SWu XiangCheng 回到主窗口,打开 304df823862SWu XiangCheng :menuselection:`主菜单-->账户设置-->你的@邮件.地址-->通讯录/编写&地址簿` , 305df823862SWu XiangCheng 关掉 ``以HTML格式编写消息`` 。 306df823862SWu XiangCheng 307df823862SWu XiangCheng- 只用纯文本格式查看邮件! 308df823862SWu XiangCheng 回到主窗口, :menuselection:`主菜单-->查看-->消息体为-->纯文本` ! 3099d47f514SAlex Shi 3109d47f514SAlex ShiTkRat (GUI) 311df823862SWu XiangCheng*********** 3129d47f514SAlex Shi 3139d47f514SAlex Shi可以使用它。使用"Insert file..."或者外部的编辑器。 3149d47f514SAlex Shi 3159d47f514SAlex ShiGmail (Web GUI) 316df823862SWu XiangCheng*************** 3179d47f514SAlex Shi 3189d47f514SAlex Shi不要使用它发送补丁。 3199d47f514SAlex Shi 3209d47f514SAlex ShiGmail网页客户端自动地把制表符转换为空格。 3219d47f514SAlex Shi 322df823862SWu XiangCheng虽然制表符转换为空格问题可以被外部编辑器解决,但它同时还会使用回车换行把每行 323df823862SWu XiangCheng拆分为78个字符。 3249d47f514SAlex Shi 325df823862SWu XiangCheng另一个问题是Gmail还会把任何含有非ASCII的字符的消息改用base64编码,如欧洲人的 326df823862SWu XiangCheng名字。 3279d47f514SAlex Shi 328