我正在嘗試向我自己的郵箱中的地址發送電子郵件([電子郵件受保護]),並且 postfix 正在嘗試傳遞到[電子郵件受保護]- 使用者名稱被數字 1 取代。
<[email protected]> (expanded from <[email protected]>): host mail.domain.tld[private/dovecot-lmtp] said: 550 5.1.1 <[email protected]> User doesn't exist: [email protected] (in reply to RCPT TO command)
搜尋郵件日誌,第一個結果引用[電子郵件受保護]這是:
Oct 19 13:41:44 servername postfix/lmtp[16232]: A547EC29C2: to=<[email protected]>, orig_to=<[email protected]>, relay=mail.domain.tld[private/dovecot-lmtp], delay=0.19, delays=0.16/0.01/0.01/0.02, dsn=5.1.1, status=bounced (host mail.domain.tld[private/dovecot-lmtp] said: 550 5.1.1 <[email protected]> User doesn't exist: [email protected] (in reply to RCPT TO command))
[電子郵件受保護]存在,並且可以向外發送郵件。 [電子郵件受保護]顯然不存在。
那麼為什麼 Postfix 會重複將所有郵件傳送到[電子郵件受保護]?
答案1
運行doveconf -n
以驗證確認結果顯示以下行:
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf, mysql:/etc/postfix/mysql-virtual-email2email.cf
檢查/etc/postfix/mysql-virtual-email2email.cf
發現實際錯誤:
query = SELECT 1 FROM virtual_users WHERE email='%s'
因此,在仔細搜尋資料庫後,對於電子郵件是給定地址的任何用戶,它都會選擇數字 1。若要解決此問題,請將1
查詢變更為表格使用的實際正確列名稱。