1 .. SPDX-License-Identifier: GPL-2.0-or-later 1 .. SPDX-License-Identifier: GPL-2.0-or-later 2 2 3 .. include:: ../disclaimer-zh_CN.rst 3 .. include:: ../disclaimer-zh_CN.rst 4 4 5 .. _cn_email_clients: 5 .. _cn_email_clients: 6 6 7 :Original: Documentation/process/email-clients 7 :Original: Documentation/process/email-clients.rst 8 8 9 :译者: 9 :译者: 10 - 贾威威 Harry Wei <harryxiyou@gmail.com> 10 - 贾威威 Harry Wei <harryxiyou@gmail.com> 11 - 时奎亮 Alex Shi <alexs@kernel.org> 11 - 时奎亮 Alex Shi <alexs@kernel.org> 12 - 吴想成 Wu XiangCheng <bobwxc@email.cn> 12 - 吴想成 Wu XiangCheng <bobwxc@email.cn> 13 13 14 :校译: 14 :校译: 15 - Yinglin Luan <synmyth@gmail.com> 15 - Yinglin Luan <synmyth@gmail.com> 16 - Xiaochen Wang <wangxiaochen0@gmail.com> 16 - Xiaochen Wang <wangxiaochen0@gmail.com> 17 - yaxinsn <yaxinsn@163.com> 17 - yaxinsn <yaxinsn@163.com> 18 18 19 Linux邮件客户端配置信息 19 Linux邮件客户端配置信息 20 ======================= 20 ======================= 21 21 22 Git 22 Git 23 --- 23 --- 24 24 25 现在大多数开发人员使用 ``git send-e 25 现在大多数开发人员使用 ``git send-email`` 而不是常规的电子邮件客户端。这方面 26 的手册非常好。在接收端,维护人 26 的手册非常好。在接收端,维护人员使用 ``git am`` 加载补丁。 27 27 28 如果你是 ``git`` 新手,那么把你的 28 如果你是 ``git`` 新手,那么把你的第一个补丁发送给你自己。将其保存为包含所有 29 标题的原始文本。运行 ``git am raw_em 29 标题的原始文本。运行 ``git am raw_email.txt`` ,然后使用 ``git log`` 查看更 30 改日志。如果工作正常,再将补丁 30 改日志。如果工作正常,再将补丁发送到相应的邮件列表。 31 31 32 32 33 通用配置 33 通用配置 34 -------- 34 -------- 35 35 36 Linux内核补丁是通过邮件被提交的 36 Linux内核补丁是通过邮件被提交的,最好把补丁作为邮件体的内嵌文本。有些维护者 37 接收附件,但是附件的内容格式应 37 接收附件,但是附件的内容格式应该是"text/plain"。然而,附件一般是不赞成的, 38 因为这会使补丁的引用部分在评论 38 因为这会使补丁的引用部分在评论过程中变的很困难。 39 39 40 同时也强烈建议在补丁或其他邮件 40 同时也强烈建议在补丁或其他邮件的正文中使用纯文本格式。https://useplaintext.email 41 有助于了解如何配置你喜欢的邮件 41 有助于了解如何配置你喜欢的邮件客户端,并在您还没有首选的情况下列出一些推荐的 42 客户端。 42 客户端。 43 43 44 用来发送Linux内核补丁的邮件客户 44 用来发送Linux内核补丁的邮件客户端在发送补丁时应该处于文本的原始状态。例如, 45 他们不能改变或者删除制表符或者 45 他们不能改变或者删除制表符或者空格,甚至是在每一行的开头或者结尾。 46 46 47 不要通过"format=flowed"模式发送补丁 47 不要通过"format=flowed"模式发送补丁。这样会引起不可预期以及有害的断行。 48 48 49 不要让你的邮件客户端进行自动换 49 不要让你的邮件客户端进行自动换行。这样也会破坏你的补丁。 50 50 51 邮件客户端不能改变文本的字符集 51 邮件客户端不能改变文本的字符集编码方式。要发送的补丁只能是ASCII或者UTF-8编码 52 方式,如果你使用UTF-8编码方式发 52 方式,如果你使用UTF-8编码方式发送邮件,那么你将会避免一些可能发生的字符集问题。 53 53 54 邮件客户端应该生成并且保持“Refe 54 邮件客户端应该生成并且保持“References:”或者“In-Reply-To:”邮件头,这样邮件会话 55 就不会中断。 55 就不会中断。 56 56 57 复制粘帖(或者剪贴粘帖)通常不能 57 复制粘帖(或者剪贴粘帖)通常不能用于补丁,因为制表符会转换为空格。使用xclipboard, 58 xclip或者xcutsel也许可以,但是最好 58 xclip或者xcutsel也许可以,但是最好测试一下或者避免使用复制粘帖。 59 59 60 不要在使用PGP/GPG签名的邮件中包含 60 不要在使用PGP/GPG签名的邮件中包含补丁。这样会使得很多脚本不能读取和适用于你的 61 补丁。(这个问题应该是可以修复 61 补丁。(这个问题应该是可以修复的) 62 62 63 在给内核邮件列表发送补丁之前, 63 在给内核邮件列表发送补丁之前,给自己发送一个补丁是个不错的主意,保存接收到的 64 邮件,将补丁用'patch'命令打上,如 64 邮件,将补丁用'patch'命令打上,如果成功了,再给内核邮件列表发送。 65 65 66 66 67 一些邮件客户端提示 67 一些邮件客户端提示 68 ------------------ 68 ------------------ 69 69 70 这里给出一些详细的MUA配置提示, 70 这里给出一些详细的MUA配置提示,可以用于给Linux内核发送补丁。这些并不意味是 71 所有的软件包配置总结。 71 所有的软件包配置总结。 72 72 73 说明: 73 说明: 74 74 75 - TUI = 以文本为基础的用户接口 75 - TUI = 以文本为基础的用户接口 76 - GUI = 图形界面用户接口 76 - GUI = 图形界面用户接口 77 77 78 Alpine (TUI) 78 Alpine (TUI) 79 ************ 79 ************ 80 80 81 配置选项: 81 配置选项: 82 82 83 在 :menuselection:`Sending Preferences` 菜 83 在 :menuselection:`Sending Preferences` 菜单: 84 84 85 - :menuselection:`Do Not Send Flowed Text` 必 85 - :menuselection:`Do Not Send Flowed Text` 必须开启 86 - :menuselection:`Strip Whitespace Before Send 86 - :menuselection:`Strip Whitespace Before Sending` 必须关闭 87 87 88 当写邮件时,光标应该放在补丁会 88 当写邮件时,光标应该放在补丁会出现的地方,然后按下 :kbd:`CTRL-R` 组合键,使指 89 定的补丁文件嵌入到邮件中。 89 定的补丁文件嵌入到邮件中。 90 90 91 Claws Mail (GUI) 91 Claws Mail (GUI) 92 **************** 92 **************** 93 93 94 可以用,有人用它成功地发过补丁 94 可以用,有人用它成功地发过补丁。 95 95 96 用 :menuselection:`Message-->Insert File` (:k 96 用 :menuselection:`Message-->Insert File` (:kbd:`CTRL-I`) 或外置编辑器插入补丁。 97 97 98 若要在Claws编辑窗口重修改插入的 98 若要在Claws编辑窗口重修改插入的补丁,需关闭 99 :menuselection:`Configuration-->Preferences--> 99 :menuselection:`Configuration-->Preferences-->Compose-->Wrapping` 100 的 `Auto wrapping` 。 100 的 `Auto wrapping` 。 101 101 102 Evolution (GUI) 102 Evolution (GUI) 103 *************** 103 *************** 104 104 105 一些开发者成功的使用它发送补丁 105 一些开发者成功的使用它发送补丁。 106 106 107 撰写邮件时: 107 撰写邮件时: 108 从 :menuselection:`格式-->段落样式--> 108 从 :menuselection:`格式-->段落样式-->预格式化` (:kbd:`CTRL-7`) 109 或工具栏选择 :menuselection:`预格式 109 或工具栏选择 :menuselection:`预格式化` ; 110 110 111 然后使用: 111 然后使用: 112 :menuselection:`插入-->文本文件...` (:kb 112 :menuselection:`插入-->文本文件...` (:kbd:`ALT-N x`) 插入补丁文件。 113 113 114 你还可以 ``diff -Nru old.c new.c | xclip`` 114 你还可以 ``diff -Nru old.c new.c | xclip`` ,选择 :menuselection:`预格式化` , 115 然后使用鼠标中键进行粘帖。 115 然后使用鼠标中键进行粘帖。 116 116 117 Kmail (GUI) 117 Kmail (GUI) 118 *********** 118 *********** 119 119 120 一些开发者成功的使用它发送补丁 120 一些开发者成功的使用它发送补丁。 121 121 122 默认撰写设置禁用HTML格式是合适的 122 默认撰写设置禁用HTML格式是合适的;不要启用它。 123 123 124 当书写一封邮件的时候,在选项下 124 当书写一封邮件的时候,在选项下面不要选择自动换行。唯一的缺点就是你在邮件中输 125 入的任何文本都不会被自动换行, 125 入的任何文本都不会被自动换行,因此你必须在发送补丁之前手动换行。最简单的方法 126 就是启用自动换行来书写邮件,然 126 就是启用自动换行来书写邮件,然后把它保存为草稿。一旦你在草稿中再次打开它,它 127 已经全部自动换行了,那么你的邮 127 已经全部自动换行了,那么你的邮件虽然没有选择自动换行,但是还不会失去已有的自 128 动换行。 128 动换行。 129 129 130 在邮件的底部,插入补丁之前,放 130 在邮件的底部,插入补丁之前,放上常用的补丁定界符:三个连字符(``---``)。 131 131 132 然后在 :menuselection:`信件` 菜单,选 132 然后在 :menuselection:`信件` 菜单,选择 :menuselection:`插入文本文件` ,接 133 着选取你的补丁文件。还有一个额 133 着选取你的补丁文件。还有一个额外的选项,你可以通过它配置你的创建新邮件工具栏, 134 加上 :menuselection:`插入文本文件` 图 134 加上 :menuselection:`插入文本文件` 图标。 135 135 136 将编辑器窗口拉到足够宽避免折行 136 将编辑器窗口拉到足够宽避免折行。对于KMail 1.13.5 (KDE 4.5.4),它会在发送邮件 137 时对编辑器窗口中显示折行的地方 137 时对编辑器窗口中显示折行的地方自动换行。在选项菜单中取消自动换行仍不能解决。 138 因此,如果你的补丁中有非常长的 138 因此,如果你的补丁中有非常长的行,必须在发送之前把编辑器窗口拉得非常宽。 139 参见:https://bugs.kde.org/show_bug.cgi?id= 139 参见:https://bugs.kde.org/show_bug.cgi?id=174034 140 140 141 你可以安全地用GPG签名附件,但是 141 你可以安全地用GPG签名附件,但是内嵌补丁最好不要使用GPG签名它们。作为内嵌文本 142 插入的签名补丁将使其难以从7-bit 142 插入的签名补丁将使其难以从7-bit编码中提取。 143 143 144 如果你非要以附件的形式发送补丁 144 如果你非要以附件的形式发送补丁,那么就右键点击附件,然后选择 145 :menuselection:`属性` ,打开 :menuselecti 145 :menuselection:`属性` ,打开 :menuselection:`建议自动显示` ,使附件内联更容 146 易让读者看到。 146 易让读者看到。 147 147 148 当你要保存将要发送的内嵌文本补 148 当你要保存将要发送的内嵌文本补丁,你可以从消息列表窗格选择包含补丁的邮件,然 149 后右键选择 :menuselection:`另存为` 。 149 后右键选择 :menuselection:`另存为` 。如果整个电子邮件的组成正确,您可直接将 150 其作为补丁使用。电子邮件以当前 150 其作为补丁使用。电子邮件以当前用户可读写权限保存,因此您必须 ``chmod`` ,以 151 使其在复制到别处时用户组和其他 151 使其在复制到别处时用户组和其他人可读。 152 152 153 Lotus Notes (GUI) 153 Lotus Notes (GUI) 154 ***************** 154 ***************** 155 155 156 不要使用它。 156 不要使用它。 157 157 158 IBM Verse (Web GUI) 158 IBM Verse (Web GUI) 159 ******************* 159 ******************* 160 160 161 同上条。 161 同上条。 162 162 163 Mutt (TUI) 163 Mutt (TUI) 164 ********** 164 ********** 165 165 166 很多Linux开发人员使用mutt客户端, 166 很多Linux开发人员使用mutt客户端,这证明它肯定工作得非常漂亮。 167 167 168 Mutt不自带编辑器,所以不管你使用 168 Mutt不自带编辑器,所以不管你使用什么编辑器,不自动断行就行。大多数编辑器都有 169 :menuselection:`插入文件` 选项,它可 169 :menuselection:`插入文件` 选项,它可以在不改变文件内容的情况下插入文件。 170 170 171 用 ``vim`` 作为mutt的编辑器:: 171 用 ``vim`` 作为mutt的编辑器:: 172 172 173 set editor="vi" 173 set editor="vi" 174 174 175 如果使用xclip,敲入以下命令:: 175 如果使用xclip,敲入以下命令:: 176 176 177 :set paste 177 :set paste 178 178 179 然后再按中键或者shift-insert或者使 179 然后再按中键或者shift-insert或者使用:: 180 180 181 :r filename 181 :r filename 182 182 183 把补丁插入为内嵌文本。 183 把补丁插入为内嵌文本。 184 在未设置 ``set paste`` 时(a)ttach工作 184 在未设置 ``set paste`` 时(a)ttach工作的很好。 185 185 186 你可以通过 ``git format-patch`` 生成补 186 你可以通过 ``git format-patch`` 生成补丁,然后用 Mutt发送它们:: 187 187 188 $ mutt -H 0001-some-bug-fix.patch 188 $ mutt -H 0001-some-bug-fix.patch 189 189 190 配置选项: 190 配置选项: 191 191 192 它应该以默认设置的形式工作。 192 它应该以默认设置的形式工作。 193 然而,把 ``send_charset`` 设置一下也 193 然而,把 ``send_charset`` 设置一下也是一个不错的主意:: 194 194 195 set send_charset="us-ascii:utf-8" 195 set send_charset="us-ascii:utf-8" 196 196 197 Mutt 是高度可配置的。 这里是个使 197 Mutt 是高度可配置的。 这里是个使用mutt通过 Gmail 发送的补丁的最小配置:: 198 198 199 # .muttrc 199 # .muttrc 200 # ================ IMAP =================== 200 # ================ IMAP ==================== 201 set imap_user = 'yourusername@gmail.com' 201 set imap_user = 'yourusername@gmail.com' 202 set imap_pass = 'yourpassword' 202 set imap_pass = 'yourpassword' 203 set spoolfile = imaps://imap.gmail.com/INBOX 203 set spoolfile = imaps://imap.gmail.com/INBOX 204 set folder = imaps://imap.gmail.com/ 204 set folder = imaps://imap.gmail.com/ 205 set record="imaps://imap.gmail.com/[Gmail]/S 205 set record="imaps://imap.gmail.com/[Gmail]/Sent Mail" 206 set postponed="imaps://imap.gmail.com/[Gmail 206 set postponed="imaps://imap.gmail.com/[Gmail]/Drafts" 207 set mbox="imaps://imap.gmail.com/[Gmail]/All 207 set mbox="imaps://imap.gmail.com/[Gmail]/All Mail" 208 208 209 # ================ SMTP ================== 209 # ================ SMTP ==================== 210 set smtp_url = "smtp://username@smtp.gmail.c 210 set smtp_url = "smtp://username@smtp.gmail.com:587/" 211 set smtp_pass = $imap_pass 211 set smtp_pass = $imap_pass 212 set ssl_force_tls = yes # Require encrypted 212 set ssl_force_tls = yes # Require encrypted connection 213 213 214 # ================ Composition =========== 214 # ================ Composition ==================== 215 set editor = `echo \$EDITOR` 215 set editor = `echo \$EDITOR` 216 set edit_headers = yes # See the headers wh 216 set edit_headers = yes # See the headers when editing 217 set charset = UTF-8 # value of $LANG; al 217 set charset = UTF-8 # value of $LANG; also fallback for send_charset 218 # Sender, email address, and sign-off line m 218 # Sender, email address, and sign-off line must match 219 unset use_domain # because joe@localh 219 unset use_domain # because joe@localhost is just embarrassing 220 set realname = "YOUR NAME" 220 set realname = "YOUR NAME" 221 set from = "username@gmail.com" 221 set from = "username@gmail.com" 222 set use_from = yes 222 set use_from = yes 223 223 224 Mutt文档含有更多信息: 224 Mutt文档含有更多信息: 225 225 226 https://gitlab.com/muttmua/mutt/-/wikis/Us 226 https://gitlab.com/muttmua/mutt/-/wikis/UseCases/Gmail 227 227 228 http://www.mutt.org/doc/manual/ 228 http://www.mutt.org/doc/manual/ 229 229 230 Pine (TUI) 230 Pine (TUI) 231 ********** 231 ********** 232 232 233 Pine过去有一些空格删减问题,但是 233 Pine过去有一些空格删减问题,但是这些现在应该都被修复了。 234 234 235 如果可以,请使用alpine(pine的继承 235 如果可以,请使用alpine(pine的继承者)。 236 236 237 配置选项: 237 配置选项: 238 238 239 - 最近的版本需要 ``quell-flowed-text`` 239 - 最近的版本需要 ``quell-flowed-text`` 240 - ``no-strip-whitespace-before-send`` 选项 240 - ``no-strip-whitespace-before-send`` 选项也是需要的。 241 241 242 242 243 Sylpheed (GUI) 243 Sylpheed (GUI) 244 ************** 244 ************** 245 245 246 - 内嵌文本可以很好的工作(或者 246 - 内嵌文本可以很好的工作(或者使用附件)。 247 - 允许使用外部的编辑器。 247 - 允许使用外部的编辑器。 248 - 收件箱较多时非常慢。 248 - 收件箱较多时非常慢。 249 - 如果通过non-SSL连接,无法使用TLS 249 - 如果通过non-SSL连接,无法使用TLS SMTP授权。 250 - 撰写窗口的标尺很有用。 250 - 撰写窗口的标尺很有用。 251 - 将地址添加到通讯簿时无法正确 251 - 将地址添加到通讯簿时无法正确理解显示的名称。 252 252 253 Thunderbird (GUI) 253 Thunderbird (GUI) 254 ***************** 254 ***************** 255 255 256 Thunderbird是Outlook的克隆版本,它很 256 Thunderbird是Outlook的克隆版本,它很容易损坏文本,但也有一些方法强制修正。 257 257 258 在完成修改后(包括安装扩展), 258 在完成修改后(包括安装扩展),您需要重新启动Thunderbird。 259 259 260 - 允许使用外部编辑器: 260 - 允许使用外部编辑器: 261 261 262 使用Thunderbird发补丁最简单的方法 262 使用Thunderbird发补丁最简单的方法是使用扩展来打开您最喜欢的外部编辑器。 263 263 264 下面是一些能够做到这一点的扩 264 下面是一些能够做到这一点的扩展样例。 265 265 266 - “External Editor Revived” 266 - “External Editor Revived” 267 267 268 https://github.com/Frederick888/external-e 268 https://github.com/Frederick888/external-editor-revived 269 269 270 https://addons.thunderbird.net/en-GB/thund 270 https://addons.thunderbird.net/en-GB/thunderbird/addon/external-editor-revived/ 271 271 272 它需要安装“本地消息主机(nat 272 它需要安装“本地消息主机(native messaging host)”。 273 参见以下文档: 273 参见以下文档: 274 https://github.com/Frederick888/external-e 274 https://github.com/Frederick888/external-editor-revived/wiki 275 275 276 - “External Editor” 276 - “External Editor” 277 277 278 https://github.com/exteditor/exteditor 278 https://github.com/exteditor/exteditor 279 279 280 下载并安装此扩展,然后打开 :m 280 下载并安装此扩展,然后打开 :menuselection:`新建消息` 窗口, 用 281 :menuselection:`查看-->工具栏-->自 281 :menuselection:`查看-->工具栏-->自定义...` 给它增加一个按钮,直接点击此 282 按钮即可使用外置编辑器。 282 按钮即可使用外置编辑器。 283 283 284 请注意,“External Editor”要求你 284 请注意,“External Editor”要求你的编辑器不能fork,换句话说,编辑器必须在 285 关闭前不返回。你可能需要传递 285 关闭前不返回。你可能需要传递额外的参数或修改编辑器设置。最值得注意的是, 286 如果您使用的是gvim,那么您必 286 如果您使用的是gvim,那么您必须将 :menuselection:`external editor` 设置的 287 编辑器字段设置为 ``/usr/bin/gvim - 287 编辑器字段设置为 ``/usr/bin/gvim --nofork"`` (假设可执行文件在 288 ``/usr/bin`` ),以传递 ``-f`` 参数 288 ``/usr/bin`` ),以传递 ``-f`` 参数。如果您正在使用其他编辑器,请阅读其 289 手册了解如何处理。 289 手册了解如何处理。 290 290 291 若要修正内部编辑器,请执行以下 291 若要修正内部编辑器,请执行以下操作: 292 292 293 - 修改你的Thunderbird设置,不要使用 293 - 修改你的Thunderbird设置,不要使用 ``format=flowed`` ! 294 回到主窗口,按照 294 回到主窗口,按照 295 :menuselection:`主菜单-->首选项-->常 295 :menuselection:`主菜单-->首选项-->常规-->配置编辑器...` 296 打开Thunderbird的配置编辑器。 296 打开Thunderbird的配置编辑器。 297 297 298 - 将 ``mailnews.send_plaintext_flowed`` 设 298 - 将 ``mailnews.send_plaintext_flowed`` 设为 ``false`` 299 299 300 - 将 ``mailnews.wraplength`` 从 ``72`` 改 300 - 将 ``mailnews.wraplength`` 从 ``72`` 改为 ``0`` 301 301 302 - 不要写HTML邮件! 302 - 不要写HTML邮件! 303 回到主窗口,打开 303 回到主窗口,打开 304 :menuselection:`主菜单-->账户设置--> 304 :menuselection:`主菜单-->账户设置-->你的@邮件.地址-->通讯录/编写&地址簿` , 305 关掉 ``以HTML格式编写消息`` 。 305 关掉 ``以HTML格式编写消息`` 。 306 306 307 - 只用纯文本格式查看邮件! 307 - 只用纯文本格式查看邮件! 308 回到主窗口, :menuselection:`主菜单 308 回到主窗口, :menuselection:`主菜单-->查看-->消息体为-->纯文本` ! 309 309 310 TkRat (GUI) 310 TkRat (GUI) 311 *********** 311 *********** 312 312 313 可以使用它。使用"Insert file..."或者 313 可以使用它。使用"Insert file..."或者外部的编辑器。 314 314 315 Gmail (Web GUI) 315 Gmail (Web GUI) 316 *************** 316 *************** 317 317 318 不要使用它发送补丁。 318 不要使用它发送补丁。 319 319 320 Gmail网页客户端自动地把制表符转 320 Gmail网页客户端自动地把制表符转换为空格。 321 321 322 虽然制表符转换为空格问题可以被 322 虽然制表符转换为空格问题可以被外部编辑器解决,但它同时还会使用回车换行把每行 323 拆分为78个字符。 323 拆分为78个字符。 324 324 325 另一个问题是Gmail还会把任何含有 325 另一个问题是Gmail还会把任何含有非ASCII的字符的消息改用base64编码,如欧洲人的 326 名字。 326 名字。 327 327
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.