Postfix与office365集成用于发送电子邮件

时间:2017-03-26 16:54:01

标签: email office365 postfix

我有一台将部署到客户站点的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)

我在哪里做错了?谢谢!

3 个答案:

答案 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_passwddb文件相同。

答案 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