摘要
Postfix 是一个标准的 MTA「Mail Transfer Agent」服务器,它负责通过 SMTP 协议管理发送到本机的邮件以及由本机发向外界的邮件;Dovecot 是一个优秀的 IMAP/POP 服务器用以接收外界发送到本机的邮件。本实验带您一步步搭建 Postfix、Dovecot 邮件服务。
环境
CentOS 7.2 64 位
1、准备域名
1)域名注册
可以到域名服务商去注册域名,例如:阿里云或者腾讯云都可以。
2) 域名解析
域名购买完成后, 需要将域名解析到云主机的 IP上。
完成需要添加两条记录:
A 记录
记录类型:A
主机记录:@
记录值:<您的 IP 地址>
MX 记录
记录类型:MX
主机记录:@
记录值:yourdomain.com
(替换为自己域名)
3)生效检查
域名设置解析后需要过一段时间才会生效,通过 ping
命令检查域名是否生效,如:
1 | ping yourdomain.com |
如果 ping 命令返回的信息中含有你设置的解析的 IP 地址,说明解析成功。
(使用 ctrl + c
停止)
4)检查 MX 记录
替换下面命令中的 yourdomain.com
为您自己的注册的域名:
1 | nslookup -q=mx yourdomain.com |
如果 nslookup 命令返回的信息中含有你设置的域名的记录值,说明解析成功。
注意替换下面命令中的
yourdomain.com
为您自己的注册的域名
2、搭建之前
配置一个功能完善的邮件服务器并不是一项容易的工作,本次只是搭建了一个简单的邮件服务器,一些更为强大的功能还需要你去探索。
1) Postfix、Dovecot 简介
Postfix
Postfix 是一个标准的 MTA「Mail Transfer Agent」服务器,它负责通过 SMTP 协议管理发送到本机的邮件以及由本机发向外界的邮件。
Dovecot
Dovecot 是一个优秀的 IMAP/POP 服务器用以接收外界发送到本机的邮件。
2) Postfix、Dovecot 安装
在 CentOS 7 上,我们可以直接使用 yum
进行下载安装:
1 | yum -y install postfix dovecot |
3、Postfix
配置 Postfix
有关教程中配置参数的具体含义,请参照 Postfix 配置文档。
1) 配置
在终端中输入以下命令以修改 Postfix 相关配置:
注意:记得将 yourdomain.com
替换为你自己的域名
1 | postconf -e 'myhostname = server.yourdomain.com' |
配置中 Postfix 使用 sasl 和 tls 来完成身份认证和传输信息加密。
试验中使用了 Dovecot 默认的 ssl 证书和私钥,如果你需要修改为自己的,请替换最后两行配置的路径。
2) 配置 smtps
部分邮件客户端依赖于使用 465 端口提供加密连接,所以我们修改配置,允许 Postfix 使用 465 端口发送邮件。
打开 /etc/postfix/master.cf 文件,将如下两行前的 #
去除:
1 | smtps inet n - n - - smtpd |
(注意: -o
前要保留空格)
然后 ctrl + s
保存文件。
3) 启动
使用以下命令,将 Postfix 设为自动启动并首次启动该服务:
1 | systemctl enable postfix.service |
Postfix 日志
Postfix 系统的日志文件在系统的这个目录下的 /var/log/maillog 文件,此文件记录了 Postfix 服务器的运行状态信息。
4、Dovecot
配置 Dovecot
修改 dovecot.conf
打开 /etc/dovecot/dovecot.conf 文件,在最下方加入以下配置:
示例代码:/etc/dovecot/dovecot.conf
1 | ssl_cert = </etc/pki/dovecot/certs/dovecot.pem |
如果前面你修改为了自己的 ssl 证书和私钥,请替换开始两行配置的路径。
然后 ctrl + s
保存文件。
修改 10-master.conf
打开 /etc/dovecot/conf.d/10-master.conf 文件,找到 service auth
部分,将以下行前面的 #
去除:
1 | unix_listener /var/spool/postfix/private/auth { |
然后 ctrl + s
保存文件。
启动 Dovecot
使用以下命令,将 Dovecot 设为自动启动并首次启动该服务:
1 | systemctl enable dovecot.service |
查看 /var/log/maillog 文件,查看服务是否成功启动。
如成功启动,日志里应包含如下信息:
1 | Jun 26 12:00:28 localhost postfix/postfix-script[28338]: starting the Postfix mail system |
5、创建账户
该配置下邮箱账户依赖于系统用户,所以通过添加系统用户的方式创建邮箱账户。
添加用户
在终端中使用 useradd
命令添加用户:
1 | useradd test |
使用 passwd
命令设置对应用户密码:
1 | passwd test |
6、测试
如测试中遇到异常,请查看 maillog 日志文件中的错误信息。
服务器端发送测试
使用 su
命令切换用户:
1 | su test |
我们可以使用 mail
命令发送邮件,将 [xxxx@xxx.com](mailto:
xxxx@xxx.com)` 替换为你的其他邮箱。
1 | echo "Mail Content" | mail -s "Mail Subject" xxxx@xxx.com |
然后可以前往你的接收方邮箱查收。
邮件客户端
你可以将该邮箱账户添加至邮件客户端使用,推荐使用 Foxmail 客户端。
可以参考以下配置进行设置:
1 | 服务器类型:`POP3` |
然后就可以使用邮件客户端通过该账户收发邮件了。
(该配置在某些邮件客户端下可能因为使用了通用证书而出现使用异常)
- 本文作者: 无聊才读书
- 版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!