自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

在 Linux 命令行中收發(fā) Gmail 郵件

運維 系統(tǒng)運維
當(dāng)今我們大多數(shù)人使用的都是托管電子郵件賬號,在這種使用場景中并不會與電子郵件協(xié)議發(fā)生過多的直接交互。而 Mutt(以及更早的 ELM)是在更簡單的時代創(chuàng)建的,那時候檢查郵件只是對 uucp 的調(diào)用,以及對 /var/mail 的讀取。

即使你用的是諸如 Gmail 的托管郵件服務(wù),你也可以通過 Mutt 在終端里收發(fā)電子郵件。

我喜歡在 Linux 終端上讀寫電子郵件的便捷,因此我是 Mutt 這個輕量簡潔的電子郵件客戶端的忠實用戶。對于電子郵件服務(wù)來說,不同的系統(tǒng)配置和網(wǎng)絡(luò)接入并不會造成什么影響。這個客戶端通常隱藏在我 Linux 終端的 某個標(biāo)簽頁或者某個終端復(fù)用器的面板 上,需要用的時候隨時可以調(diào)出來,不需要使用的時候放到后臺,就不需要在桌面上一直放置一個電子郵件客戶端的應(yīng)用程序。

[[410791]]

當(dāng)今我們大多數(shù)人使用的都是托管電子郵件賬號,在這種使用場景中并不會與電子郵件協(xié)議發(fā)生過多的直接交互。而 Mutt(以及更早的 ELM)是在更簡單的時代創(chuàng)建的,那時候檢查郵件只是對 uucp 的調(diào)用,以及對 /var/mail 的讀取。當(dāng)然 Mutt 也很與時俱進,隨著各種流行的協(xié)議(如 POP、IMAP、LDAP)出現(xiàn),它都實現(xiàn)了良好的支持。因此,即使我們使用的是 Gmail 這種郵件服務(wù),也可以與 Mutt 無縫銜接。

如今在大多數(shù)情況下,用戶都不會擁有自己的電子郵件服務(wù)器,大部分用戶都會選擇 Gmail,因此下文會以 Mutt + Gmail 為例作介紹。如果你比較注重電子郵件隱私,不妨考慮 ProtonMail 或者 Tutanota,它們都提供完全加密的電子郵件服務(wù)。其中 Tutanota 包含很多 開源組件,而 ProtonMail 則為付費用戶提供 IMAP 橋接,簡化了在非瀏覽器環(huán)境下的郵件訪問。不過,很多公司、學(xué)校和組織都沒有自己的電子郵件服務(wù),而是使用 Gmail 提供的郵件服務(wù),這樣一來,大部分用戶都會有一個 Gmail 郵箱。

當(dāng)然,如果你自己就 擁有電子郵件服務(wù)器,那么使用 Mutt 就更簡單了。下面我們開始介紹。

安裝 Mutt

在 Linux 系統(tǒng)上,一般可以直接從發(fā)行版提供的軟件庫中安裝 Mutt,另外需要在家目錄中創(chuàng)建一個 .mutt 目錄以存放配置文件:

 

  1. $ sudo dnf install mutt 
  2. $ mkdir ~/.mutt 

在 MacOS 上,可以通過 MacPorts 或者 Homebrew 安裝;在 Windows 上則可以使用 Chocolatey 安裝。

Mutt 是一個郵件用戶代理Mail User Agent(MUA),因此它的作用是讀取、編寫以及向外部郵件池發(fā)送郵件。向郵件服務(wù)器實際傳輸郵件是其它應(yīng)用或郵件服務(wù)的工作,盡管它們可以和 Mutt 進行協(xié)作,讓我們看起來是 Mutt 完成了所有功能,但實際上并非如此。在弄懂了兩者之間的區(qū)別之后,我們會對 Mutt 的配置更加清楚。

這也是為什么除了 Mutt 之外,我們還需要視乎進行通信的服務(wù)種類選擇一些輔助應(yīng)用程序。在本文中我使用的是 IMAP 服務(wù),這可以讓我本地的電子郵件副本與電子郵件服務(wù)提供商的遠(yuǎn)程郵件副本保持同步。如果你選擇 POP 服務(wù),配置的難度就更下一個臺階了,也無需依賴其它外部工具。我們需要 OfflineIMAP 這個 Python 應(yīng)用程序來實現(xiàn) IMAP 的集成,這個應(yīng)用程序可以在 它的 GitHub 存儲庫 獲取。

OfflineIMAP 目前仍然在從 Python 2 移植到 Python 3,目前需要手動安裝,但以后你也可以通過 python3 -m pip 命令進行安裝。

OfflineIMAP 依賴于 imaplib2 庫,這個庫也在努力開發(fā)當(dāng)中,所以我更喜歡手動安裝。同樣地,也是通過 Git 將代碼庫克隆到本地,進入目錄后使用 pip 安裝。

首先安裝 rfc6555 依賴:

  1. $ python3 -m pip install --user rfc6555 

然后從源碼安裝 imaplib2:

  1. $ git clone git@github.com:jazzband/imaplib2.git 
  2. $ pushd imaplib2.git 
  3. $ python3 -m pip install --upgrade --user . 
  4. $ popd 

最后從源碼安裝 OfflineIMAP:

  1. $ git clone git@github.com:OfflineIMAP/offlineimap3.git 
  2. $ pushd offlineimap3.git 
  3. $ python3 -m pip install --upgrade --user . 
  4. $ popd 

如果你使用的是 Windows 上的 Cygwin,那么你還需要安裝 Portlocker。

配置 OfflineIMAP

OfflineIMAP 默認(rèn)使用 ~/.offlineimaprc 這個配置文件,在它的代碼庫中會有一個名為 offlineimap.conf 的配置模板,可以直接將其移動到家目錄下:

  1. $ mv offlineimap3.git/offlineimap.conf ~/.offlineimaprc` 

你可以使用任何文本編輯器打開瀏覽這個配置文件,它的注釋很完善,便于了解各個可用的配置項。

以下是我的 .offlineimaprc 配置文件,為了清晰起見,我把其中的注釋去掉了。對于你來說其中有些配置項的值可能會略有不同,但或許會為你的配置帶來一些啟發(fā):

  1. [general] 
  2. ui = ttyui 
  3. accounts = %your-gmail-username% 
  4. pythonfile = ~/.mutt/password_prompt.py 
  5. fsync = False 
  6. [Account %your-gmail-username%] 
  7. localrepository = %your-gmail-username%-Local 
  8. remoterepository = %your-gmail-username%-Remote 
  9. status_backend = sqlite 
  10. postsynchook = notmuch new 
  11. [Repository %your-gmail-username%-Local
  12. type = Maildir 
  13. localfolders = ~/.mail/%your-gmail-username%-gmail.com 
  14. nametrans = lambda folder: {'drafts':  '[Gmail]/Drafts'
  15.                             'sent':    '[Gmail]/Sent Mail'
  16.                             'flagged''[Gmail]/Starred'
  17.                             'trash':   '[Gmail]/Trash'
  18.                             'archive''[Gmail]/All Mail'
  19.                             }.get(folder, folder) 
  20. [Repository %your-gmail-username%-Remote] 
  21. maxconnections = 1 
  22. type = Gmail 
  23. remoteuser = %your-gmail-username%@gmail.com 
  24. remotepasseval = '%your-gmail-API-password%' 
  25. ## remotepasseval = get_api_pass() 
  26. sslcacertfile = /etc/ssl/certs/ca-bundle.crt 
  27. realdelete = no 
  28. nametrans = lambda folder: {'[Gmail]/Drafts':    'drafts'
  29.                             '[Gmail]/Sent Mail''sent'
  30.                             '[Gmail]/Starred':   'flagged'
  31.                             '[Gmail]/Trash':     'trash'
  32.                             '[Gmail]/All Mail':  'archive'
  33.                             }.get(folder, folder) 
  34. folderfilter = lambda folder: folder not in ['[Gmail]/Trash'
  35.                                              '[Gmail]/Important'
  36.                                              '[Gmail]/Spam'
  37.                                              ] 

配置文件里有兩個可以替換的值,分別是 %your-gmail-username% 和 %your-gmail-API-password%。其中第一個值需要替換為 Gmail 用戶名,也就是郵件地址中 @gmail.com 左邊的部分。而第二個值則需要通過雙因素身份驗證(2FA)后從 Google 獲取(即使你在查收郵件時不需要使用 2FA)。

為 Gmail 設(shè)置雙因素身份驗證(2FA)

Google 希望用戶通過 Gmail 網(wǎng)站收發(fā)電子郵件,因此當(dāng)你在 Gmail 網(wǎng)站以外操作電子郵件時,實際上是被 Google 作為“開發(fā)者”看待(盡管你沒有進行任何開發(fā)工作)。也就是說,Google 會認(rèn)為你正在創(chuàng)建一個應(yīng)用程序。要獲得開發(fā)者層面的應(yīng)用程序密碼,就必須設(shè)置雙因素身份驗證。完成了這個過程以后,就可以獲得一個應(yīng)用程序密碼,Mutt 可以通過這個密碼在瀏覽器以外的環(huán)境登錄到你的電子郵箱中。

為了安全起見,你還可以在 Google 的 賬號安全 頁面中添加一個用于找回的電子郵件地址。

在賬號安全頁面中,點擊“兩步驗證2-step Verification”開始設(shè)置 2FA,設(shè)置過程中需要用到一部手機。

激活 2FA 之后,賬號安全頁面中會出現(xiàn)“應(yīng)用程序密碼App Passwords”選項,點擊就可以為 Mutt 創(chuàng)建一個新的應(yīng)用程序密碼。在 Google 生成密碼之后,將其替換 .offlineimaprc 配置文件中的 %your-gmail-API-password% 值。

直接將應(yīng)用程序密碼記錄在 .offlineimaprc 文件中,這種以純文本形式存儲的做法有一定的風(fēng)險。長期以來我都是這樣做的,而且感覺良好,因為我的家目錄是加密的。但出于安全考慮,我現(xiàn)在已經(jīng)改為使用 GnuPG 加密應(yīng)用程序密碼,這部分內(nèi)容不在本文的討論范圍,關(guān)于如何設(shè)置 GPG 密碼集成,可以參考我的 另一篇文章。

在 Gmail 啟用 IMAP

在你永遠(yuǎn)告別 Gmail 網(wǎng)頁界面之前,還有最后一件事:你必須啟用 Gmail 賬戶的 IMAP 訪問。

在 Gmail 網(wǎng)站頁面中,點擊右上角的“cog”圖標(biāo),選擇“查看所有設(shè)置See all settings”。在 Gmail 設(shè)置頁面中,點擊“POP/IMAP”標(biāo)簽頁,并選中“啟用 IMAPenable IMAP”,然后保存設(shè)置。

現(xiàn)在就可以在瀏覽器以外訪問你的 Gmail 電子郵件了。

配置 Mutt

Mutt 的配置過程相對簡單。和 .bashrc、.zshrc、.emacs 這些配置文件一樣,網(wǎng)絡(luò)上有很多優(yōu)秀的 .muttrc 配置文件可供參照。我自己的 .muttrc 配置文件則借鑒了 Kyle Rankin、Paul Frields 等人的配置項和想法。下面列出我的配置文件的一些要點:

  1. set ssl_starttls=yes 
  2. set ssl_force_tls=yes 
  3. set from='tux@example.com' 
  4. set realname='Tux Example' 
  5. set folder = imaps://imap.gmail.com/ 
  6. set spoolfile = imaps://imap.gmail.com/INBOX 
  7. set postponed="imaps://imap.gmail.com/[Gmail]/Drafts" 
  8. set smtp_url="smtp://smtp.gmail.com:25" 
  9. set move = no 
  10. set imap_keepalive = 900 
  11. set record="imaps://imap.gmail.com/[Gmail]/Sent Mail" 
  12. # Paths 
  13. set folder           = ~/.mail 
  14. set alias_file       = ~/.mutt/alias 
  15. set header_cache     = "~/.mutt/cache/headers" 
  16. set message_cachedir = "~/.mutt/cache/bodies" 
  17. set certificate_file = ~/.mutt/certificates 
  18. set mailcap_path     = ~/.mutt/mailcap 
  19. set tmpdir           = ~/.mutt/temp 
  20. set signature        = ~/.mutt/sig 
  21. set sig_on_top       = yes 
  22. # Basic Options 
  23. set wait_key = no 
  24. set mbox_type = Maildir 
  25. unset move               # gmail does that 
  26. # Sidebar Patch 
  27. set sidebar_visible = yes 
  28. set sidebar_width   = 16 
  29. color sidebar_new color221 color233 
  30. ## Account Settings 
  31. Default inbox 
  32. set spoolfile = "+example.com/INBOX" 
  33. # Mailboxes to show in the sidebar. 
  34. mailboxes +INBOX \ 
  35.           +sent \ 
  36.           +drafts 
  37. # Other special folder 
  38. set postponed = "+example.com/drafts" 
  39. # navigation 
  40. macro index gi "<change-folder>=example.com/INBOX<enter>" "Go to inbox" 
  41. macro index gt "<change-folder>=example.com/sent" "View sent" 

整個配置文件基本是開箱即用的,只需要將其中的 Tux Example和 example.com 替換為你的實際值,并將其保存為 ~/.mutt/muttrc 就可以使用了。

啟動 Mutt

在啟動 Mutt 之前,需要先啟動 offlineimap 將遠(yuǎn)程郵件服務(wù)器上的郵件同步到本地。在首次啟動的時候耗時可能會比較長,只需要讓它整晚運行直到同步完成就可以了。

在同步完成后,啟動 Mutt:

  1. $ mutt 

Mutt 會提示你打開用于管理電子郵件的目錄權(quán)限,并展示收件箱的視圖。

 

 

Mutt email client

 

學(xué)習(xí)使用 Mutt

在學(xué)習(xí)使用 Mutt 的過程中,你可以找到最符合你使用習(xí)慣的 .muttrc 配置。例如我的 .muttrc 配置文件集成了使用 Emacs 編寫郵件、使用 LDAP 搜索聯(lián)系人、使用 GnuPG 對郵件進行加解密、鏈接獲取、HTML 視圖等等一系列功能。你可以讓 Mutt 做到任何你想讓它做到的事情,你越探索,就能發(fā)現(xiàn)越多。

責(zé)任編輯:未麗燕 來源: Linux中國
相關(guān)推薦

2019-12-11 11:25:48

Linux命令行郵件

2022-10-25 13:01:36

Linux命令行空目錄

2021-07-15 13:32:12

Linux生成密碼

2021-07-15 13:25:43

LinuxPDF

2009-08-04 10:06:37

如何進入linux命令linux系統(tǒng)linux

2019-06-26 18:30:30

Linux命令行電子郵件

2019-07-12 14:00:55

xclipLinux命令行

2019-07-15 05:50:19

Linux命令行VirtualBox版

2018-07-12 16:22:45

Linux命令行文本顏色

2015-03-09 09:44:35

GmailiOS

2019-05-21 10:38:17

Linux命令行

2014-09-11 10:33:06

Linux

2022-08-14 19:19:14

Linux

2010-03-24 14:08:10

CentOS命令行

2009-12-24 14:51:39

Linux命令行

2022-11-08 09:38:18

Linux命令行刪除文件

2015-12-30 14:47:01

LinuxDropbox訪問

2010-09-01 14:23:54

Linux命令行開發(fā)

2018-11-05 13:50:44

Linux命令tcpdump

2023-02-07 09:49:26

Linux命令行合并文件
點贊
收藏

51CTO技術(shù)棧公眾號