Sendmail配置邮件中继时出现主机名查找失败问题求助
解决Sendmail使用IP作为SMART_HOST时出现主机名查找失败的问题
问题分析
错误日志中Name server: 10.*.*.*: host name lookup failure表明:即便直接使用IP地址作为SMART_HOST,Sendmail仍会默认尝试对该IP进行反向DNS解析,解析失败直接导致邮件发送被延迟。
解决步骤
1. 修改SMART_HOST定义格式
在sendmail.mc中,将IP地址用方括号包裹,明确告知Sendmail这是纯IP目标,无需执行DNS解析:
define(`SMART_HOST', `[10.*.*.*]')dnl
方括号是Sendmail识别IP地址的特殊语法,会强制跳过反向DNS查询流程。
2. 重新生成并加载配置文件
修改完成后,重新编译sendmail.mc生成有效的sendmail.cf配置:
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
随后重启Sendmail服务使配置生效:
systemctl restart sendmail
3. 同步authinfo配置(若需认证)
如果中继服务器需要身份验证,确保authinfo文件中的目标IP也使用方括号格式,示例如下:
AuthInfo:[10.*.*.*] "U:your_relay_username" "P:your_relay_password" "M:PLAIN"
重新生成authinfo的db文件:
makemap hash /etc/mail/authinfo/authinfo.db < /etc/mail/authinfo/authinfo
4. 测试邮件发送
使用sendmail命令直接测试发送,验证问题是否解决:
echo "Test email content" | sendmail -v steven.rothera@test.com
观察输出日志,确认不再出现主机名查找失败的错误。
内容的提问来源于stack exchange,提问作者StevenLR
相关产品推荐
相关产品推荐

