Linux中國

使用 OpenSMTPD 將郵件中繼到多個 smarthost

我喜歡使用本地 SMTP 守護進程從我的筆記本電腦發送電子郵件,因為這樣我即使在斷開連接的情況下也可以發送電子郵件,而且,即使是在網路正常的情況下,因為我不需要等待網路協議在遠程 smarthost 上完成。哦,我還需要本地郵件投遞。

多年來,我一直使用 Postfix 來達到這些目的。它具有可接受的簡單配置。但最近我開始喜歡 VPN(mullvad,如果你想知道的話),而在 /etc/resolv.conf 發生變化時會變得混亂(例如,你在 Postfix 的服務啟動後才啟動 VPN)。我找到了一個非常簡單的替代方案:OpenSMTPD

假設我想在使用 jao@gnu.org 發送電子郵件時使用 SMTP 伺服器 fencepost.gnu.org,而在我的 From 頭中使用 mail@jao.ionews@xmobar.org 時使用 smtp.jao.io。OpenSMTPD 讓你通過一個非常簡單的配置文件 /etc/smtpd.conf 來實現:

(這是我的 Debian 機器中的默認配置文件。另一個流行的替代方案是 /etc/openstmpd.conf)。

table aliases file:/etc/aliases
table secrets db:/etc/mail/secrets.db

table sendergnu { jao@gnu.org }
table senderjao { mail@jao.io, news@xmobar.org }

listen on localhost

action "local" mbox alias <aliases>
action "relaygnu" relay host smtp+tls://gnu@fencepost.gnu.org:587 auth <secrets>
action "relayjao" relay host smtps://jao@smtp.jao.io:465 auth <secrets>

match for local action "local"
match for any from mail-from <sendergnu> action "relaygnu"
match for any from mail-from <senderjao> action "relaygan"

我們還為此配置了本地投遞。這是完整的配置文件!唯一需要的另一件事是生成 secrets.db 文件,其中包含與鍵 gnujao 對應的用戶和密碼(這些只是任意名稱)。為此,我們使用它們創建一個純文本文件,使用形式為 <key> <user>:<password> 的條目:

gnu  jao:my fencepost password
jao  mail@jao.io:xxxxxxxxxxxxxxxxx

fencepost.gnu.org 用戶是 jaosmtp.jao.io 的用戶是 mail@jao.io(你看,不需要轉義空格或 ats)。然後我們使用程序 makemap 來創建密鑰資料庫:

makemap secrets && rm secrets

via: https://jao.io/blog/2021-11-09-relaying-mail-to-multiple-smarthosts.html

作者:jao 選題:lujun9972 譯者:geekpi 校對:wxy

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


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國