Ubuntu 24.04.1 LTS升级后Sendmail Gmail中继需手动重载才能发送邮件的问题
Hey,看到你升级Ubuntu 24.04后遇到Sendmail Gmail中继的这个问题,确实挺闹心的——明明之前配置好好的,升级后非得手动重载才能正常发邮件。我帮你梳理几个可能的排查方向和解决办法:
先确认Sendmail服务的开机自启与启动状态:升级过程中系统服务的启动配置可能被重置,导致Sendmail启动时没加载最新的Gmail中继配置。先检查当前服务状态:
sudo systemctl status sendmail如果显示服务未启用或启动异常,设置开机自启并重启服务:
sudo systemctl enable --now sendmail sudo systemctl restart sendmail之后测试发送邮件,看是否还需要手动重载。
重新编译Sendmail配置文件:虽然你提到升级时已经自动remake了配置,但自动操作偶尔会有遗漏。手动重新编译一次,确保所有设置生效:
cd /etc/mail sudo make sudo systemctl restart sendmail这个操作会重新生成
sendmail.cf等核心配置文件,能解决不少升级后的配置不兼容问题。检查Sendmail的监听端口:报错里的「Connection refused by [127.0.0.1]」说明Sendmail没在本地端口正常监听。用下面的命令查看监听状态:
ss -tulpn | grep sendmail如果看不到Sendmail监听127.0.0.1的25端口(或你配置的其他端口),大概率是启动时配置加载失败,上面的重新编译操作应该能解决这个问题。
验证认证配置文件的权限:Gmail中继的认证信息文件权限必须严格限制,否则Sendmail启动时会拒绝加载。检查
/etc/mail/authinfo下的文件权限:sudo ls -l /etc/mail/authinfo/确保
gmail-auth和gmail-auth.db的权限是-rw-------(即600),所有者为root。如果权限不对,修改后重启服务:sudo chmod 600 /etc/mail/authinfo/gmail-auth* sudo systemctl restart sendmail调整systemd服务的启动依赖:Ubuntu 24.04的systemd可能调整了服务启动顺序,Sendmail可能在网络服务就绪前就启动了,导致无法加载网络相关的中继配置。编辑Sendmail的systemd服务文件:
sudo nano /lib/systemd/system/sendmail.service在
[Unit]区块里添加:After=network.target保存后重新加载systemd配置并重启服务:
sudo systemctl daemon-reload sudo systemctl restart sendmail
如果以上方法都试过还是不行,可以仔细查看/var/log/mail.err里的详细错误信息,或者用mailq查看邮件队列的具体状态,这些信息能帮你定位更细节的问题。
备注:内容来源于stack exchange,提问作者user2117779

