我有一台将部署到客户站点的CentOS7服务器。我希望在服务器出现问题时通过电子邮件收到提醒。
我有一个office365帐户,所以我在想是否可以将它用作SMTP中继服务器。 (请原谅我,如果我的话没有意义,因为我对SMTP和电子邮件相关技术知之甚少)。
我的第一个问题是,我是否需要对office365帐户执行任何特殊操作?我使用smtp.office365.com:587作为SMTP中继主机。
这是我的postfix main.cf config:
relayhost = [smtp.office365.com]:587
smtp_always_send_ehlo = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_generic_maps = hash:/etc/postfix/generic
smtp_tls_security_level = may
smtp_sasl_security_options = noanonymous
这是我的"泛型"和" sasl_passwd"文件看起来像。我还使用了" postmap"生成.db文件
/.*/ <o365 email>
root@server.difan.local <o365 email>
root@localdomain <o365 email>
@localdomain <o365 email>
[smtp.office365.com]:587 <o365 email>:<o365 password>
这是我用来测试它的命令
echo "This is the body of the email" | mail -s "This is the subject line" difan.zhao@outlook.com
这是我在/ var / log / maillog
中看到的内容Mar 26 10:46:00 server postfix/pickup[1921]: 5DC594087202: uid=0 from=<root>
Mar 26 10:46:00 server postfix/cleanup[2495]: 5DC594087202: message-id=<20170326164600.5DC594087202@server.difan.local>
Mar 26 10:46:00 server postfix/qmgr[1922]: 5DC594087202: from=<root@server.difan.local>, size=486, nrcpt=1 (queue active)
Mar 26 10:46:00 server postfix/smtp[2497]: warning: SASL authentication failure: No worthy mechs found
Mar 26 10:46:00 server postfix/smtp[2497]: 5DC594087202: SASL authentication failed; cannot authenticate to server smtp.office365.com[40.97.128.34]: no mechanism available
... <last two messages repeated 4 times>
Mar 26 10:46:02 server postfix/smtp[2497]: 5DC594087202: to=<difan.zhao@outlook.com>, relay=smtp.office365.com[40.97.142.194]:587, delay=2.2, delays=0.02/0/2.2/0, dsn=4.7.0, status=deferred (SASL authentication failed; cannot authenticate to server smtp.office365.com[40.97.142.194]: no mechanism available)
我在哪里做错了?谢谢!
答案 0 :(得分:1)
首先将您的通用文件更改为:
/.*/ email@domain.com
其次验证您的通用和sasl权限: 设置所有者和权限。
sudo postmap hash:/etc/postfix/generic
sudo chown root:root /etc/postfix/generic /etc/postfix/generic.db
sudo chmod 644 /etc/postfix/generic /etc/postfix/generic.db
与sasl_passwd
和db
文件相同。
答案 1 :(得分:0)
我必须安装这些......不确定它们是什么,但它们有效!
yum install cyrus-sasl cyrus-sasl-lib cyrus-sasl-plain
答案 2 :(得分:0)
在新版本的Ubuntu / Debian上你需要安装这个软件包:libsasl2-modules
apt install libsasl2-modules
然后重新加载后缀
systemctl reload postfix