Postfix

使用 Postfix 通過多個 Google Apps 帳戶進行中繼

  • May 7, 2021

我正在設置一個網路應用程序,該應用程序需要通過使用 Google Apps 的域上的兩個不同電子郵件地址發送電子郵件。我使用 Postfix 作為中繼,因為我相當熟悉它。

但是,我很難弄清楚如何在同一個域上使用兩個不同的電子郵件地址。我得到的印像是你需要在 /etc/postfix/sasl 中設置兩個不同的密碼文件,我已經這樣做了,然後將 smtp_sasl_password_maps 設置為 hash:/etc/postfix/sasl/passwd,但是我’ m 不太確定兩個不同文件所需的語法。我嘗試將其設置如下:

smtp_sasl_password_maps = hash:/etc/postfix/sasl/passwd, hash:/etc/postfix/sasl/passwd2

但這似乎沒有奏效。我也嘗試將兩者都放在一個文件中,但這也不起作用。無論我嘗試哪種方法,它似乎只在一個地址上接聽。Google似乎對這個問題也沒有太大幫助?

誰能看到我在這裡誤入歧途的地方?

編輯:也許我不太清楚我想要做什麼。

example.com 的 Web 伺服器安裝了 Postfix,但 MX 記錄指向 Google Apps。有兩個電子郵件地址 noreply@example.comsupport@example.com,它們都在 Google Apps 上。我想要做的是將 Postfix 配置為使用 Google Apps 作為這兩個電子郵件地址的中繼。

問題是我不知道如何為這兩個帳戶設置密碼映射,因此我只能設置一個,而不是兩個。

您需要啟用與發件人相關的身份驗證,以便 Postfix 將根據正在傳遞的消息的發件人選擇適當的憑據。密碼映射應該由發送者地址而不是中繼主機鍵入。

main.cf:

smtp_sender_dependent_authentication = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_password_maps

sasl_password_maps:

noreply@example.com noreply@example.com:password123
support@example.com support@example.com:password456

發件人相關身份驗證可以提供幫助。官方文件中有很好的例子

Postfix 支持不同的發件人地址使用不同的 ISP 帳戶(版本 2.3 及更高版本)。當一個人將同一台機器用於工作和個人用途時,或者當具有不同 ISP 帳戶的人共享同一個 Postfix 伺服器時,這可能很有用。

為了實現這一點,Postfix 支持每個發件人的 SASL 密碼和每個發件人的中繼主機。在下面的範例中,Postfix SMTP 客戶端將先按發件人地址搜尋 SASL 密碼文件,然後再按目的地搜尋同一個文件。同樣,Postfix trivial-rewrite(8) 守護程序將搜尋每個發送者的中繼主機文件,並且僅將預設中繼主機設置用作最後的手段。

/etc/postfix/main.cf:

smtp_sender_dependent_authentication = yes
sender_dependent_relayhost_maps = hash:/etc/postfix/sender_relay
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
relayhost = [mail.isp.example]
# Alternative form:
# relayhost = [mail.isp.example]:port

/etc/postfix/sasl_passwd:

# Per-sender authentication; see also /etc/postfix/sender_relay.
user1@example.com               username1:password1
user2@example.net               username2:password2
# Login information for the default relayhost.
[mail.isp.example]              username:password
# Alternative form:
# [mail.isp.example]:port username:password

/etc/postfix/sender_relay:

# Per-sender provider; see also /etc/postfix/sasl_passwd.
user1@example.com               [mail.example.com]:port
user2@example.net               [mail.example.net]
  • 每當您更改 sasl_passwd 表時,請執行命令“postmap /etc/postfix/sasl_passwd”。
  • 每當您更改 sender_relay 表時,請執行命令“postmap /etc/postfix/sender_relay”。

引用自:https://serverfault.com/questions/443652