基本假设:
服务器IPv4地址为198.162.1.1
发件服务器域名为example.com
添加DNS解析
为避免接收邮件的服务器将我们发送的邮件当作垃圾邮件,必须添加DNS解析记录。DNS解析记录可以在DNSPod上添加。DNSPod是国内最大的DNS解析服务提供商,同时也提供免费的DNS解析。
在DNS上注册免费的用户后,点击我的域名,选择添加域名,添加一个域名(此处假设域名为example.com)后即可添加记录。在此,我们加入下面三条记录:
主机记录 | 记录类型 | 记录值 | MX优先级 | TTL |
| A | 198.162.1.1 | - | 600 |
@ | MX | mail.example.com | 10 | 600 |
@ | TXT | V=spf1 mx -all | - | 600 |
各项指标说明如下:
- 主机记录表示的是需要解析的域名前缀,mail表示解析mail.example.com,@表示解析主域名example.com;
- l 记录类型表示记录值的类型,A表示记录值是一个IPv4的地址,MX表示记录值是邮箱域名,TXT用于设置SPF记录(反垃圾邮件);
- l 记录值则用于填写对应记录类型的内容;
- l MX优先级用于设置服务器接收邮件的优先级,必须当记录类型为MX时才可写入;
- l TTL为缓存生存空间,常用600s。
欲检查MX记录是否生效,可输入下述命令
host example.com
若结果为:
example.comhas address 192.168.1.1
example.commail is handled by 10 mail.example.com.
则表明MX记录生效。
postfix的安装
postfix是CentOS 6.0以上默认安装的邮件服务器软件,若使用其他邮件系统则须首先关闭。
1. 系统原先使用sendmail服务,则首先关闭sendmail,命令如下:
service sendmail stop
chkconfig sendmail off
2. 安装postfix
yum –yinstall postfix
3. 查看postfix的相关路径和文件
rpm –q lpostfix
可以查看后说明postfix安装成功。
postfix的配置
postfix的配置需要root权限,需要把用户加入到sudoer权限中,或者使用su命令。
1. 备份配置文件
在对文件进行修改前备份一下是一个非常好的习惯。备份命令如下:
cp /etc/postfix/main.cf /etc/postfix/main.cf.bak
2. 打开main.cf文件
sudo vi /etc/postfix/main.cf
3. 设置postfix服务的有主机名、域名
主机名为之前在DNSPod上申请的带有mail的地址,域名直接填写之前申请的域名即可。代码如下:
# :75
myhostname = mail.example.com
# :83
mydomain = example.com
4. 设置发送邮件的域名或主机名
有两种方式可以设置域名,但引用是一个更好的方式。引用使得程序的移植性更好。
# :99
myorigin = $mydomain
#或者可直接改成mydomain引用的内容,在本例中为myorigin = example.com
5. 设置postfix服务监听接口
# :116
inet_interfaces = all
6. 设置postfix支持的协议类型
# :119
inet_protocols = ipv4
7. 设置接收邮件的主机名或域名
这里的域名和主机名表示该服务器“准备好”接收来自相应地址的邮件,但邮件是否投递到该服务器取决于DNSPod中该域名的解析地址,命令如下:
# :164
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
8. 设置可转发网络的地址
改地址表明获得无需SMTP认证即可访问postfix的IP,命令如下:
# :264
mynetworks = 127.0.0.0/8
9. 设置邮箱路径和邮件存储格式
邮件的存储格式主要有两种,分别是Maildir和mbox。mbox格式最主要的特点是“一个账号所有邮件均存放在一个文件中”,Maildir格式的特点是“每一封邮件都是独立的文件,文件名包含时间戳、pid和inode节点号等”。因为Maildir的多文件存储的方式,其在可靠性、并发访问、扩充能力上都强于mbox,而mbox的单文件存储则使其搜索速度更强。此外,Maildir更依赖文件系统,尤其是对目录索引能力的依赖。配置相应的邮件存储系统方法如下:
# :419
# Maildir
home_mailbox = Maildir/
# mbox
home_mailbox = Mailbox
10. 设置邮件存储目录
# :425
mail_spool_directory = /data/mail/
11. 检查postfix配置
/usr/sbin/postconf -n
12. 重启postfix使设置生效
service postfix restart
chkconfig postfix on
邮件服务器的测试
测试的方法有很多,这里主要介绍两种方法。
第一种方法可用简单的命令行给自己发邮件,如下:
# Email address: example@163.com
echo ‘mail body’ | mail –s ‘mail title’ example@163.com
然后就可以在example@163.com邮箱中查收到这封邮件,邮件名为mail title,邮件内容是mail body。在给自己发送邮件的时候,将上述邮箱名改成相应邮箱即可。
此外,还可以使用telnet测试邮件服务器是否正常:
yum install telent
telnet 127.0.0.1 25
MAIL FROM:<test@example.com>
RCPT TO:example@163.com
Subject:test message
BODY