如何配置Sendmail通过465端口与TLS加密的SMTP服务器通信?
Sendmail配置465端口TLS连接IONOS SMTP服务器修复方案
1. 修复sendmail.mc中的语法错误
你的配置文件里存在一处致命语法错误:
465FEATURE(`ratecontrol', `nodelay', `terminate')dnl
该行开头多余的465会导致m4预处理器解析失败,生成的sendmail.cf配置不完整。修改为:
FEATURE(`ratecontrol', `nodelay', `terminate')dnl
2. 正确配置465端口的SMTPS连接
465端口是SMTPS协议(连接建立时直接启动TLS加密),和587端口的SMTP+STARTTLS逻辑完全不同,不能直接修改普通SMTP邮件器的端口。需要单独定义SMTPS邮件器并关联智能主机:
在Default Mailer setup段落,替换现有相关配置为:
# 定义智能主机为SMTPS类型 define(`SMART_HOST', `smtps://smtp.ionos.co.uk')dnl # 显式指定SMTPS端口为465 define(`SMTPS_MAILER_ARGS', `TCP $h 465')dnl # 强制要求TLS加密 define(`confSMTPS_TLS_REQUIRED', `True')dnl # 认证配置保留现有逻辑,调整机制顺序适配服务商 define(`confAUTH_OPTIONS', `A p y')dnl TRUST_AUTH_MECH(`LOGIN PLAIN CRAM-MD5 DIGEST-MD5')dnl define(`confAUTH_MECHANISMS', `LOGIN PLAIN CRAM-MD5 DIGEST-MD5')dnl FEATURE(`authinfo',`hash -o /etc/mail/auth/client-info.db')dnl
3. 验证认证信息文件正确性
确保/etc/mail/auth/client-info明文文件内容正确:
AuthInfo:smtp.ionos.co.uk "U:你的IONOS邮箱用户名" "P:你的邮箱密码" "M:PLAIN"
生成哈希数据库并设置权限:
cd /etc/mail/auth makemap hash client-info < client-info chmod 600 client-info client-info.db chown root:smmsp client-info client-info.db
4. 重新生成配置并重启服务
执行命令更新Sendmail配置:
sendmailconfig
重启Sendmail服务:
systemctl restart sendmail
5. 清理队列并测试发送
先清空滞留的邮件队列:
sendmail -q -v
重新测试邮件发送:
echo "Subject: Sendmail 465 Test" | sendmail -v david.partridge@perdrix.co.uk
额外排查方向
- 检查服务器防火墙是否允许出站465端口流量;
- 用
telnet smtp.ionos.co.uk 465测试基础连通性,若无法连接则是网络层面问题; - 查看
/var/log/mail.log日志,获取更详细的错误细节。
内容的提问来源于stack exchange,提问作者David Partridge
相关产品推荐
相关产品推荐

