build a mail server for myself
使用环境
环境搭建
域名解析
A 记录
记录类型:A
主机记录:@
记录值:ip address
MX 记录
记录类型:MX
主机记录:@
记录值:我的域名
ping mydomain, 如果返回了刚刚解析的ip地址,则成功。 检查MX记录, nslookup -q=mx mydomain,如果返回的信息中有域名,则成功。
postfix
安装
yum -y install postfix
配置,参考如下
postconf -e 'myhostname = server.cuimouren.cn'
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 文件,将如下两行前的 # 去除:
smtps inet n - n - - smtpd
-o smtpd_tls_wrappermode=yes
启动
使用以下命令,将 Postfix 设为自动启动并首次启动该服务:
systemctl enable postfix.service
systemctl start postfix.service
log
Postfix 系统的日志文件在系统的这个目录下的 /var/log/maillog 文件,此文件记录了 Postfix 服务器的运行状态信息。
dovecot
安装
yum -y install dovecot
配置
打开 /etc/dovecot/dovecot.conf 文件,在最下方加入以下配置:
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem
protocols = imap pop3 lmtp
listen = *
mail_location = Maildir:~/Maildir
disable_plaintext_auth = no
如果前面你修改为了自己的 ssl 证书和私钥,请替换开始两行配置的路径。 打开 /etc/dovecot/conf.d/10-master.conf 文件,找到 service auth 部分,将以下行前面的 # 去除:
unix_listener /var/spool/postfix/private/auth {
mode = 0666
}
启动
systemctl enable dovecot.service
systemctl start dovecot.service
log
查看 /var/log/maillog 是否启动成功,如下所示为成功。
Jun 26 12:00:28 localhost postfix/postfix-script[28338]: starting the Postfix mail system
Jun 26 12:00:29 localhost postfix/master[28340]: daemon started -- version 2.10.1, configuration /etc/postfix
Jun 26 12:28:40 localhost dovecot: master: Dovecot v2.2.10 starting up for imap, pop3, lmtp (core dumps disabled)
添加用户
uaeradd username
passwd username
发送邮件
echo "邮件内容" | mail -s "邮件主题" 目标邮箱