开发者社区> 问答> 正文

postfix怎么实现向外部邮箱服务器进行发送邮件

网上查看了好多关于postfix的相关问题,也搭建了postfix邮箱服务器,服务器使用的是阿里云的

现在的情况是搭建起来的服务器已经可以内网转发, 同时进行发送和接受的465端口和995端口也开放了,使用netstat命令也可以看到postfix的465端口也是开着的 saslauthd里的mech也设置为了shadow 使用foxmail进行了测试,发现其不能向qq或者163邮箱发邮件,报错日志显示:

Dec  8 10:48:21  postfix/error[11668]: 190B94233A: to=<xxxx@163.com>, relay=none, delay=214848, delays=214848/0.08/0/0.01, dsn=4.4.1, status=deferred (delivery temporarily suspended: connect to 163mx01.mxmail.netease.com[220.181.14.142]:25: Connection timed out)

Dec  8 10:48:21  postfix/error[11664]: 2DEE34245A: to=<xxx@163.com>, relay=none, delay=1915, delays=1915/0.08/0/0.01, dsn=4.4.1, status=deferred (delivery temporarily suspended: connect to 163mx01.mxmail.netease.com[220.181.14.142]:25: Connection timed out)

网上查阅到的资料说,smtpd设置是将本服务器当作smtp服务器来进行设置的,而当本服务器向其他的mta进行转发邮件时是当作smtp客户端来进行操作的,所以要设置smtp相关属性。 postfix作为客户端的相关设置如下

91 #SMTP认证
692 smtp_use_tls = yes
693 smtp_enforce_tls = yes
694 smtp_tls_protocols =!SSLv2, !SSLv3
695 smtp_tls_security_level = encrypt
696 smtp_tls_ciphers = export
697 smtp_sasl_auth_enable = yes
698 smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
699 smtp_tls_CAfile = /etc/pki/myca/cacert.pem
700 smtp_tls_cert_file = /etc/pki/myca/mailcert.pem
701 smtp_tls_key_file = /etc/pki/myca/mailkey.pem
702 send_cyrus_sasl_authzid = yes

不知道是不是哪里设置的不对,当使用foxmail进行向163邮箱发邮件的时候,日志如下:

Dec  8 12:47:51 iz2ze90t0frv90qnwvybgmz postfix/smtps/smtpd[12203]: connect from unknown[27.188.250.16]
Dec  8 12:47:51 iz2ze90t0frv90qnwvybgmz postfix/smtps/smtpd[12203]: Anonymous TLS connection established from unknown[27.188.250.16]: TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)
Dec  8 12:47:51 iz2ze90t0frv90qnwvybgmz postfix/smtps/smtpd[12203]: BE7B94245B: client=unknown[xxxxx], sasl_method=LOGIN, sasl_username=xxx
Dec  8 12:47:51 iz2ze90t0frv90qnwvybgmz postfix/cleanup[12208]: BE7B94245B: message-id=<xxx@xxx>
Dec  8 12:47:51 iz2ze90t0frv90qnwvybgmz postfix/qmgr[11832]: BE7B94245B: from=<xxxx@xxx>, size=1590, nrcpt=1 (queue active)
Dec  8 12:47:51 iz2ze90t0frv90qnwvybgmz postfix/smtps/smtpd[12203]: disconnect from unknown[27.188.250.16]

然后紧接着就会显示连接超时

Dec  8 12:48:52 iz2ze90t0frv90qnwvybgmz postfix/smtp[12198]: connect to 163mx02.mxmail.netease.com[220.181.14.144]:25: Connection timed out

证书是使用openssl命令进行生成的,security_level也设置为了必须采取验证, 但是却还是会去连接163邮箱服务器的25端口,不知道为什么,各位大佬们可否指点迷津

遇到了同样的问题,在CSDN看到了,希望阿里云团队能够给出正确、标准的答案~请查看

展开
收起
刘刚_ 2020-05-23 15:54:55 4167 0
1 条回答
写回答
取消 提交回答
  • 可以通过在main.cf文件中添加transport_maps来设置转发的端口, 在transport文件加上 qq.com relay: mx3.qq.com:465,来强制通过465端口发送邮件, 不要忘记用postmap /etc/postfix/transport来生成transport.db,再重启postfix。 但是, 即使这样,qq邮件服务器还是不接收,返回connection timeout。 163邮箱用这种方法是可以的。

    2020-11-24 17:07:02
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
如何运维千台以上游戏云服务器 立即下载
网站/服务器取证 实践与挑战 立即下载
ECS计算与存储分离架构实践 立即下载