Email
可以發送郵件但永遠不會收到“永久失敗”的電子郵件
我正在嘗試建構一個系統來分析傳入的電子郵件並自動刪除永久失敗的電子郵件。但是,當您向無效地址發送電子郵件時,我通常不會收到那些電子郵件。
要測試我的系統,我使用命令
mail -s "test mail" validemail@free.fr
我在郵箱 validemail@free.fr 上收到來自 root@myserverdomain.com 的電子郵件
我回复 root@lyserverdomain.com 打招呼,我在 myserverdomain.com 上收到了電子郵件。
然後我試試這個:
mail -s "test mail" invalidemaillllllllllllllllllllllllllllllllllllll@free.fr
而且我從來沒有收到過這封告訴你它不是有效地址的電子郵件。
如果我從“經典”電子郵件客戶端(例如 gmail)向 invalidemaillllllllllllllllllllllllllllllllllllll@free.fr 發送電子郵件,我幾乎會立即收到這封電子郵件,告訴我它不是有效地址。
所以我錯過了什麼嗎?我想是的。
我在 debian 上使用 Postfix 最新版本。它配置在埠 6666(實際上不是 25)上。我在同一台機器上的埠 25 上使用另一個 smtp 伺服器,它是一個接收外部電子郵件並分析它們的 python 腳本。
好的,我得到它的工作。
這是對發生的事情的解釋:
- 當我使用 postfix 發送電子郵件時,postfix 會聯繫收件人電子郵件地址中域的 smtp 伺服器。
- SMTP 伺服器回复此帳戶無效。
- Postfix 準備一個錯誤郵件發送到郵件的“return-path”欄位,root@myserver.com
- Postfix 認為這是一個本地電子郵件地址,因此他使用自己的 SMTP 伺服器發送此電子郵件。我為在此伺服器上接收電子郵件而建構的 python SMTP 伺服器被繞過了,我從未在我的 python 腳本中看到此錯誤電子郵件。
為了解決這個問題,我在 Postfix 配置中添加了一個別名:(debian)
vi /etc/aliases
在文件中添加這個新別名
root: newsletter@myserver.com
然後修補別名數據並重新啟動python
newaliases postfix reload