Postfix是一个安全稳定、容易配置的MTA,常见于Unix-like服务器。事实上它是Mac OS X系统默认的MTA。

设置DNS记录

@ MX mail.domain.com
mail A 12.34.56.78
其中@符号表示主机名为空,相当于domain.com。
第一条MX记录指定了domain.com这个域名的邮件服务器主机名。它的意思是:如果收件人邮箱地址@符号后面的域名是domain.com,那么发件人的MTA要将邮件投递到mail.domain.com这个主机。
第二条A记录将mail.domain.com解析成IP地址。

验证DNS

dig MX domain.com +short
dig A mail.domain.com +short
如果这条命令显示的IP地址是你服务器的IP地址,那么你的DNS设置就是正确的。

配置hostname

事先设置好 hostname 的话,Postfix 可以自动配置好很多参数,节省时间。假设你的网站域名是 example.com,要搭建独立的邮件服务器(推荐),就把主机名设置为 mail.example.com。

如果你的服务器还有别的角色的可以跳过这步

echo ‘mail.example.com’ > /etc/hostname
hostname -F /etc/hostname

安装postfix

sudo apt-get install postfix
安装过程中会问你邮件服务器的配置类型,如下图。一般情况下,我们需要选择第二个Internet Site。
No configuration 表示不要做任何配置;
Internet Site 表示直接使用本地SMTP服务器发送和接收邮件;
Internet with smarthost 表示使用本地SMTP服务器接收邮件,但发送邮件时不直接使用本地SMTP服务器,而是使用第三方smart host来转发邮件;
Satellite system 表示邮件的发送和接收都是由第三方smarthost来完成。
Local only 表示邮件只能在本机用户之间发送和接收。

在第二个页面填入你的域名

配置postfix

postfix有两个主要的配置文件,一个是/etc/postfix/main.cf,另外一个是/etc/postfix/master.cf。
首先编辑/etc/postfix/main.cf第31行
myhostname = mail.example.com
第35行mydestination
mydestination = mail.example.com, localhost.example.com, , localhost
我们就是通过mydetination这个参数来指定这些域名。这篇教程只考虑一个域名的邮件收发业务。Postfix在安装过程中,会自动添加localhost.locadomain和localhost到mydestination的值中,这是为了方便本机用户之间的邮件发送。

以下可以不做修改
myorigin
myorigin = /etc/mailname
myorigin 的值存放在另一个文件中,打开这个文件可以看到一行内容 mail.example.com。

在通过 Postfix 发送邮件的时候,如果 From 字段不完整,例如 From: user,Postfix 会根据 myorigin 的值将地址补全为 From: user@mail.example.com。

  • 发邮件的时候 From 字段是可以随意指定的。

    mynetworks

mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mynetworks 指定了本地网络的 IP 段,默认只包含主机自己。

重载postfix并测试

service postfix reload
25端口必须处于开启状态,一部分商家可能会禁止
mail test@gmail.com
随便输入一些内容, 按键盘上的 ”点“ 发送
登录你的邮箱,不出意外在垃圾箱可以找到你发的邮件

收邮件

登录你的邮箱,收件人是服务器当前的用户名@ example.com
查看邮件tail /var/mail/root
不出意外的的话,最后会有你发的邮件正文

参考文章
https://www.linuxdashen.com/debian-8-server%E6%90%AD%E5%BB%BApostfixdovecot%E9%82%AE%E4%BB%B6%E6%9C%8D%E5%8A%A1%E5%99%A8
http://chloerei.com/2015/04/22/install-and-configure-postfix/