本篇介绍在虚拟机(ubuntu 16)中搭建 Postfix ,实现发送邮件功能。这样虚拟机中的站点(Magento、Wordpress 等不需要通过插件也能发送邮件啦。)
设置 hostname
事先设置好 hostname 的话,Postfix 可以自动配置好很多参数,节省时间。假设你的网站域名是 example.com,要搭建独立的邮件服务器(推荐),就把主机名设置为 mail.example.com。 查看服务器名称
1 | # hostname |
主机名设置为 mail.example.com
1 | # echo 'mail.example.com' > /etc/hostname |
安装 Postfix
1 | # apt-get install postfix |
基本配置
Postfix 的配置文件位于 /etc/postfix
文件夹。/etc/postfix/main.cf
是 Postfix 的主要配置文件,几乎所有的设置参数都是通过这个文档规定的。 修改需要注意的是:
- 『 # 』符号是批注的意思;
- 所有设定值以类似『变量』的设定方法来处理,例如 myhostname = www.centos.vbird,请注意等号的两边要给予空格符喔, 且第一个字符不可以是空白,亦即『my..』要由行首写起;
- 可以使用『 $ 』来延伸使用变量设定,例如 myorigin = $myhostname,会等于 myorigin = www.centos.vbird;
- 如果该变量支持两个以上的数据,则使用空格符来分隔,不过建议使用逗号加空格符『, 』来处理。 例如: mydestination = $myhostname, $mydomain, linux.centos.vbird,意指 mydestination 支持三个数据内容之意。
- 可使用多行来表示同一个设定值,只要在第一行最后有逗号,且第二行开头为空格符, 即可将数据延伸到第二行继续书写 (所以刚刚第二点才说,开头不能留白!);
- 若重复设定某一项目,则以较晚出现的设定值为准!
以上摘自鸟哥的 Linux 私房菜,更详细的介绍也可参考该文章。 比较重要的参数设置
- myhostname 设定主机名 这个参数会被很多其他参数所引用,所以务必设置正确,在本例中,它的值是
mail.example.com
- myorigin 发信时显示的“发信源主机” 在通过 Postfix 发送邮件的时候,如果 From 字段不完整,例如 From: user,Postfix 会根据 myorigin 的值将地址补全为 From: user@mail.example.com。在本例中,我们将它的值设置为
$myhostname
- mynetworks 规定信任的客户端,默认只有自己
- mydestination 规定能够收信的主机名 这个设置很重要。在本例中,我希望这台服务器能接受主域名 example.com 的邮件,所以 example.com 要出现在其中。
我们的配置现在是:
1 | myhostname = mail.example.com |
重载 Postfix
1 | service postfix reload |
测试
给自己的邮箱发送一封空邮件
1 | # sendmail youremail@gmail.com |
输入第一行的时候,sendmail 会等待输入邮件内容,此时直接输入一个 .
结束输入,就会发送一封空邮件。 登录你的邮箱,如无意外可以在垃圾邮件箱找到这封邮件。这说明 Postfix 已经具有发送能力。 发送一封有主题的邮件
1 | # sendmail youremail@gmail.com |
日志位置:
/var/log/mail.log
参考链接
安装和配置 Postfix 鸟哥的 Linux 私房菜 —— 第二十二章、邮件服务器: Postfix