1. 准备域名
域名注册
域名解析
域名购买完成后, 需要将域名解析到你的服务器IP
完成该实验共需要添加两条记录:
A 记录
记录类型:A
主机记录:@
记录值:youripMX 记录
记录类型:MX
主机记录:@
记录值:yourdomain.com(替换为自己域名)
生效检查
域名设置解析后需要过一段时间才会生效,通过 ping 命令检查域名是否生效 ,如:
1ping yourdomain.com如果 ping 命令返回的信息中含有你设置的解析的 IP 地址,说明解析成功。(使用
ctrl + c
停止)检查 MX 记录
替换下面命令中的
yourdomain.com
为您自己的注册的域名:1nslookup -q=mx yourdomain.com如果
nslookup
命令返回的信息中含有你设置的域名的记录值,说明解析成功。
2. 实验之前
配置一个功能完善的邮件服务器并不是一项容易的工作,本实验只是搭建了一个简单的邮件服务器,一些更为强大的功能还需要你去探索。
Postfix、Dovecot 简介
Postfix
Postfix 是一个标准的 MTA「Mail Transfer Agent」服务器,它负责通过 SMTP 协议管理发送到本机的邮件以及由本机发向外界的邮件。
Dovecot
Dovecot 是一个优秀的 IMAP/POP 服务器用以接收外界发送到本机的邮件。
Postfix、Dovecot 安装
在 CentOS 7 上,我们可以直接使用
yum
进行下载安装:1yum -y install postfix dovecot
3. Postfix
配置 Postfix
有关教程中配置参数的具体含义,请参照 Postfix 配置文档。
配置
在终端中输入以下命令以修改
Postfix
相关配置:注意:记得将 yourdomain.com 替换为你自己的域名
1234567891011121314151617postconf -e 'myhostname = server.yourdomain.com'postconf -e 'mydestination = localhost, localhost.localdomain'postconf -e 'myorigin = $mydomain'postconf -e 'mynetworks = 127.0.0.0/8'postconf -e 'inet_interfaces = all'postconf -e 'inet_protocols = all'postconf -e 'mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain'postconf -e 'home_mailbox = Maildir/'postconf -e 'smtpd_sasl_type = dovecot'postconf -e 'smtpd_sasl_path = private/auth'postconf -e 'smtpd_sasl_auth_enable = yes'postconf -e 'broken_sasl_auth_clients = yes'postconf -e 'smtpd_sasl_authenticated_header = yes'postconf -e 'smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination'postconf -e 'smtpd_use_tls = yes'postconf -e 'smtpd_tls_cert_file = /etc/pki/dovecot/certs/dovecot.pem'postconf -e 'smtpd_tls_key_file = /etc/pki/dovecot/private/dovecot.pem'配置中
Postfix
使用sasl
和tls
来完成身份认证和传输信息加密。试验中使用了
Dovecot
默认的ssl
证书和私钥,如果你需要修改为自己的,请替换最后两行配置的路径。配置 smtps
部分邮件客户端依赖于使用
465
端口提供加密连接,所以我们修改配置,允许Postfix
使用465
端口发送邮件。打开
/etc/postfix/master.cf
文件,将如下两行前的#
去除:12smtps inet n - n - - smtpd-o smtpd_tls_wrappermode=yes(注意: -o 前要保留空格)
启动
使用以下命令,将
Postfix
设为自动启动并首次启动该服务:12systemctl enable postfix.servicesystemctl start postfix.servicePostfix 日志
Postfix
系统的日志文件在系统的这个目录下的/var/log/maillog
文件,此文件记录了Postfix
服务器的运行状态信息。
4. Dovecot
配置 Dovecot
修改
dovecot.conf
打开
/etc/dovecot/dovecot.conf
文件,在最下方加入以下配置:1234567ssl_cert = </etc/pki/dovecot/certs/dovecot.pemssl_key = </etc/pki/dovecot/private/dovecot.pemprotocols = imap pop3 lmtplisten = *mail_location = Maildir:~/Maildirdisable_plaintext_auth = no如果前面你修改为了自己的 ssl 证书和私钥,请替换开始两行配置的路径。
修改
10-master.conf
打开
/etc/dovecot/conf.d/10-master.conf
文件,找到service auth
部分,将以下行前面的#
去除:123unix_listener /var/spool/postfix/private/auth {mode = 0666}启动 Dovecot
使用以下命令,将
Dovecot
设为自动启动并首次启动该服务:12systemctl enable dovecot.servicesystemctl start dovecot.service查看
/var/log/maillog
文件,查看服务是否成功启动。如成功启动,日志里应包含如下信息:
123Jun 26 12:00:28 localhost postfix/postfix-script[28338]: starting the Postfix mail systemJun 26 12:00:29 localhost postfix/master[28340]: daemon started -- version 2.10.1, configuration /etc/postfixJun 26 12:28:40 localhost dovecot: master: Dovecot v2.2.10 starting up for imap, pop3, lmtp (core dumps disabled)
5. 创建账户
该配置下邮箱账户依赖于系统用户,所以通过添加系统用户的方式创建邮箱账户。
添加用户
在终端中使用 useradd
命令添加用户:
使用 passwd
命令设置对应用户密码:
6. 测试
如测试中遇到异常,请查看 maillog 日志文件中的错误信息。
服务器端发送测试
使用 su
命令切换用户:
我们可以使用 mail
命令发送邮件,将 xxxx@xxx.com
替换为你的其他邮箱。
然后可以前往你的接收方邮箱查收。