Linux 的電子郵件客戶端資訊¶
Git¶
現在,大多數開發者使用 git send-email 而不是常規的電子郵件客戶端。它的手冊頁寫得很好。在接收端,維護者使用 git am 來應用補丁。
如果您是 git 新手,請先將您的第一個補丁傳送給自己。將其儲存為包含所有標頭的純文字。執行 git am raw_email.txt,然後使用 git log 檢視更改日誌。當這可行時,再將補丁傳送到相應的郵件列表。
一般偏好設定¶
Linux 核心的補丁透過電子郵件提交,最好以郵件正文中的內聯文字形式提交。有些維護者接受附件,但附件的內容型別應為 text/plain。然而,通常不鼓勵使用附件,因為它在補丁審查過程中使引用補丁的某些部分變得更加困難。
強烈建議您在電子郵件正文中使用純文字,無論是補丁還是其他電子郵件。https://useplaintext.email 可能會為您提供有關如何配置您偏好的電子郵件客戶端的資訊,以及在您沒有偏好時列出推薦的電子郵件客戶端。
用於 Linux 核心補丁的電子郵件客戶端應原樣傳送補丁文字。例如,它們不應修改或刪除製表符或空格,即使是在行首或行尾。
不要傳送帶有 format=flowed 的補丁。這可能導致意外和不需要的換行符。
不要讓您的電子郵件客戶端為您自動換行。這也會損壞您的補丁。
電子郵件客戶端不應修改文字的字元集編碼。透過電子郵件傳送的補丁應僅使用 ASCII 或 UTF-8 編碼。如果您將電子郵件客戶端配置為使用 UTF-8 編碼傳送電子郵件,則可以避免一些可能的字元集問題。
電子郵件客戶端應生成並維護“References:”或“In-Reply-To:”標頭,以便郵件執行緒不中斷。
複製貼上(或剪下貼上)通常不適用於補丁,因為製表符會轉換為空格。使用 xclipboard、xclip 和/或 xcutsel 可能會奏效,但最好自己測試一下,或者乾脆避免複製貼上。
在包含補丁的郵件中不要使用 PGP/GPG 簽名。這會破壞許多讀取和應用補丁的指令碼。(這應該可以修復。)
在將補丁傳送到 Linux 郵件列表之前,最好先將補丁傳送給自己,儲存收到的訊息,併成功地使用 'patch' 應用它。
一些電子郵件客戶端 (MUA) 提示¶
以下是一些用於編輯和傳送 Linux 核心補丁的 MUA 特定配置提示。這些並非完整的軟體包配置摘要。
圖例
TUI = 文字使用者介面
GUI = 圖形使用者介面
Alpine (TUI)¶
配置選項
在部分
必須
啟用必須
停用
撰寫郵件時,游標應放在補丁應出現的位置,然後按 CTRL-R 即可指定要插入到郵件中的補丁檔案。
Claws Mail (GUI)¶
可用。有些人成功地使用它來處理補丁。
要插入補丁,請使用(CTRL-I)或外部編輯器。
如果需要在 Claws 撰寫視窗中編輯插入的補丁,則應停用中的“自動換行”功能。
Evolution (GUI)¶
有些人成功地使用它來處理補丁。
- 撰寫郵件時選擇:預格式化
從(CTRL-7)或工具欄中選擇
然後使用:(ALT-N x)來插入補丁。
您也可以 diff -Nru old.c new.c | xclip,選擇,然後用滑鼠中鍵貼上。
Kmail (GUI)¶
有些人成功地使用 Kmail 來處理補丁。
預設不使用 HTML 撰寫郵件的設定是合適的;不要啟用它。
撰寫電子郵件時,在選項中,取消選中“自動換行”。唯一的缺點是您在電子郵件中輸入的任何文字都不會自動換行,因此您必須在補丁之前手動換行。最簡單的解決方法是啟用自動換行來撰寫電子郵件,然後將其儲存為草稿。一旦您從草稿中再次開啟它,它現在是硬換行的,您可以取消選中“自動換行”而不會丟失現有換行。
在您的電子郵件底部,在插入補丁之前放置常用的補丁分隔符:三個連字元(---)。
然後從選單項中選擇並選擇您的補丁。作為額外的好處,您可以自定義訊息建立工具欄選單並將圖示放在那裡。
將撰寫視窗設定得足夠寬,以便沒有行自動換行。截至 KMail 1.13.5 (KDE 4.5.4),如果撰寫視窗中的行自動換行,KMail 將在傳送電子郵件時應用自動換行。在“選項”選單中停用自動換行是不夠的。因此,如果您的補丁有很長的行,您必須在傳送電子郵件之前將撰寫視窗設定得非常寬。參見:https://bugs.kde.org/show_bug.cgi?id=174034
您可以安全地對附件進行 GPG 簽名,但補丁更傾向於內聯文字,因此不要對內聯補丁進行 GPG 簽名。對作為內聯文字插入的補丁進行簽名將使其難以從其 7 位編碼中提取。
如果您絕對必須將補丁作為附件傳送而不是以文字形式內聯,請右鍵單擊附件並選擇,然後突出顯示以使附件內聯,從而使其更易於檢視。
當儲存作為內聯文字傳送的補丁時,從郵件列表窗格中選擇包含補丁的電子郵件,右鍵單擊並選擇。如果郵件格式正確,您可以將整個電子郵件作為未修改的補丁使用。電子郵件僅以使用者讀寫許可權儲存,因此如果將它們複製到其他位置,您將需要對其進行 chmod 操作以使其對組和其他使用者可讀。
Lotus Notes (GUI)¶
遠離它。
IBM Verse (Web GUI)¶
參見 Lotus Notes。
Mutt (TUI)¶
許多 Linux 開發者使用 mutt,所以它應該執行得很好。
Mutt 沒有自帶編輯器,因此您使用的任何編輯器都應該以不自動換行的方式使用。大多數編輯器都有一個選項,可以不加修改地插入檔案內容。
將 vim 與 mutt 配合使用
set editor="vi"
如果使用 xclip,輸入命令
:set paste
在滑鼠中鍵或 Shift-Insert 之前,或者使用
:r filename
如果您想內聯包含補丁。(a)ttach 在沒有 set paste 的情況下也能正常工作。
您也可以使用 git format-patch 生成補丁,然後使用 Mutt 傳送它們
$ mutt -H 0001-some-bug-fix.patch
配置選項
它應該在預設設定下工作。但是,將 send_charset 設定為
set send_charset="us-ascii:utf-8"
Mutt 高度可定製。以下是開始使用 Mutt 透過 Gmail 傳送補丁的最小配置
# .muttrc
# ================ IMAP ====================
set imap_user = 'yourusername@gmail.com'
set imap_pass = 'yourpassword'
set spoolfile = imaps://imap.gmail.com/INBOX
set folder = imaps://imap.gmail.com/
set record="imaps://imap.gmail.com/[Gmail]/Sent Mail"
set postponed="imaps://imap.gmail.com/[Gmail]/Drafts"
set mbox="imaps://imap.gmail.com/[Gmail]/All Mail"
# ================ SMTP ====================
set smtp_url = "smtp://username@smtp.gmail.com:587/"
set smtp_pass = $imap_pass
set ssl_force_tls = yes # Require encrypted connection
# ================ Composition ====================
set editor = `echo \$EDITOR`
set edit_headers = yes # See the headers when editing
set charset = UTF-8 # value of $LANG; also fallback for send_charset
# Sender, email address, and sign-off line must match
unset use_domain # because joe@localhost is just embarrassing
set realname = "YOUR NAME"
set from = "username@gmail.com"
set use_from = yes
Mutt 文件有更多資訊
Pine (TUI)¶
Pine 過去曾出現過一些空白截斷問題,但現在應該都已修復。
如果可以的話,使用 alpine(pine 的繼任者)。
配置選項
最新版本需要
quell-flowed-text需要
no-strip-whitespace-before-send選項
Sylpheed (GUI)¶
非常適合內聯文字(或使用附件)。
允許使用外部編輯器。
在大型資料夾上速度較慢。
無法透過非 SSL 連線進行 TLS SMTP 認證。
撰寫視窗中有一個有用的標尺欄。
將地址新增到通訊錄時無法正確識別顯示名稱。
Thunderbird (GUI)¶
Thunderbird 是一個類似 Outlook 的客戶端,它喜歡篡改文字,但有一些方法可以強制它正常工作。
完成修改後,包括安裝擴充套件,您需要重新啟動 Thunderbird。
允許使用外部編輯器
處理 Thunderbird 和補丁最簡單的方法是使用能夠開啟您喜歡的外部編輯器的擴充套件。
以下是一些能夠實現此目的的示例擴充套件。
“External Editor Revived”
https://github.com/Frederick888/external-editor-revived
https://addons.thunderbird.net/en-GB/thunderbird/addon/external-editor-revived/
它需要安裝一個“原生訊息主機”。請閱讀此處提供的維基頁面:https://github.com/Frederick888/external-editor-revived/wiki
“External Editor”
https://github.com/exteditor/exteditor
要做到這一點,請下載並安裝擴充套件,然後開啟視窗,使用為其新增一個按鈕,然後當您希望使用外部編輯器時,只需點選新按鈕即可。
請注意,“External Editor”要求您的編輯器不能派生(fork),換句話說,編輯器在關閉之前不得返回。您可能需要傳遞額外的標誌或更改編輯器的設定。最值得注意的是,如果您使用 gvim,則必須透過在設定的文字編輯器欄位中輸入
/usr/bin/gvim --nofork"(如果二進位制檔案在/usr/bin中)來將 -f 選項傳遞給 gvim。如果您使用其他編輯器,請閱讀其手冊以瞭解如何操作。
要讓內部編輯器變得有用,請執行以下操作
編輯您的 Thunderbird 配置設定,使其不再使用
format=flowed!轉到主視窗,找到主下拉選單按鈕。 以調出 Thunderbird 的登錄檔編輯器。將
mailnews.send_plaintext_flowed設定為false將
mailnews.wraplength從72設定為0
不要撰寫 HTML 郵件!轉到主視窗!在那裡您可以停用“以 HTML 格式撰寫郵件”選項。
僅以純文字開啟郵件!轉到主視窗!
TkRat (GUI)¶
可用。使用“插入檔案...”或外部編輯器。
Gmail (Web GUI)¶
不適用於傳送補丁。
Gmail 網頁客戶端會自動將製表符轉換為空格。
同時,它每 78 個字元自動換行,並使用 CRLF 樣式換行符,儘管製表符轉空格的問題可以透過外部編輯器解決。
另一個問題是,Gmail 會對任何包含非 ASCII 字元的郵件進行 base64 編碼。這包括像歐洲人名這樣的內容。
HacKerMaiL (TUI)¶
HacKerMaiL (hkml) 是一個基於 public-inbox 的簡單郵件管理工具,無需訂閱郵件列表。它由 DAMON 維護者開發和維護,旨在支援 DAMON 和通用核心子系統的簡單開發工作流程。詳細資訊請參閱 README (https://github.com/sjp38/hackermail/blob/master/README.md)。