阿里云ECS已经屏蔽了邮件端口25,而且即便通过安全管控申请解封端口25了,也只能使用SMTP发邮件。所以我需要让我的Postfix绕过端口25
关于Postfix的真正管用的实例还是非常少的,本人也差不多折腾了一个星期才搞定。而且也只是实现了基于外部SMTP服务器发送邮件的配置方法。
本文实例是我在Ubuntu 16.04中实操记录,主要解决WordPres的首次注册接收邮件和重设密码邮件的问题。整个是通关了的,没有Bug了。
第一步、安装Postfix
sudo apt install postfix
在安装过程中会弹出简单配置的窗口,选择Internet Site,然后其他的配置直接无视,直接默认回车,直到安装结束。
第二步、配置main.cf
将里面的relayhost设置为
relayhost = [smtpdm.aliyun.com]:80
默认情况下这个参数是没有赋值的,至于我为什么要设置这个值,建议看看文章末尾给的链接,我开通了阿里云的DirectMail,“邮件推送”功能,每天有200条免费邮件的名额,对于大多数小站长而言绰绰有余。
接着将以下参数的设置放进main.cf
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_use_tls = yes
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_generic_maps = hash:/etc/postfix/generic
第三步、配置generic
/etc/postfix/generic这个文件默认不存在的,直接创建,然后将以下代码放进文件里去。
www-data service@idojia.com
www-data@bYqaQ1K9TRQCksi0 service@idojia.com
service@code.idojia.com service@idojia.com
bYqaQ1K9TRQCksi0是服务器的主机名。执行以下命令就可以知道主机名了
hostname
本来发件人地址是wordpress@bYqaQ1K9TRQCksi0,有了第一行的代码后,以后注册用户收到的邮件显示的发件人就改写成了service@idojia.com。
温馨提醒:如果要详细配置generic,一定要重点看/var/log/mail.log和/var/log/mail.err,比如我的有如下代码
postfix/pickup[2012]: 4D0B122086A: uid=1000 from=<www-data>
postfix/qmgr[2531]: DD6A322086A: from=<www-data@bYqaQ1K9TRQCksi0>
第四步、配置sasl_passwd
/etc/postfix/sasl_passwd这个文件默认也不存在的,直接创建,然后将以下代码放进文件里去。
[smtpdm.aliyun.com]:80 service@idojia.com:BhROhrB97b
第五步、生成数据库文件
sudo postmap /etc/postfix/sasl_passwd
sudo postmap /etc/postfix/generic
第六步、重启Postfix
sudo service postfix restart
到此为止,接收邮件的问题就正常了。
现在附上阿里云的“邮件推送管理平台”的链接:https://dm.console.aliyun.com/
其实文章中涉及的以下几个值,也可以换成其他的SMTP服务器的
[smtpdm.aliyun.com]:80
//比如换成QQ企业邮箱的[smtp.exmail.qq.com]:465
service@idojia.com
//比如换成你的QQ企业邮箱
BhROhrB97b
//改成你的QQ企业邮箱的密码
如果端口是465,就是加密发送,Postfix的配置文件main.cf中还要添加如下代码
smtp_tls_wrappermode = yes
smtp_tls_security_level = encrypt
网友评论