分離證據層
一個地址在語法上可能是正確的,但其郵箱不存在。一個網域可以發布一個 MX記錄 同時拒絕特定的收件人。伺服器可以在SMTP期間接受收件者並稍後拒絕,或接受每個本地部分的郵件。這些觀察結果均不能證明允許發送行銷訊息。將語法、路由、收件者回應、傳遞和同意保留在單獨的欄位中。
身份驗證涉及另一個問題:訊息是否由特定網域授權或簽名,以及這些身份是否與可見的作者網域一致。收件者地址驗證結果未建立 SPF, DKIM 或者 DMARC 消息成功。同樣, DMARC通行證也沒有說明收件人是否需要該郵件。
在上下文中解釋SMTP響應
RFC 5321在SMTP事務的定義階段區分臨時否定答覆、永久否定答覆和成功答覆。記錄階段、回應和時間戳。臨時回應需要重試策略,而不是立即無效位址標籤。單獨接受 RCPT TO 並不表示接受完整的訊息內容或送達收件匣的證明。
-all行為造成了重要的不確定性。如果兩個發明的本地部分和一個已知位址都收到類似的收件者階段接受,則這是伺服器回應模式的證據,而不是每個郵箱存在的證據。有些系統有意避免洩漏收件人的有效性。其他人對接受的訊息進行排隊,然後產生傳遞失敗。不要承諾根據這些觀察結果提供完整的郵箱目錄。
使用驗證證據表
考慮五個假設的觀察:指定解析器的語法拒絕; RCPT TO 的 550 響應; RCPT TO 的 450 響應;對幾個發明的本地部件進行類似的接收階段驗收;以及完整消息接受後傳送失敗。將它們分別標記為解析器拒絕、對該事務的永久拒絕、臨時拒絕、觀察到郵箱存在未知的接受以及後來的傳遞失敗。 550 可以反映策略而非不存在的郵箱。沒有建立同意或寄件者身份驗證。這些是教學輸入,而不是提供的測試結果或執行的探測。
在授權生產工作流程中,僅保留規定目的所需的最少地址資訊和回應詳細資訊。避免侵入性或未經請求的探測。商定未知結果如何影響下游工作:等待審查、透過現有關係請求確認或停止操作。寬容的未知到有效的映射會產生錯誤的信心;未知到無效可以丟棄合法的聯絡人。讓這種權衡變得明確,而不是將其隱藏在綠色勾號內。
保留精確的邊界
RFC 5321第 3.3、4.2.1、4.2.5 及 6.1 節 區分交易階段、回應類別和接受責任。傳回的MX不是郵件列表;單獨缺少MX也並不能證明沒有郵件路由,因為第 5.1 節定義了隱式MX處理。 RFC 9989第 4.4 節及 5.3.5 節 評估已驗證 域對齊 對於一條訊息,而不是收件人的存在。未執行即時探測、發送或郵箱枚舉。