build a mail server for myself
使用环境
- ping mydomain, 如果返回了刚刚解析的ip地址,则成功。
- 检查MX记录, nslookup -q=mx mydomain,如果返回的信息中有域名,则成功。
postfix
- 安装
1
yum -y install postfix
- 配置,参考如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17postconf -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 文件,将如下两行前的 # 去除:
1
2smtps inet n - n - - smtpd
-o smtpd_tls_wrappermode=yes
- 启动
- 使用以下命令,将 Postfix 设为自动启动并首次启动该服务:
1
2systemctl enable postfix.service
systemctl start postfix.service
- log
- 安装
1
yum -y install dovecot
- 配置
- 打开 /etc/dovecot/dovecot.conf 文件,在最下方加入以下配置:
1
2
3
4
5
6
7
8ssl_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 部分,将以下行前面的 # 去除:
1
2
3unix_listener /var/spool/postfix/private/auth {
mode = 0666
}
- 启动
1
2systemctl enable dovecot.service
systemctl start dovecot.service - log
- 查看 /var/log/maillog 是否启动成功,如下所示为成功。
1
2
3
4Jun 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)添加用户
- 添加用户
1
uaeradd username
- 设置密码
1
passwd username
发送邮件
- su mailuser 切换用户
- 发送邮件
1
echo "邮件内容" | mail -s "邮件主题" 目标邮箱