最近收集资料总是遇到一个问题,那就是留邮箱。一般网站都要求使用公司邮箱,方便做企业认证,使用公共邮箱都有记录,不能通过。我就想了,为什么不能自己搞一个邮件服务器呢?说干就干,其中RH254有一个章节任务就是配置电子邮件传输,再结合网上的案例就可以了。

首先要配置域名解析。A类解析配置mail主机记录和记录值,其中主机记录就是后面要用到的收发件服务器地址,可以使用任意名称,但要对应。
再配置一个MX记录(将域名指向邮件服务器地址),主机记录要使用@,记录值使用前面配置的主机记录值。

服务器方面,把主机名称修改为对应的主机记录值。
如果防火墙处于开启状态,则需要放通收发邮件使用的TCP25和110两个端口。

firewall-cmd --add-port=25/tcp --permanent
firewall-cmd --add-port=110/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-all
安装postfix邮件服务,不过最小化安装的系统好像已经自带了,可以安装检查一下。
yum install –y postfix
修改邮件的配置文件。
vim /etc/postfix/main.cf
主要修改内容如下(可以使用“/”+“关键字”进行搜索,再进行修改):

# 75行: 取消注释,设置hostname
myhostname = mail.yancaipin.cn
# 83行: 取消注释,设置域名
mydomain = yancaipin.cn
# 99行: 取消注释
myorigin = $mydomain
# 116行: 默认是localhost,需要修改成all
inet_interfaces = all
# 119行: 推荐ipv4,如果支持ipv6,则可以为all
inet_protocols = ipv4
# 164行: 添加$mydomain
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
# 264行: 取消注释,指定内网和本地的IP地址范围
mynetworks = 127.0.0.0/8
# 419行: 取消注释,邮件保存目录
home_mailbox = Maildir/
# 571行: 添加
smtpd_banner = $myhostname ESMTP
# 添加到最后:设置邮件最大尺寸以及收件箱最大容量
message_size_limit = 10485760
mailbox_size_limit = 1073741824
# SMTP认证方式
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject
启动服务并使能随系统自启。
Systemctl start postfix
systemctl enable postfix
安装IMAP和POP3邮件服务器dovecot
yum install -y dovecot
编辑dovecot配置文件dovecot.conf
vim /etc/dovecot/dovecot.conf
# 26行: 因为不使用IPv6,修改为*
listen = *
编辑dovecot配置文件10-auth.conf
vim /etc/dovecot/conf.d/10-auth.conf
# 9行: 取消注释并修改
disable_plaintext_auth = no
添加auth_mechanisms = plain login
编辑dovecot配置文件10-mail.conf
vim /etc/dovecot/conf.d/10-mail.conf
# 30行: 取消注释并添加
mail_location = maildir:~/Maildir
编辑dovecot配置文件10-master.conf
vim /etc/dovecot/conf.d/10-master.conf
# 88-90行: 取消注释并添加# Postfix smtp验证
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
因为没有使用ssl进行加密,所以需要修改为不使用ssl。编辑dovecot配置文件10-ssl.conf
vim /etc/dovecot/conf.d/10-ssl.conf
# 8行: 将ssl的值修改为 ssl = no
启动服务并使能随系统自启。
systemctl restart dovecot
systemctl enable dovecot
添加一个邮件账户并设置密码:
useradd yancaipin
passwd yancaipin

使用Foxmail进行登录测试。
用163邮箱发一封邮件,测试收取邮件正常,已经成功了一半了。
但是发送邮件之后163邮箱一直收不到,查看邮件日志/var/log/maillog,发现有一个连接163邮箱25端口超时的告警。
用Telnet试了一下,确实连接不上。因为无法连接邮件服务器导致邮件发送失败。
百度了一下,是云服务商封掉了向外的TCP25端口导致。以腾讯云为例,可以在“控制台”→“安全管控”→“25端口解封”进行申请解封。
解封申请页面如下,有相关介绍,只能申请解封5次,而且还存在永久封禁的可能;相比而言,阿里云的解封政策要人性化一些。
申请之后立即生效,测试连接到25端口成功。
但是还是不能发送邮件,查看日志是一个参数值设置错误。
重启服务也启动失败了,看到了告警的详细信息。
找到是postfix有一行配置修改错了,修改为正确的。
再次测试发送邮件成功。


因为现在很多公司邮件客户端都在使用outlook,也说一下outlook的设置方式。首先选择“手动设置或其他服务器类型”。
再选择“POP或IMAP(P)”。
将用户信息、服务器信息和登录信息补充完整。
再点击“其他设置(M)”,勾选“我的发送服务器(SMTP)要求验证”,否则可能出现验证失败的情况(对应配置要求)。
在未勾选情况下,报错454 4.7.1如下:
点击“测试账户设置(T)”,测试邮箱的收发功能。
个人邮件上线成功,又完成了一个小目标