
我在 Ubuntu 20.04 機器上設定了 Postfix。但是,我不確定在哪裡必須使用子網域以及網域。我們分別稱它們mail.example.com
為 和example.com
。
該系統是一個空客戶端,發送電子郵件但不接收任何電子郵件(透過inet_interfaces = loopback-only
in實現/etc/postfix/main.cf
)。我打算[email protected]
專門從.
- MX 記錄是
@ IN MX 0 mail.example.com
. - 和 的 A 記錄均
@
指向mail
Postfix 伺服器。 - 中提到的 TLS 憑證
/etc/postfix/main.cf
請參閱mail.example.com
:smtpd_tls_cert_file=/etc/letsencrypt/live/mail.example.com/fullchain.pem
和smtpd_tls_key_file=/etc/letsencrypt/live/mail.example.com/privkey.pem
。 - 隨著
smtp_generic_maps = hash:/etc/postfix/generic
我重寫user@hostname
到.[email protected]
/etc/postfix/main.cf
- 我添加了
masquerade_domains = example.com
in/etc/postfix/main.cf
以將mail.example.com
in替換[email protected]
為example.com
.不知何故,這是行不通的。寄件者仍會收到電子郵件[email protected]
。
相應的問題是:
- 我必須在 MX 記錄中使用
@
or嗎?mail
- TLS 憑證必須引用 to
mail.example.com
或 to嗎example.com
? - 應該
/etc/postfix/generic
先轉換user@hostname
成[email protected]
還是直接轉換成[email protected]
?
答案1
如今,最正確的方法是在正確的郵件服務上建立一個帳戶,該帳戶已完全配置為提供服務example.com
。 (當然,這可以是您自己的伺服器,這並不重要。)然後,在您的空主機上,您只需將郵件伺服器設定為智慧主機,並使用 SASL 驗證。
雖然像這樣設定 Postfix 是完全可能的(有很多手冊,包括 Postfix 自己的手冊),但我認為 Postfix 對於這種用途來說有點過分了。考慮使用nullmailer
,它非常適合除了發出一些系統通知之外不對郵件執行任何操作的系統。
如果不可能,請如下設定 DNS:
example.com
MX 記錄指向其正確的郵件服務。它與子域無關。nullhost.example.com. MX 10 .
,即指向無處。這明確表示您不打算接收任何 的郵件[email protected]
。如果您保護空主機的 smtpd 服務免受外部連線(防火牆tcp/25
、僅偵聽localhost:25
等)的影響,則不需要這樣做;然而,顯式總是比隱式好。- 該空主機將發送設定
example.com
為寄件者網域的郵件,因此其郵件必須遵守該網域的 DMARC 設定。否則,行為正確的收件者將丟棄郵件。
最後一點,DMARC,可能會使事情變得相當複雜。如果它被安全地設置,這意味著記錄看起來像_dmarc.example.com. TXT "v=DMARC1; p=reject; pct=100; ..."
,您需要在空主機上設定 SPF 和 DKIM 簽章。 SPF很簡單,只需將「a:nullhost.example.com」新增到SPF TXT記錄中即可。 DKIM 具有挑戰性,您需要建立額外的 DKIM 金鑰對,選擇一個選擇器(nullhost
可能會做),將其公共對安裝到 DNS 中,格式為nullhost._domainkey.example.com. TXT "... key data ..."
.然後直接在空主機上使用相應的私鑰配置歌唱(並使用所選的選擇器),我將使用 opendkim 來實現這一點。我是否提到使用智慧主機是首選方法?
還有,你的問題。
- 你不是伺服器(你說你這個系統不應該接收任何郵件)。因此您不需要任何 TLS 伺服器憑證。您可以使用 TLS 用戶端憑證進行設置,因此當您透過 TLS 連接到智慧型主機或其他伺服器時,您將能夠提供它。但為什麼要這麼做呢?
- 「apex」記錄
@ MX
(又稱example.com. MX
)必須定向到 example.com 的米艾爾X轉換器(接收郵件的系統[email protected]
)。它與任何子網域的郵件無關。每個子網域都是獨立的郵件網域。 - 如何設定地址重寫取決於您。外界唯一看到的就是最終的結果。那為什麼要分兩步驟來完成呢?