![systemd(OnFailure)使用ssmtp和gmail无法发送邮件](https://linux22.com/image/193449/systemd%EF%BC%88OnFailure%EF%BC%89%E4%BD%BF%E7%94%A8ssmtp%E5%92%8Cgmail%E6%97%A0%E6%B3%95%E5%8F%91%E9%80%81%E9%82%AE%E4%BB%B6.png)
一些重要的服务:
[Unit]
...
OnFailure=status-email@%n.service
[Unit]
Description=status email for %i to user
[Service]
Type=oneshot
ExecStart=/usr/local/bin/systemd-email.sh <recipient> %i
User=root
Group=systemd-journal
[Install]
WantedBy=multi-user.target
我收到错误systemd-email.sh[117310]: ssmtp: Cannot open smtp.gmail.com:587
我可以手动发送邮件./systemd-email.sh $RECIPIENT $SERVICE_NAME
它也可以作为 cronjob 运行。
我的/etc/ssmtp/ssmtp.conf
:
root=<gmail address>
mailhub=smtp.gmail.com:465
FromLineOverride=YES
AuthUser=<gmail address>
AuthPass=<password>
UseTLS=YES
为什么 cron 可以在此设置中发送邮件而 systemd 不能?
答案1
根据评论,问题是其他地方的端口号配置不正确。请考虑删除这个问题,因为它给社区和站点/网络带来的主要问题是“为什么您应该进行详细的搜索/研究、故障排除和/或诊断,以耗尽您自己解决问题的所有途径。 ”
我要添加的唯一可以帮助其他/未来用户的是应用各种模板文件和配置文件(将环境变量设置为正确的值,然后在其他文件中使用它)以确保单个更改传播到所有下级配置文件。