当前位置:   article > 正文

【服务端】CentOS Linux 7 搭建邮件服务器_centos7搭建邮件服务器

centos7搭建邮件服务器

参考:CentOS7搭建简单的邮件服务器 - 秋夜雨巷 - 博客园 (cnblogs.com)

前言

在 CentOS7 中搭建邮件服务器,给QQ邮箱发邮件。简单记录一次搭建过程。

目录

前言

一、基础环境准备

二、配置域名解析

1. 登录阿里云

三、安装邮件服务

1. 登录主机,配置yum源(配置阿里云yum源步骤略)

2. 安装软件

​3. 修改配置

 3.1 配置postfix

 3.2 配置dovecot

 3.3 配置cyrus-sasl

四、测试

1. 查看端口监听状态

 2. 安装mailx命令测试

五、创建用户,登录自建的邮件服务器

 1. 添加用户

 2. 安装 cyrus-sasl-plain (不安装可能导致无法发信)

 3. 在foxmail上添加自建的邮箱

 4. 使用foxmail发信/收信

4.1 发信给其他邮箱

4.2 其他邮箱发信给自建邮件服务器(发信过程略)

结语 


一、基础环境准备

- 虚拟机/ECS:2C4G(配置任意,最低1C1G)

- 操作系统:CentOS Linux 7.9 x86_64

- 公网IP:运营商分配公网IP/弹性公网IP/DDNS(本文暂不介绍DDNS)

- 域名:有一个域名就可以,这里用.top的(没有域名可以去阿里云万网买一个)

二、配置域名解析

1. 登录阿里云

阿里云-计算,为了无法计算的价值 (aliyun.com)

搜索并进入 【云解析DNS】

选择一个已有的域名,点击 【解析设置】

点击【添加记录】

- 记录类型:MX

- 主机记录:@

- 记录值:mail.域名

- MX优先级:1 只有一条DNS记录,改不改无意义。

再次点击【添加记录】

- 记录类型:A

- 主机记录:mail

- 记录值:公网IP地址

配置完成截图

注意:DNS解析配置完成后,并不会马上生效。

三、安装邮件服务

1. 登录主机,配置yum源(配置阿里云yum源步骤略)

2. 安装软件

yum -y install postfix dovecot  cyrus-sasl

3. 修改配置

        3.1 配置postfix

vim /etc/postfix/main.cf
  1. # 修改以下项,注释的解开,不要有重复项
  2. # 设置为 mail.域名
  3. myhostname = mail.amserv.top
  4. # 设置为 域名
  5. mydomain = amserv.top
  6. # 往外发邮件的邮件域
  7. myorigin = $mydomain
  8. #监听的网卡
  9. inet_interfaces = all
  10. inet_protocols = all
  11. #服务的对象
  12. mydestination = $myhostname,$mydomain
  13. #邮件存放的目录
  14. home_mailbox = Maildir/
  15. # 新添加以下配置
  16. #--------自定义(下面可以复制粘贴到文件最后面,用于设置服务器验为主,第一行设置发送附件大小)
  17. #message_size_limit = 100000
  18. smtpd_sasl_auth_enable = yes
  19. smtpd_sasl_security_options = noanonymous
  20. mynetworks = 127.0.0.0/8
  21. smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination

最终修改如下。

最后新增的几行释义,请点击文章开头参考链接。

 检查并启动postfix

  1. # 检查
  2. postfix check
  3. # 启动
  4. systemctl start postfix
  5. # 开机自启动
  6. systemctl enable postfix

        3.2 配置dovecot

vim /etc/dovecot/dovecot.conf
  1. # 注释的解开注释,不要有重复项
  2. protocols = imap pop3 lmtp
  3. listen = *, ::
  4. #以下内容添加到文件最后
  5. !include conf.d/10-auth.conf
  6. ssl = no
  7. disable_plaintext_auth = no
  8. mail_location = maildir:~/Maildir

  1. # 启动dovecot
  2. systemctl start dovecot
  3. # 开机自启动
  4. systemctl enable dovecot

        3.3 配置cyrus-sasl

vim /etc/sasl2/smtpd.conf    #如果文件不存在,创建即可
  1. pwcheck_method: saslauthd
  2. mech_list: plain login
  3. log_level:3

vim /etc/sysconfig/saslauthd 
MECH=shadow

  1. # 启动 saslauthd
  2. systemctl start saslauthd
  3. # 开机自启动
  4. systemctl enable saslauthd

四、测试

!!!重要的:如果使用的ECS,请务必在安全组/网络ACL中开放25、110、143端口(TCP)。

如果主机内也开启了防火墙(Linux firewalld),不想要关闭防火墙的情况下,使用以下命令开放端口。建议关闭防火墙测试。

  1. # 添加防火墙规则,允许 25、110、143端口
  2. firewall-cmd --permanent --zone=public --add-port=25/tcp
  3. firewall-cmd --permanent --zone=public --add-port=110/tcp
  4. firewall-cmd --permanent --zone=public --add-port=143/tcp
  5. # 重载防火墙配置
  6. firewall-cmd --reload
  7. # 查看端口开放列表
  8. firewall-cmd --list-ports

1. 查看端口监听状态

  1. # 查看端口监听状态 没有该命令使用 yum -y install net-tools
  2. netstat -ntpl

2. 安装mailx命令测试

yum -y install mailx

测试前,看一下域名是否解析正常,用nslookup看一下。

  1. # Windows上测试
  2. nslookup mail.域名

 

mailx 测试

echo '在Centos上搭建邮件服务器成功啦!!!' | mail -s '通知!' xxx@qq.com

如发现没有收到邮件,可以查看日志。(注意QQ邮箱是否设置反垃圾等)

tail -f /var/log/maillog

五、创建用户,登录自建的邮件服务器

1. 添加用户

  1. useradd mailuser
  2. # 123456
  3. passwd mailuser

2. 安装 cyrus-sasl-plain (不安装可能导致无法发信)

参考:no SASL authentication mechanisms-CSDN博客

yum install cyrus-sasl-plain
testsaslauthd -u mailuser -p '123456'

3. 在foxmail上添加自建的邮箱

点击【其他邮箱】

点击【手动设置】

- 接收服务器类型:POP3

- 邮件账号:用户名@域名

- 密码:刚刚设置的123456

- POP/SMTP 服务器:mail.域名

- 勾选 “如服务器支持,用STARTTLS加密传输”

设置成功!

 

4. 使用foxmail发信/收信

        4.1 发信给其他邮箱

结果

        4.2 其他邮箱发信给自建邮件服务器(发信过程略)

结语 

花了几天时间,正好工作中有这个需求,搭建个自己邮件服务器,感觉还是挺好玩的(当QQ邮箱收到消息的那一刻)。

很多时候,难的并不是技术,而是各个软件版本之间的迭代,造成的配置文件翻新式的修改,以及版本的依赖问题。可能运维工程师要做的,就是协调好版本之间的关系吧,能跑起来的,就不要去动它(手动狗头保命)。

至此,自建邮件服务器搭建完成。有问题欢迎留言。

希望可以帮到你!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/492111
推荐阅读
相关标签
  

闽ICP备14008679号