使用 Postfix 從 Fedora 系統中獲取電子郵件
交流是非常重要的。你的電腦可能正試圖告訴你一些重要的事情。但是,如果你沒有正確配置郵件傳輸代理(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
更新服務
如果你安裝了像 logwatch、mdadm、fail2ban、apcupsd 或 certwatch 這樣的服務,你現在可以更新它們的配置,以便它們的電子郵件通知轉到你的 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
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive