使用 Postfix 從 Fedora 系統中獲取電子郵件

Gregory Bartholomew發表於2019-08-14

交流是非常重要的。你的電腦可能正試圖告訴你一些重要的事情。但是,如果你沒有正確配置郵件傳輸代理(MTA),那麼你可能不會收到通知。Postfix 是一個易於配置且以強大的安全記錄而聞名的 MTA。遵循以下步驟,以確保從本地服務傳送的電子郵件通知將通過 Postfix MTA 路由到你的網際網路電子郵件賬戶中。

安裝軟體包

使用 dnf 來安裝一些必須軟體包(你應該配置了 sudo,對吧?):

$ sudo -i
# dnf install postfix mailx

如果以前配置了不同的 MTA,那麼你可能需要將 Postfix 設定為系統預設。使用 alternatives 命令設定系統預設 MTA:

$ sudo alternatives --config mta
There are 2 programs which provide 'mta'.
  Selection    Command
*+ 1           /usr/sbin/sendmail.sendmail
   2           /usr/sbin/sendmail.postfix
Enter to keep the current selection[+], or type selection number: 2

建立一個 password_maps 檔案

你需要建立一個 Postfix 查詢表條目,其中包含你要用於傳送電子郵件賬戶的地址和密碼:

# MY_EMAIL_ADDRESS=glb@gmail.com
# MY_EMAIL_PASSWORD=abcdefghijklmnop
# MY_SMTP_SERVER=smtp.gmail.com
# MY_SMTP_SERVER_PORT=587
# echo "[$MY_SMTP_SERVER]:$MY_SMTP_SERVER_PORT $MY_EMAIL_ADDRESS:$MY_EMAIL_PASSWORD" >> /etc/postfix/password_maps
# chmod 600 /etc/postfix/password_maps
# unset MY_EMAIL_PASSWORD
# history -c

如果你使用的是 Gmail 賬戶,那麼你需要為 Postfix 配置一個“應用程式密碼”而不是使用你的 Gmail 密碼。有關配置應用程式密碼的說明,參閱“使用應用程式密碼登入”。

接下來,你必須對 Postfix 查詢表執行 postmap 命令,以建立或更新 Postfix 實際使用的檔案的雜湊版本:

# postmap /etc/postfix/password_maps

雜湊後的版本將具有相同的檔名,但字尾為 .db

更新 main.cf 檔案

更新 Postfix 的 main.cf 配置檔案,以引用剛剛建立 Postfix 查詢表。編輯該檔案並新增以下行:

relayhost = smtp.gmail.com:587
smtp_tls_security_level = verify
smtp_tls_mandatory_ciphers = high
smtp_tls_verify_cert_match = hostname
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/password_maps

這裡假設你使用 Gmail 作為 relayhost 設定,但是你可以用正確的主機名和埠替換系統應該將郵件傳送到的郵件主機。

有關上述配置選項的最新詳細資訊,參考 man 幫助:

$ man postconf.5

啟用、啟動和測試 Postfix

更新 main.cf 檔案後,啟用並啟動 Postfix 服務:

# systemctl enable --now postfix.service

然後,你可以使用 exit 命令或 Ctrl+D 以 root 身份退出 sudo 會話。你現在應該能夠使用 mail 命令測試你的配置:

$ echo 'It worked!' | mail -s "Test: $(date)" glb@gmail.com

更新服務

如果你安裝了像 logwatchmdadmfail2banapcupsdcertwatch 這樣的服務,你現在可以更新它們的配置,以便它們的電子郵件通知轉到你的 Internet 電子郵件地址。

另外,你可能希望將傳送到本地系統 root 賬戶的所有電子郵件都轉到網際網路電子郵件地址中,將以下行新增到系統的 /etc/alises 檔案中(你需要使用 sudo 編輯此檔案,或首先切換到 root 賬戶):

root: glb+root@gmail.com

現在執行此命令重新讀取別名:

# newaliases
  • 提示: 如果你使用的是 Gmail,那麼你可以在使用者名稱和 @ 符號之間新增字母數字標記,如上所示,以便更輕鬆地識別和過濾從計算機收到的電子郵件。

常用命令

檢視郵件佇列:

$ mailq

清除佇列中的所有電子郵件:

# postsuper -d ALL

過濾設定,以獲得感興趣的值:

$ postconf | grep "^relayhost\|^smtp_"

檢視 postfix/smtp 日誌:

$ journalctl --no-pager -t postfix/smtp

進行配置更改後重新載入 postfix:

$ systemctl reload postfix

via: https://fedoramagazine.org/use-postfix-to-get-email-from-your-fedora-system/

作者:Gregory Bartholomew 選題:lujun9972 譯者:MjSeven 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

使用 Postfix 從 Fedora 系統中獲取電子郵件

訂閱“Linux 中國”官方小程式來檢視

相關文章