後綴給我“發件人地址被拒絕:需要完全合格的地址;”看起來像奇怪地址的錯誤
我收到一些這樣的錯誤消息:
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
我希望這會有所幫助