使用Postfix從Fedora系統(tǒng)中獲取電子郵件
交流是非常重要的。你的電腦可能正試圖告訴你一些重要的事情。但是,如果你沒有正確配置郵件傳輸代理(MTA),那么你可能不會(huì)收到通知。Postfix 是一個(gè)易于配置且以強(qiáng)大的安全記錄而聞名的 MTA。遵循以下步驟,以確保從本地服務(wù)發(fā)送的電子郵件通知將通過 Postfix MTA 路由到你的互聯(lián)網(wǎng)電子郵件賬戶中。
安裝軟件包
使用 dnf
來安裝一些必須軟件包(你應(yīng)該配置了 sudo,對吧?):
$ sudo -i
# dnf install postfix mailx
如果以前配置了不同的 MTA,那么你可能需要將 Postfix 設(shè)置為系統(tǒng)默認(rèn)。使用 alternatives
命令設(shè)置系統(tǒng)默認(rèn) 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
創(chuàng)建一個(gè) password_maps 文件
你需要?jiǎng)?chuàng)建一個(gè) Postfix 查詢表?xiàng)l目,其中包含你要用于發(fā)送電子郵件賬戶的地址和密碼:
# 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 配置一個(gè)“應(yīng)用程序密碼”而不是使用你的 Gmail 密碼。有關(guān)配置應(yīng)用程序密碼的說明,參閱“使用應(yīng)用程序密碼登錄”。
接下來,你必須對 Postfix 查詢表運(yùn)行 postmap
命令,以創(chuàng)建或更新 Postfix 實(shí)際使用的文件的散列版本:
# postmap /etc/postfix/password_maps
散列后的版本將具有相同的文件名,但后綴為 .db
。
更新 main.cf 文件
更新 Postfix 的 main.cf
配置文件,以引用剛剛創(chuàng)建 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
這里假設(shè)你使用 Gmail 作為 relayhost
設(shè)置,但是你可以用正確的主機(jī)名和端口替換系統(tǒng)應(yīng)該將郵件發(fā)送到的郵件主機(jī)。
有關(guān)上述配置選項(xiàng)的最新詳細(xì)信息,參考 man 幫助:
$ man postconf.5
啟用、啟動(dòng)和測試 Postfix
更新 main.cf
文件后,啟用并啟動(dòng) Postfix 服務(wù):
# systemctl enable --now postfix.service
然后,你可以使用 exit
命令或 Ctrl+D
以 root 身份退出 sudo
會(huì)話。你現(xiàn)在應(yīng)該能夠使用 mail
命令測試你的配置:
$ echo 'It worked!' | mail -s "Test: $(date)" glb@gmail.com
更新服務(wù)
如果你安裝了像 logwatch、mdadm、fail2ban、apcupsd 或 certwatch 這樣的服務(wù),你現(xiàn)在可以更新它們的配置,以便它們的電子郵件通知轉(zhuǎn)到你的 Internet 電子郵件地址。
另外,你可能希望將發(fā)送到本地系統(tǒng) root 賬戶的所有電子郵件都轉(zhuǎn)到互聯(lián)網(wǎng)電子郵件地址中,將以下行添加到系統(tǒng)的 /etc/alises
文件中(你需要使用 sudo
編輯此文件,或首先切換到 root
賬戶):
root: glb+root@gmail.com
現(xiàn)在運(yùn)行此命令重新讀取別名:
# newaliases
- 提示: 如果你使用的是 Gmail,那么你可以在用戶名和
@
符號(hào)之間添加字母數(shù)字標(biāo)記,如上所示,以便更輕松地識(shí)別和過濾從計(jì)算機(jī)收到的電子郵件。
常用命令
查看郵件隊(duì)列:
$ mailq
清除隊(duì)列中的所有電子郵件:
# postsuper -d ALL
過濾設(shè)置,以獲得感興趣的值:
$ postconf | grep "^relayhost\|^smtp_"
查看 postfix/smtp
日志:
$ journalctl --no-pager -t postfix/smtp
進(jìn)行配置更改后重新加載 postfix:
$ systemctl reload postfix