在前面的《[Debian]开启 WordPress 的邮件通知功能,让服务器支持发邮件——Sendmail 的安装与简单配置(日期:20180324)》一文中,我已经教了大家怎么安装和配置上 Sendmail,好让你的 WordPress 能正常使用邮件通知功能,但正如我前文说的,Sendmail 实在是太老了,可能不符合现在的应用场景,所以我打算在另外写一篇文章,来教大家怎么安装和配置好 Postfix,让你的 WordPress 也能正常使用上发送邮件的功能。
更新:邮件服务器其它方面的详细配置:《为服务器发出的邮件再加分——添加 MX、DNS 反向解析、SPF 和 DMARC 记录,并为邮件加上 DKIM 签名》
一、停止 Sendmail 服务和卸载 Sendmail
在安装 Postfix 之前,如果你看了前文安装了 Sendmail,可以先将它停止服务并卸载之。连接上你服务器的 SSH,依次输入下面两条命令:
service sendmail stop apt-get remove sendmail
二、安装 Postfix
apt-get install Postfix
输入命令之后,你可能会看到下面的画面:
这是让我们选择适合我们的邮件配置类型,在上面的英文中已经告诉了大家这些类型的区别。下面给大家简单说明下几个选项的区别:
- 不做配置
- 互联网站点(支持通过 SMTP 协议发送和接收邮件)
- 通过 SMTP 协议收邮件,发邮件可以使用别的邮件服务器代理发送(字面意思理解,不一定准确)
- 所有邮件的发送都通过代理发送的服务器进行
- 只支持服务器本地用户之间的邮件通信
根据上面说的,很显然我们是需要互联网站点的配置了(默认选中的也是这个),直接回车键确认就行了。如果你有别的要求,也可以根据自己的实际情况选择一个。
在确认之后,还会有一个窗口,让你输入域名,也就是邮件发出的用户地址,比如你想让你的邮件发出格式是 [email protected],那么这里就要填上 example.com,默认情况下这里已经写好了域名(程序根据主机名猜测的),如果不对,记得改成你想要的,很抱歉这里因为操作快了忘记截图,所以只能文字和大家说明一下了。
安装完成之后,输入下面的命令,看看最底下的记录中有没有显示 Postfix 正常运行。
cat /var/log/mail.log
三、Postfix 的简单配置
- 修改本地用户发出的邮件显示的邮件地址(可跳过,可以在后面的设置中一起更改)
上面我们设置的域名,是发给别的外网用户时,我们的地址该怎么显示,这里是发给服务器本地的其他用户时,发件人的地址该怎么显示,建议大家和前面的保持一致。
postconf -e "myorigin = example.com"
注: example.com 改成你自己的域名。
- 修改系统的主机名称显示(可跳过,可以在后面的设置中一起更改)
这里显示的系统主机名称,在我们设置好外网用户显示的发件人地址和内网用户显示的发件人地址后,其实关系不大,不过为了以防万一,建议还是改成和上面一致的网址。
postconf -e "myhostname=example.com"
- 编辑邮件服务器配置文件/etc/postfix/main.cf
vi /etc/postfix/main.cf
输入之后按 i 键,便能开启编辑模式。
该文件中我们需要改动的不多,如果你跳过了前面的(可跳过的)几步,那么看下面的说明来一步步的改:
#写你的发件人默认应该显示的域名 myhostname = exanmple.com #本地用户发件时发件人应该显示的域名,默认是在/etc/mailname 这个文件里改,你也可以在这里直接改成你想要的域名(建议和 myhostname 保持一致) myorigin = /etc/mailname #填写别人发给你的邮件,哪些可以被你接收,比如你还有个域名 example1.com,有时候别人填错了,本来是发给 [email protected] 的邮件,发件人写成了 [email protected],那么你在这里加上 example1.com,别人发过来的你也能收到(简单解释让带大家弄明白,实际上并没有我说的这么简单的能收到别的域名的邮件) mydestination = $myhostname, example.com, localhost.com, , localhost #允许哪些 IP 地址可以使用你的服务器发邮件,默认的只允许本机发送,不需要改动 mynetworks = XXX #默认 Postfix 没有开启 TLS 加密,我们选择开启它,插入或者修改下面的内容 smtpd_tls_security_level = may smtp_tls_security_level = may
改完之后,按 Esc 键退出编辑状态,并输入:wq 保存退出。
备注说明:Postfix 的 TLS 收送信加密默认没有开启,这里我们选择开启它,第一个是收信设定,第二个是送信设定,“may”说的是告诉别的服务器,我们的服务器支持 TLS 加密,他们支持的话就都开启 TLS 加密通信,不支持的话也可以不加密传输邮件。
- 设置别名文件/etc/aliases
和 Sendmail 一样,Postfix 的别名设置文件也是/etc/aliases,我这里说的别名,简单的给大家说下,就是当你的服务器上存在或者不存在一个用户邮箱 [email protected] 时,别人发往这个邮箱的邮件,可以设置让谁来收,这个谁可以是你本机的用户如 [email protected],或者是别的什么人的邮箱如 [email protected]。
vi /etc/aliases
编辑和保存方法同上。
下面给大家举两个例子:
A 用户的邮件由 B 用户的邮箱来收的格式书写
A: B
A 用户的邮件由 [email protected] 来收的格式书写
A: [email protected]
注意:一条别名最好占一行,想写新的建议另起一行书写。
- 编辑/etc/mailname
上面我们说过这个文件,是用来修改发件人显示的域名的,为了不把自己给弄晕,建议和前面的 myhostname 域名保持一致吧。
vi /etc/mailname
在文件中(推荐)写入和 myhostname 设置中一样的域名,编辑保存方法同上,就不多说了。
四、简单配置完成,重启使 Postfix 配置生效
命令如下:
service postfix restart
在上面第三步简单的和大家说了一些有关于 Postfix 的配置之后,看到这里的你应该已经成功了。当然,我这里说的成功,是在看了前文关于 Sendmail 的配置并按照配置操作之后,再卸载换上 Postfix 的这部分用户,因为本文有部分内容是没有给直接装 Postfix 并配置的用户交代的,包括下面这几项:
- 25 端口的相关说明
- mail 函数的检测
- MX 记录的添加
- SPF 记录的添加(这部分可在前文中看到说明)
- DNS 反向解析记录的添加(前文也有说)
- php.ini 文件中关于 sendmail_path 的修改(前文也有说)
如果是看了前文操作过来的这三个部分不用改变,所以到这里就算是结束了,如果你是直接装 Postfix 并配置的用户,这里是前文的链接:《[Debian]开启 WordPress 的邮件通知功能,让服务器支持发邮件——Sendmail 的安装与简单配置(日期:20180324)》
建议去前文中看看本文没有说的东西,会对你有所帮助的。
五、一些备注
- 这里的教程以能正常使用 WordPress 的邮件通知功能为主要目的,现在配置好的邮件服务器,能发信能收信,但还不支持使用邮件客户端来连接并使用收发信功能,要写信只能在服务器上进行
- 有关 DKIM 的配置和应用,将来视情况另写一篇博文介绍(如果你的邮件进了别人的垃圾箱,配置这个或许有所改善)
- 请做好防范垃圾邮件的准备,这个视情况决定是否写博文来说
- 对你的服务器发出的邮件进行评分:https://www.mail-tester.com
- 部分解释(理解)可能存在一些问题,欢迎指正
- 谢谢看到这里的你们,希望本文能帮到你们~