通過客戶端發送郵件遇到的錯誤,解決方案一些經驗
錯誤504 5.5.2
錯誤信息:Please check the email <admin@qnjslm.com>, server reply: 504 5.5.2 <DESKTOP-8NP2UMV>: Helo command rejected: need fully-qualified hostname
錯誤原因:
郵件發送客戶端的helo 信息不是完全的FQDN名稱,一般郵件客戶端都是使用主機名發送
給服務器,我們一般電腦上都不會設置成fqdn的形式
解決方法:修該postfix配置文件/etc/postfix/main.cf
找到helo認證信息 smtpd_helo_restrictions 注釋掉下面的一行
reject_non_fqdn_helo_hostname
錯誤450 4.7.1
錯誤信息:Please check the email <admin@qnjslm.com>, server reply: 450 4.7.1 <DESKTOP-8NP2UMV>: Helo command rejected: Host not found
原因和上一個錯誤大同小異,如果你的主機是fqnd名稱了但是反向PTR無法解析的話就是
這個錯誤,客戶端發送help信息時候,服務器會通過客戶端的Ip信息進行反向查看,如無法匹配
報這個錯誤,這個兩個設定絕大部門用於內部郵件
解決方案
修該postfix配置文件/etc/postfix/main.cf
找到helo認證信息 smtpd_helo_restrictions 注釋掉下面的一行
reject_unknown_helo_hostname
如下兩個錯誤的解決辦法一樣554 5.7.1,454 4.7.1
錯誤信息:554 5.7.1 <admin@qnjslm.com>: Recipient address rejected: SMTP AUTH is required, or it is a spam with forged sender domain
如果但解決這個錯誤,可以把以下policy檢查取消即可,這時候發往內部郵件無問題,
外部郵件會有下面的報錯
check_policy_service inet:127.0.0.1:7777
錯誤信息:454 4.7.1 <669457994@qq.com>: Relay access denied
問題原因,通過查看日志發現,我們發送郵件是匿名的,在配置文件中啟用外發郵件必須認證即可
Dec 17 11:01:58 www postfix/smtpd[1740]: disconnect from unknown[101.64.179.207]
Dec 17 11:02:11 www postfix/postscreen[1739]: CONNECT from [101.64.179.207]:10466 to [103.79.76.193]:25
Dec 17 11:02:11 www postfix/postscreen[1739]: PASS OLD [101.64.179.207]:10466
Dec 17 11:02:11 www postfix/smtpd[1740]: connect from unknown[101.64.179.207]
Dec 17 11:02:12 www postfix/smtpd[1740]: Anonymous TLS connection established from unknown[101.64.179.207]: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)
Dec 17 11:02:12 www postfix/smtpd[1740]: NOQUEUE: reject: RCPT from unknown[101.64.179.207]: 454 4.7.1 <669457994@qq.com>: Relay access denied; from=<alex@qnjslm.com> to=<669457994@qq.com> pr
oto=ESMTP helo=<DESKTOP-8NP2UMV>
在配置文件/etc/postfix/main.cf 添加如下幾行
注意如沒有相關選項,添加即可
smtpd_sasl_auth_enable = yes #使用SMTP認證
broken_sasl_auth_clients = yes #讓不支持RFC2554的smtpclient也可以跟postfix做交互
smtpd_sasl_local_domain = $myhostname #需要認證的域,
smtpd_sasl_security_options = noanonymous //不允許指定域進行匿名發送郵件