Postfix

後綴給我“發件人地址被拒絕:需要完全合格的地址;”看起來像奇怪地址的錯誤

  • January 30, 2017

我收到一些這樣的錯誤消息:

Jan 28 17:20:47 halk postfix/smtpd[29413]: NOQUEUE:
   reject: RCPT from mail.m2osw.com[138.197.205.139]:
   504 5.5.2 <SRS1=R3xB=m2osw.com==hj4N=ZL=lime.ocn.ne.jp=@com>:
   Sender address rejected: need fully-qualified address;
   from=<SRS1=R3xB=m2osw.com==hj4N=ZL=lime.ocn.ne.jp=@com>
   to=<secret@valid.domain.tld> proto=ESMTP helo=<m2osw.com>

我不太確定我是否理解尖括號之間的“電子郵件”地址:

SRS1=R3xB=m2osw.com==hj4N=ZL=lime.ocn.ne.jp=@com

這對我來說看起來很垃圾,但也許它是一種信封形式?

原始 From 如下所示:

From: western union <"westernunion1."@lime.ocn.ne.jp>

(這是一封明確的垃圾郵件,但非垃圾郵件也會發生這種情況。)

據我所知,我的設置之前執行良好,但我將其中一台郵件伺服器升級到了最新的後綴(以及 Ubuntu 16.04 而不是 14.04)。存檔伺服器不久前升級了。

當我從 gmail 向自己發送電子郵件時會發生此錯誤。然後 gmail 收到退回郵件。

設置是這樣的:

+------------------+    +------------------+
|                  |    |                  |
| Client           |--->| Main Server      |
|                  |    |                  |
+------------------+    +------------------+
                               |
                               v
                       +------------------+
                       |                  |
                       | Archive Server   |
                       |                  |
                       +------------------+

Main Server上,電子郵件按預期工作。當電子郵件到達存檔伺服器時會發生錯誤。

當從一個後綴 MTA 轉發到另一個時,是否有什麼可以改變的東西以這種方式“破壞”電子郵件地址?

好吧,我找到了罪魁禍首。這些“奇怪”的電子郵件地址以 SRS 開頭,指向postfix可以通過postsrsd. postsrsd守護程序作者建議在您的postfix/main.cf文件中執行四個條目:

sender_canonical_maps = tcp:localhost:10001
sender_canonical_classes = envelope_sender
recipient_canonical_maps = tcp:localhost:10002
recipient_canonical_classes= envelope_recipient,header_recipient

顯然,這會生成電子郵件地址的信封。該信封的規格是:

SRS0+xxxx=yy=example.com=alice@yourdomain.org

就我而言,問題是 之後的域名@是動態生成的。這意味著獲取完整的電腦主機名並刪除名字。所以如果我有m2osw.com作為主機名,postsrsd最終會使用com作為域名。換句話說,我最終會得到如下所示的電子郵件地址:

...@com

顯然,@com不是一個有效的域名。

守護程序使用文件中的postsrsd一些定義:

/etc/default/postsrsd

在那裡我們找到了一個名為 的變數SRS_DOMAIN。通過使用正確的域名設置該變數:

SRS_DOMAIN=m2osw.com

電子郵件按預期被封裝,錯誤消失了。(即,我們在舊的“主伺服器”上正確設置了該設置。我們在傳輸時錯過了這一點。)

我不這麼認為,您共享的日誌顯示一切正常,並且 postfix 執行良好。如果您需要有關正在發生的事情的更多資訊,請將以下內容添加到 main.cf:

error_notice_recipient = postmaster@yourdom.com
delay_notice_recipient = $error_notice_recipient
bounce_notice_recipient = $error_notice_recipient
2bounce_notice_recipient = $error_notice_recipient
#The list of error classes that are reported to the postmaster
notify_classes = bounce, delay, policy, protocol, resource, software

拒絕是因為以下幾行之一:

reject_non_fqdn_helo_hostname,

reject_non_fqdn_recipient

我希望這會有所幫助

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