我有一台 CentOS 8 流服务器。我设置它smartmontools
来监控我的驱动器。MTA 是msmtp
。为了测试设置,我修改了我的设置,smartd.conf
添加了以下内容:
/dev/sda -a -m [email protected] -M test
由于我没有看到任何邮件弹出,我决定检查日志:
journalctl -u smartd
结果如下:
smartd[1184]: Executing test of <mail> to [email protected]...
smartd[1184]: Test of <mail> to [email protected] produced unexpected output (459 bytes) to STDOUT/STDERR:
smartd[1184]: send-mail: cannot connect to smtp.gmail.com, port 587: Permission denied
smartd[1184]: send-mail: could not send mail (account default from /etc/msmtprc)
smartd[1184]: send-mail: cannot log to /var/log/msmtp.log: cannot open: Permission denied
smartd[1184]: send-mail: log info was: host=smtp.gmail.com tls=on auth=on [email protected] [email protected] [email protected] errormsg='cannot connect to smtp.gmail.com, port 587: Permission denied' exitcode=EX_TEMPFAIL
因此,我尝试了:
echo "My message" | mail -s "Some subject" [email protected]
它确实发送了邮件,但仍然显示错误:
send-mail: cannot log to /var/log/msmtp.log: cannot open: Permission denied
我认为这可能是 SE 权限的问题,因此我检查了:
getsebool -a | grep mail
结果是:
gitosis_can_sendmail --> off
httpd_can_sendmail --> on
logging_syslogd_can_sendmail --> on
logwatch_can_network_connect_mail --> on
mailman_use_fusefs --> off
postfix_local_write_mail_spool --> on
我有两个错误,但不知道如何纠正。如果有人能给我指明正确的方向,我将非常高兴。
非常感谢!
答案1
send-mail:无法连接到 smtp.gmail.com,端口 587:权限被拒绝 send-mail:无法发送邮件(帐户默认来自 /etc/msmtprc)
这可能是身份验证问题,请检查您的凭据/etc/msmtprc
。
发送邮件:无法记录到/var/log/msmtp.log:无法打开:权限被拒绝
这可能是 AppArmor 禁止登录/var/log/msmtp.log
。
我不知道 CentOS,但你可能想看看这个 AskUbuntu 问题无论如何。在 Ubuntu 上,有一个默认的 AppArmor 配置文件,它只允许登录/var/log/msmtp
(没有.log
扩展)。
或者您可以尝试使用syslog LOG_MAIL
(应该记录到/var/log/mail.log
),而不是logfile /var/log/msmtp.log
在您的 msmtprc 中,正如建议的那样这里。