成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

在 Linux 命令行中收發 Gmail 郵件

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

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

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

[[410791]]

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

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

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

安裝 Mutt

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

 

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

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

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

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

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

OfflineIMAP 依賴于 imaplib2 庫,這個庫也在努力開發當中,所以我更喜歡手動安裝。同樣地,也是通過 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 默認使用 ~/.offlineimaprc 這個配置文件,在它的代碼庫中會有一個名為 offlineimap.conf 的配置模板,可以直接將其移動到家目錄下:

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

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

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

  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 設置雙因素身份驗證(2FA)

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

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

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

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

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

在 Gmail 啟用 IMAP

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

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

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

配置 Mutt

Mutt 的配置過程相對簡單。和 .bashrc、.zshrc、.emacs 這些配置文件一樣,網絡上有很多優秀的 .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 將遠程郵件服務器上的郵件同步到本地。在首次啟動的時候耗時可能會比較長,只需要讓它整晚運行直到同步完成就可以了。

在同步完成后,啟動 Mutt:

  1. $ mutt 

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

 

 

Mutt email client

 

學習使用 Mutt

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

責任編輯:未麗燕 來源: Linux中國
相關推薦

2019-12-11 11:25:48

Linux命令行郵件

2022-10-25 13:01:36

Linux命令行空目錄

2015-03-09 09:44:35

GmailiOS

2019-06-26 18:30:30

Linux命令行電子郵件

2021-07-15 13:32:12

Linux生成密碼

2021-07-15 13:25:43

LinuxPDF

2009-08-04 10:06:37

如何進入linux命令linux系統linux

2018-07-12 16:22:45

Linux命令行文本顏色

2019-07-15 05:50:19

Linux命令行VirtualBox版

2019-07-12 14:00:55

xclipLinux命令行

2014-09-11 10:33:06

Linux

2019-05-21 10:38:17

Linux命令行

2022-08-14 19:19:14

Linux

2010-03-24 14:08:10

CentOS命令行

2010-09-01 14:23:54

Linux命令行開發

2009-12-24 14:51:39

Linux命令行

2022-11-08 09:38:18

Linux命令行刪除文件

2011-02-21 11:35:29

sendmail命令

2023-02-07 09:49:26

Linux命令行合并文件

2023-03-08 15:38:56

Linux命令dict
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久婷婷香蕉热狠狠综合 | 91福利在线观看视频 | 中文字幕在线电影观看 | 中国一级大黄大片 | 国产高清精品在线 | 欧美精品一区二区在线观看 | 精品国产91乱码一区二区三区 | 日韩欧美一级精品久久 | 亚洲国产一区二区三区, | 国产视频一区在线 | 国产一区二区三区在线免费 | 欧美一区二区免费在线 | 91亚洲欧美 | 国产精品亚洲一区二区三区在线 | 久久99精品久久久久久秒播九色 | 国产亚洲一区二区三区在线观看 | 久久精品国产免费看久久精品 | 欧美激情欧美激情在线五月 | 精品国产色 | 久草a√| 男人天堂99 | 久久久精品一区 | 精品国产一区二区三区av片 | 中文字幕乱码亚洲精品一区 | 亚洲一区毛片 | 一级黄色片网址 | 国产在线精品一区二区三区 | 欧美影院 | 日韩高清电影 | 午夜影院在线免费观看视频 | 久久影音先锋 | avhd101在线成人播放 | 亚洲高清在线观看 | 日本在线一区二区 | 夜夜操av| 欧美成人a∨高清免费观看 欧美日韩中 | 成人欧美一区二区三区在线观看 | av永久免费 | 黑人巨大精品欧美一区二区免费 | 精品粉嫩超白一线天av | 精品粉嫩超白一线天av |