教你使用自己的服务器搭建一个可用的邮件系统,来拥有自己域名后缀的邮箱

邮件服务器

概述

邮件收、发服务器是分开的,也就是我们需要搭建一个邮件发送服务器和一个邮件收取服务器。
本文会搭建收、发两个服务器,并用邮件客户端(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)。

image-20210428231004511

安装软件

我们选择使用开源的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
2
3
vim /etc/sysconfig/selinux
SELINUX=enforcing #改为
SELINUX=disabled

创建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
2
3
vim /etc/fstab
#改为
/mnt/swap swap swap defaults 0 0

安装好Git环境,具体教程略

执行命令Clone代码,开始安装

1
2
3
4
5
cd /root
git clone https://gitee.com/laowu5/EwoMail.git
cd /home/EwoMail/install
#需要输入一个邮箱域名,不需要前缀,列如下面的chaofan.xyz
sh ./start.sh chaofan.xyz

一顿读条之后,安装完成

安装后的配置

将你安装的域名,例如安装的域名时 chaofan.xyz,就将这行加在服务器的hosts文件里 /etc/hosts
127.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端口,并不再提供相关服务。

操作步骤:

  1. 打开腾讯云控制台
  2. 单击右上角的账号名称,选择【安全管控
  3. 在左侧导航栏中,单击【25端口解封】,进入25端口解封管理页面。
  4. 单击【申请 25 端口解封】。
  5. 在弹出的 “TCP 25 端口解封申请” 窗口中,选择地域和需要解封25端口的云服务器实例,勾【已阅读并同意《25 端口使用协议》】。
  6. 单击【确定】,即可完成解封。

然后通过

1
2
yum install telnet -y
telnet smtp.qq.com 25

出现220字样才是正常的。
25端口正常的情况下,如果不能链接服务器,请检查域名DNS解析,或做内部通信。

检查后发现连接超时

测试内部通信,正常使用