題 從我的服務器通過垃圾郵件過濾器發送電子郵件需要什麼?


我有一個安裝了postfix的serverbeach服務器。

主機名是這樣的 p3204059.pubip.serverbeach.com

服務器本身的FQDN指定為NONE。

我點擊更改ptr記錄,我輸入了我的IP並將FQDN設置為:mysubdomain.mydomain.com 它可能還沒有完成傳播。 IP主機名是否與FQDN相同,與反向dns相同?

我發送了一封來自php的電子郵件,它說它工作正常,但我沒有收到電子郵件。我應該將機器上的主機名更改為mysubdomain.mydomain.com嗎?還有什麼其他的東西與DNS有關,以防止我的電子郵件進入垃圾郵件文件夾?


6
2017-11-19 06:10


起源


不是一個完整的解決方案,而是一個額外的建議。將SPF記錄添加到域DNS記錄中。 - kobaltz
檢查你的php.ini設置。通過php發送郵件並不是對郵件服務器的真正考驗。 sendmail 從命令行可以讓您更好地了解正在發生的事情。 - AWippler
服務器故障對此類問題有“典型答案”。 serverfault.com/questions/48428/... - minopret


答案:


首先要點:

  1. 閱讀相關的RFC:s等 RFC 5321,並確保您的郵件符合它,不要遺漏任何標題,如 Date:  Subject: 要么 From:,並仔細閱讀格式細節 From: 領域。 只是一個電子郵件地址不再有效。
  2. 仔細檢查一下 From: 使用的地址是您可以接收郵件的有效地址。
  3. 讓PHP通過本地postfix安裝發送郵件,而不是直接在互聯網上或通過網絡託管主機發送。
  4. 保持DNS條目與前向和後向查找相同 (mysubdomain.mydomain.com. 應解析為具有指向PTR記錄的IP地址 mysubdomain.mydomain.com.)。
  5. 使郵件服務器發送其HELO(EHLO)及其正確的FQDN(mysubdomain.mydomain.com.)。
  6. 實行  DKIM簽約 外發電子郵件
  7. 避免託管由經常被黑客攻擊的系統共享。
  8. 添加您的服務器 DNSWL.ORG
  9. 發布一個 SPF記錄 對於您的域,表明您的服務器是您的域的合法發件人主機
  10. 避免“垃圾內容”內容:-)
  11. 注意8位字符。他們需要在標頭中進行適當的編碼。

設置完成後,如果郵件仍未通過,您就可以進行故障排除:

  1. 檢查postfix郵件隊列(mailq)和日誌,如 /var/log/mail*log (文件名可能因發行而異)
  2. 如果郵件沒有離開服務器,postfix通常會告訴你原因。
  3. 如果郵件離開服務器,則問題出在接收方。檢查郵件日誌中的接收器MX狀態消息。它應該如下所示:

    2013-11-26T11:04:23.435295+01:00 jamie postfix/smtp[28919]: 415E65E3976: to=<example.rcpt@blaha.com>, relay=hoover.blaha.se[123.45.67.89]:25, delay=0.24, delays=0.2/0.02/0/0.02, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 661D12C0CD)
    

注意“status=sent“, (250 和“queued as 661D12C0CD“。

250 是接收MTA的狀態代碼,表示成功,現在交付是他們的責任。如果狀態代碼以。開頭 4 (如 450),有一個臨時錯誤,消息應保留在您的隊列中(可見 mailq)。如果狀態代碼以。開頭 5 (如 550),有一個永久性的失敗,沒有必要再次使用相同的收件人地址。然後郵件將從您的隊列中刪除而不會傳遞,並且可能會將退回郵件發送回發件人。這是您需要有效的原因之一 From:地址。

數字 661D12C0CD 在此示例中是遠程系統的隊列ID。在收件人一側查看日誌(或與郵局主管交談)時使用它。


8
2017-11-26 09:58





我應該將機器上的主機名更改為mysubdomain.mydomain.com嗎?

通常情況下,垃圾郵件過濾器會分解域名,即發起垃圾郵件的IP(在某些情況下甚至是整個ip塊或ASN完整,檢查) UCEPROTECT 和 Whatsmyip.com 黑名單檢查)

還有什麼其他的東西與DNS有關,以防止我的電子郵件進入垃圾郵件文件夾?

已經好幾次說過了,但是, 不發送垃圾郵件,這應該是第一種方法。之後,對來自/到服務器的所有連接使用SSL / TLS。暫停使用您的服務器發送垃圾郵件的帳戶。不要將服務器配置為Open Relay。強化您的服務器以抵禦黑客攻擊。等等。你可以使用太多的工具和方法來完成它不會結束。

我剛剛將PTR更新為主域名。如何診斷服務器郵件未到達目的地的原因?

您確定您的ISP允許您發送電子郵件嗎?您是否正確配置了服務器端口?服務器能夠郵寄自己嗎?難以診斷,因為有太多的東西可能會出錯,從本地到中間到終點,沒有日誌,ping,測試和更多的測試是不可能知道的。如果你想要,你可以檢查 http://whatismyipaddress.com/blacklist-check 並輸入您的服務器IP。如果列出的可能是您沒有收到來自服務器的電子郵件的原因,如果沒有列出,那麼您必須提供更多信息並測試您已完成的事情。

資源:


4
2017-11-21 15:37





MX工具箱 是你的朋友。做一個 mx:mysubdomain.mydomain.comblacklist:mysubdomain.mydomain.com,和 ptr:mysubdomain.mydomain.com 使用他們的supertool進行搜索來診斷郵件問題。

AOL,JUNO和YAHOO(可能更多,但肯定是這些)需要來自發送電子郵件服務器的有效PTR記錄,以便將郵件傳遞給他們的用戶。我注意到GMAIL不需要PTR記錄,但它確實尋找主機的MX記錄。


2
2017-11-22 21:56





正向和反向dns條目必須相同  轉發dns條目必須是您域名的mx條目。通常,您可以在域提供商的Web界面上添加/更改轉發dns條目和mx條目。您必須在主機提供商的Web界面上設置反向DNS項。如果您無法在網絡界面上進行設置,請與您的主機提供商聯繫,他們中的大多數人都會為您完成此操作。

您必須正確設置(添加)以下文件:

/ etc / hosts文件

 X.X.X.X myhostname.mydomain.com myhostname

在/ etc /主機名

 myhostname

在/ etc /郵件名

myhostname.mydomain.com

這些設置無法保證其他郵件服務器會將您的電子郵件聲明為垃圾郵件,但會大幅減少這些設置。


1
2017-11-26 09:21





對我來說,這兩點足以通過雅虎和谷歌的垃圾郵件過濾器:

  1. 確保發送電子郵件的計算機具有反向PTR記錄
  2. 在DNS和代碼中配置DomainKeys Identified Mail

你可以在這篇由Jeff Atwood撰寫的精彩小文章中閱讀 https://blog.codinghorror.com/so-youd-like-to-send-some-email-through-code/


0
2018-06-17 19:53