教你使用自己的服务器搭建一个可用的邮件系统,来拥有自己域名后缀的邮箱
邮件服务器
概述
邮件收、发服务器是分开的,也就是我们需要搭建一个邮件发送服务器和一个邮件收取服务器。
本文会搭建收、发两个服务器,并用邮件客户端(Foxmail)做测试。
协议
协议就是定义规则,这里是邮件协议,定义邮件收发的规则,了解规则有助于理解软件的配置文件。
邮件发送协议 SMTP(Simple Mail Transfer Protocol),打开端口 25。
邮件收取协议 POP,打开端口 110;还有个常用邮件收取协议 IMOP,打开端口 143。
服务软件
Postfix
Postfix 是实现 SMTP 协议的软件,也叫做邮件发送服务器。
上面说的邮件客户端将邮件扔给它,由它对邮件进行转发,至于怎么转发,SMTP 协议制定了规则,而 Postfix 负责具体事情,我们只需要修改 Postfix 配置文件要求它按照我们的想法去做。
Dovecot
Dovecot 实现了 POP 和 IMOP 协议,也叫做邮件收取服务器。如果只搭建了 Postfix 而没有它,不好意思,你是收不到邮件的。
Sasl
Sasl登陆验证服务,在下面的介绍可以看到 Postfix 作为邮件发送服务器,不能无限制的转发任意邮件,应当只转发它信任的发件人发送的邮件,这一点体现在 Postfix 的配置文件要配置它认为安全的主机(mynetworks 参数)。但这样会显得很麻烦,Sasl 通过其它方式也可以帮助 Postfix 完成信任邮件的认证。
设置DNS解析记录
mail.chaofan.xyz用A记录解析到邮件服务器IP(后面的各个客户端配置的域名都写这个A记录的),再把chaofan.xyz用MX记录解析到mail.chaofan.xyz(这个是当遇到***@chaofan.xyz时会解析到mail.chaofan.xyz)。
测试端口telnet命令也要用mail.chaofan.xyz,不能用mx记录的chaofan.xyz(用这个会解析到A记录解析的chaofan.xyz)。
安装软件
我们选择使用开源的EwoMail来构建邮件服务器
EwoMail
EwoMail是基于Linux的开源邮件服务器软件,集成了众多优秀稳定的组件,是一个快速部署、简单高效、多语言、安全稳定的邮件解决方案,帮助你提升运维效率,降低 IT 成本,兼容主流的邮件客户端,同时支持电脑和手机邮件客户端。
集成组件
Postfix:邮件服务器SMTP
Dovecot:IMAP/POP3/邮件存储
Amavisd:反垃圾和反病毒
EwoMail-Admin:WEB邮箱管理后台
Rainloop:webmail
安装环境
centos系统
国内已备案域名或其他可用域名
EwoMail安装后会把数据存放在 /ewomail 目录,所以先创建ewomail目录
1 | mkdir ewomail |
关闭selinux
1 | vim /etc/sysconfig/selinux |
创建swap分区(内存超过2G,可不配置)
创建1G的swap,可以根据你的服务器配置来调整大小
1 | dd if=/dev/zero of=/mnt/swap bs=1M count=1024 |
设置交换分区文件
1 | mkswap /mnt/swap |
启动swap
1 | swapon /mnt/swap |
设置开机时自启用 swap 分区,需要修改文件 /etc/fstab 中的 swap 行
1 | vim /etc/fstab |
安装好Git环境,具体教程略
执行命令Clone代码,开始安装
1 | cd /root |
一顿读条之后,安装完成
安装后的配置
将你安装的域名,例如安装的域名时 chaofan.xyz,就将这行加在服务器的hosts文件里 /etc/hosts127.0.0.1 mail.chaofan.xyz smtp.chaofan.xyz imap.chaofan.xyz
安装完成后发现通过IP:8010无法访问,原因是没有开放相关端口
开放端口
打开腾讯云控制台,打开安全组,新增一条入站规则
开放8000,8010,8020,25,143,993,995,587,110,465端口,这些都是TCP端口
开放后发现可以打开了
登陆后台
输入默认账号admin,密码ewomail123登录
登陆后点击右上角个人资料。修改登录名和密码等
进入系统设置修改相关信息
添加邮箱
进入后台调集左边邮箱管理
添加一个邮箱后即可通过WEB邮箱或其他邮箱客户端测试是否可用
后记
配置完成后发现只能收邮件无法发邮件
先检查25端口是否开放,未开放需要去云服务器厂商申请解封25端口
解封25端口
解封过程参考官方文档
- 仅支持解封预付费包年包月的云服务器,暂不支持按量付费的云服务器。
- 每个腾讯云账号仅可解封5个实例。
- 请确保 TCP 25端口仅用于连接第三方 SMTP 服务器,并从第三方 SMTP 服务器外发邮件。如发现您直接通过云服务器使用 SMTP 协议发送邮件,腾讯云有权永久封禁 TCP 25端口,并不再提供相关服务。
操作步骤:
- 打开腾讯云控制台
- 单击右上角的账号名称,选择【安全管控】
- 在左侧导航栏中,单击【25端口解封】,进入25端口解封管理页面。
- 单击【申请 25 端口解封】。
- 在弹出的 “TCP 25 端口解封申请” 窗口中,选择地域和需要解封25端口的云服务器实例,勾【已阅读并同意《25 端口使用协议》】。
- 单击【确定】,即可完成解封。
然后通过
1 | yum install telnet -y |
出现220字样才是正常的。
25端口正常的情况下,如果不能链接服务器,请检查域名DNS解析,或做内部通信。
检查后发现连接超时
测试内部通信,正常使用