
我在中繼到透過 mimecast 路由郵件的伺服器時遇到問題。連線被拒絕並顯示以下訊息:
553 This route requires encryption (TLS) - https://community.mimecast.com/docs/DOC-1369#553
這讓我覺得 sendmail(配置了憑證並在充當伺服器時通告 STARTTLS)沒有在正確的時間(或根本沒有)發送 STARTLS。這是傳輸失敗的痕跡:
>>220 zzz.mimecast.com ESMTP; Thu, 16 Jun 2022 11:55:55 +0200
>>> EHLO rigel-170.orion.it
250-zzz.mimecast.com Hello [212.115.64.170]
250-AUTH PLAIN LOGIN
250-STARTTLS
250 HELP
>>> MAIL From:<[email protected]>
250 Sender OK [R9SDNpJCMqeqqffSnRQQeg.de46]
>>> RCPT To:<[email protected]>
553 This route requires encryption (TLS) - https://community.mimecast.com/docs/DOC-1369#553 [R9SDNpJCMqeqqffSnRQQeg.de46]
>>> DATA
503 Illegal command sequence - https://community.mimecast.com/docs/DOC-1369#503 [R9SDNpJCMqeqqffSnRQQeg.de46]
我要補充的是,同一台伺服器作為 smtps 伺服器運行,沒有任何問題(表明證書方面沒有問題),並且提交郵件程式定期發送 STARTTLS(我可以在日誌中看到 STARTTLS=client。)但是,那就是我在那裡見過的唯一的=客戶端(表明sendmail在充當其他伺服器的客戶端時實際上並沒有發送STARTTLS)
我嘗試了 SRV_Features、Try_TLS、TLS_Clt、TLS_Srv 和 TLS_Rcpt 的幾種組合,但沒有成功。到目前為止,我在訪問映射中留下的唯一 TLS 指令是:
Try_TLS: Yes
我還在sendmail.mc中配置了客戶端證書
我不知道接下來要嘗試什麼。
編輯
我剛剛發現以下內容(進一步模糊了問題)。
我配置了(由於黑名單問題)與預設主機名稱/位址不同的主機名稱/位址(位址和主機名稱都在 DNS 中正確註冊)。我用以下幾行這樣做了:
CLIENT_OPTIONS(`M=S,Addr=a.b.c.d')dnl
define(`confDOMAIN_NAME', `fubar.it')dnl
如果這兩行被註釋,starttls 將如預期發出(如透過追蹤 SMTP 會話所見)。這似乎沒有任何意義。
編輯2:根據評論,罪魁禍首是M=S
CLIENT_OPTIONS 行中的位元(這是從很久以前的某個地方撕下來的)。 “S”的意思是“關閉 STARTTLS”,更改它就M=s
可以了。作為參考,以下是自 sm 14.4 起守護程式/用戶端選項中標誌的意思:
ON OFF Meaning
a A Offer the AUTH SMTP extension
b B Offer use of the SMTP VERB command
d D Offer the DSN SMTP extension
e E Offer the ETRN SMTP extension
l L Require the client to authenticate with AUTH
p P Offer the PIPELINING SMTP extension
s S Offer the STARTTLS SMTP extension
v V Verify a client certificate
x X Offer use of the SMTP EXPN ...
此致,
答案1
據我了解,S
標記會CLIENT_OPTIONS
關閉STARTTLS
支援。
CLIENT_OPTIONS(`M=S,Addr=a.b.c.d')dnl