從另一台伺服器發送電子郵件時“中繼訪問被拒絕”

從另一台伺服器發送電子郵件時“中繼訪問被拒絕”

2008 年,我設定了一個簡單的郵件伺服器(運行 ubuntu 8.04 LTS),以允許本地自動化控制器無限制地發送電子郵件警報。我曾經使用過 gmx,但發現如果帳戶有大量警報(表示有問題),gmx 就會阻止它。我設定了 postfix 並讓它工作。然後我需要能夠允許這種類型的控制器從遠端站點發送警報。我為靜態 IP 位址設定了防火牆規則,一切正常。

現在,我安裝了一台新伺服器,運行 ubuntu 12.04,執行與以前完全相同的操作。本機控制器可以很好地連接到伺服器並發送電子郵件。但是,當遠端控制器嘗試連接時,我在 /var/log/mail.log 中看到以下內容:

8 月 23 日 16:21:24 localhost postfix/smtpd[6709]:NOQUEUE:拒絕:來自未知的 RCPT[xx.xx.xx.xx]:554 5.7.1:中繼訪問被拒絕;從= 到= 原型=ESMTP helo=

我發現編輯特定行/etc/postfix/main.cf可以允許各個遠端 IP 位址連接並發送郵件:

mynetworks = 127.0.0.0/8,10.102.0.0/16,xx.xx.xx.xx/32

其中 xx.xx.xx.xx 是遠端位置的靜態 IP 位址。我比較了舊伺服器和新伺服器的配置文件,它們基本上是相同的。有誰知道如何讓它像以前一樣工作?

答案1

「基本相同」與「相同」不同。 :)

您需要在中列出授權的 IP 位址mynetworks 告訴 Postfix 授權他們:

smtpd_recipient_restrictions =
        permit_mynetworks,

答案2

檢查virtual文件中的 postfix。

/etc/postfix/virtual:
#            virtual-alias.domain     anything (right-hand content does not matter)
#            [email protected]  postmaster
#            [email protected]       address1
#            [email protected]       address2, address3
#
#        The  virtual-alias.domain anything entry is required for a
#        virtual alias domain. Without this entry, mail is rejected
#        with  "relay  access  denied", or bounces with "mail loops
#        back to myself".

答案3

因此,要解決該問題,必須正確設定 SASL 和憑證。我幾乎完全按照本指南進行操作,一切正常:

https://help.ubuntu.com/12.04/serverguide/postfix.html

讓我失望的是我在 8.04 上不需要它。顯然是 postfix 的安全升級。

相關內容