允許使用者使用 postfix 發送郵件
我已經在我的 ubuntu 伺服器上安裝了 postfix 和 opendkim,打算將此伺服器用作應用程序的私有中繼,以向新使用者發送“啟動”電子郵件。我使用 dovecot-commons 配置了 SASL 身份驗證來保護它。
我使用以下方法進行了測試:
echo "Email Body" | mail -s "Subject" em@il.com
並使用 mail-tester.com 來驗證我的配置和 SPF/DMARC 記錄是否正常工作。我還用telnet進行了測試,連接到smtp套接字並在MAIL FROM
欄位中填寫我自己的使用者名。這也很成功。然後,我在伺服器上設置了一個新使用者帳戶並測試了以該新使用者身份發送。這是沒有任何工作的時候。mail 命令和 telnet 方法都將報告成功且沒有錯誤,但電子郵件永遠不會到達收件人。我使用一組相同的主題和消息正文進行了測試,發送到相同的外部電子郵件地址。日誌不指示任何錯誤並且看起來同樣成功。
使用者帳戶是否有任何先決條件才能使用 postfix + dovecot?
使用舊使用者帳戶嘗試的日誌條目
Nov 24 21:09:42 host postfix/pickup[21809]: D816C20CC7: uid=1000 from=<old_user_account@domain> Nov 24 21:09:42 host postfix/cleanup[21918]: D816C20CC7: message-id=<20151124130942.D816C20CC7@mail.domain> Nov 24 21:09:42 host opendkim[21821]: D816C20CC7: DKIM-Signature field added (s=mail, d=domain) Nov 24 21:09:42 host postfix/qmgr[21810]: D816C20CC7: from=<old_user_account@domain>, size=368, nrcpt=1 (queue active) Nov 24 21:09:45 host postfix/smtp[21929]: D816C20CC7: to=<external.em@il.com>, relay=mx2.hotmail.com[65.54.188.72]:25, delay=2.6, delays=0.05/0.01/1.6/0.92, dsn=2.0.0, status=sent (250 <20151124130942.D816C20CC7@mail.domain> Queued mail for delivery) Nov 24 21:09:45 host postfix/qmgr[21810]: D816C20CC7: removed
嘗試使用新使用者帳戶的日誌條目
Nov 24 21:10:36 host postfix/pickup[21809]: 72A4C20CC7: uid=1002 from=<new_user_account@domain> Nov 24 21:10:36 host postfix/cleanup[21918]: 72A4C20CC7: message-id=<20151124131036.72A4C20CC7@mail.domain> Nov 24 21:10:36 host opendkim[21821]: 72A4C20CC7: DKIM-Signature field added (s=mail, d=domain) Nov 24 21:10:36 host postfix/qmgr[21810]: 72A4C20CC7: from=<new_user_account@domain>, size=371, nrcpt=1 (queue active) Nov 24 21:10:39 host postfix/smtp[21929]: 72A4C20CC7: to=<external.em@il.com>, relay=mx2.hotmail.com[65.55.33.135]:25, delay=3.3, delays=0.06/0/1.7/1.5, dsn=2.0.0, status=sent (250 <20151124131036.72A4C20CC7@mail.domain> Queued mail for delivery) Nov 24 21:10:39 host postfix/qmgr[21810]: 72A4C20CC7: removed
您收到一條排隊等待傳遞的消息,但您沒有提供足夠的資訊讓我們知道它是否只是在您的 postfix 上排隊,或者它是否也在目的地排隊。
您說使用了不同的 hotmail 伺服器,我假設您正在發送到 hotmail 的地址?如果 hotmail 對兩封不同的郵件說“排隊等待投遞”,而其中一封沒有到達,那麼問題就出在內容上。一個被檢測為垃圾郵件。
也許接收使用者可以在他的垃圾郵件文件夾中找到它。否則,將發件人添加到“安全發件人”列表並重試,如果它有效,那麼您將確認這是反垃圾郵件規則。
也許您的 DMARC 適用於從您的伺服器發送的郵件,但不適用於您的伺服器中繼的郵件?嘗試查找“失去”的電子郵件或將新電子郵件發送到垃圾郵件過濾較少的地址,然後比較郵件頭。也許你認識一個有 SpamAssassin 過濾的人;SpamAssassin 通常會在標題中寫入分析,您可以使用該分析來找出您的郵件被視為垃圾郵件的原因。
編輯:感謝您添加日誌。它們顯示兩封郵件都正確發送到 hotmail。Hotmail IP 不同這一事實並不重要。如果一個重複通過而不是另一個,則過濾必鬚根據源電子郵件地址執行不同的操作。由於這是 Hotmail,請嘗試將新發件人添加到安全發件人列表中。在其他情況下,問題可能是手動過濾(一些提供商會讓您編寫自己的規則,有時人們會忘記它們)。