Linux系统+Docker搭建</s>Poste.io<e>
电子邮件服务器,搭建属于自己的域名邮箱服务器,可以无限收发电子邮件(Email)!
视频教程:[https://www.bilibili.com/video/BV11p1mYaEpM/](https://www.bilibili.com/video/BV11p1mYaEpM/)
## 前言
### 什么是域名邮箱?
域名邮箱是指使用自己的域名作为邮箱地址的电子邮件服务。这种形式的邮箱(例如,[email protected])不仅增强了个人或企业的品牌识别度,而且传递出更为专业和正式的形象。相比于常见的免费邮箱服务,域名邮箱提供了更多定制化选项和安全特性,非常适合商业环境。
### Poste.io简介
Poste.io 是一个开源的电子邮件服务器解决方案,它提供了一个简单而强大的邮件服务器环境,适用于个人用户、小型企业或组织。Poste.io 的目标是提供易于安装、配置和管理的电子邮件解决方案,并且尽可能减少复杂性。
以下是 Poste.io 的一些主要特点和功能:
**站长交流群:[767557452](https://jq.qq.com/?_wv=1027&k=wgSx4AYc)**
## 域名注册
**什么是域名?**
域名可以通俗地理解为互联网上的“门牌号码”或“地址”。每个网站在互联网上都有一个唯一的地址,这个地址就是域名。比如,人们常常访问的“baidu.com”,“blog.zeruns.tech”等都是域名。它们由一串字符组成,通常包括字母、数字和连接符“-”,并由“.”分隔成几部分。域名的作用是让人们能够更容易地访问和记住网站,而不需要记住复杂的IP地址。同时,域名也具有一定的商业价值,可以作为企业或个人在互联网上的标识和品牌形象。
**注册域名**
可以去[腾讯云](https://curl.qcloud.com/dVdrdEIT)、[阿里云](https://www.aliyun.com/minisite/goods?userCode=jdjc69nf)和[雨云](https://www.rainyun.com/zeruns_?s=nodeloc)等平台注册域名。
下面以雨云的为例,注册一个`zeruns.top`的域名。
在云产品里找到域名服务。

点击域名注册,搜索你要注册的域名。

根据提示输入信息

填写完信息后点击立即注册,然后等待审核完成就行

如果你用的境内的服务器那还需要进行域名备案。
备案的流程就不细说,自己去了解一下就行。
温馨提示:购买3个月的[腾讯云](https://curl.qcloud.com/dVdrdEIT)或[阿里云](https://www.aliyun.com/minisite/goods?userCode=jdjc69nf)等大厂云服务器可以免费提供代备案服务,购买雨云的[湖北](https://blog.vpszj.cn/archives/tag/湖北)或[宁波](https://blog.vpszj.cn/archives/tag/宁波)的云服务器也可以免费提供代备案服务。
## 准备
**重要事项:要部署自己的邮箱服务器,请先确认服务器的25端口是开放的,入站出站都是OK的才行,目前国内部分服务器厂商或机房是封禁25端口的,可以提工单或找客服询问是否开放25端口或能否申请开放25端口!**
这个邮箱服务器除了要用25端口外还需要80和443这些网页服务的端口,所以不能安装网页服务器软件,如果要同时存在就要docker设置端口映射将邮箱服务器的80和443端口映射到其他端口,然后用反向代理,设置比较复杂,所以不会的还是邮箱服务器单独一个服务器吧。
如果你使用的域名未备案的只能使用境外服务器,如果需要延迟相对低一点的可以选择[中国香港](https://blog.vpszj.cn/archives/tag/香港)。
我这里推荐[雨云](https://blog.vpszj.cn/archives/tag/雨云)的[湖北](https://blog.vpszj.cn/archives/tag/湖北)十堰云服务器,和[皓量云擎](https://blog.vpszj.cn/archives/tag/皓量云擎)的[宁波](https://blog.vpszj.cn/archives/tag/宁波)云服务器,这两个是我实测没有封25端口的。
**下面教程我就用[皓量云擎](https://blog.vpszj.cn/archives/tag/皓量云擎)的[宁波](https://blog.vpszj.cn/archives/tag/宁波)云服务器来演示,首先注册个账号先:**
**皓量云擎优惠注册地址(含AFF)**:www.haoliangyun.com/?aff=zeruns&source=nodeloc
**邀请码:zeruns(走链接送首月5折和8折优惠券)**
雨云优惠注册链接(含AFF):[https://www.rainyun.com/zeruns_?s=nodeloc](https://www.rainyun.com/zeruns_?s=nodeloc)
优惠码:zeruns(走链接送首月5折优惠券)
注册账号后点击 **计算**→**云服务器**→**购买云服务器**

区域选**华东-宁波**,配置一般选2核2G就够了(如果是公司企业之类的,邮件量和业务量大就建议选更高的配置,硬盘最好也要大点),系统镜像选**Debian12**,点击**下一步**。

选择带宽,默认的5Mbps就够了(如果是公司企业之类的,邮件量和业务量大就建议选更高的带宽),继续点击**下一步**。

这里可以设置服务器的密码,默认自动生成就行,继续点击**下一步**,然后确认并提交订单。


购买后即可在云服务器这里看到你买的云服务器,点击**管理**。

接着就可以看到云服务器的信息了,在这里可以重装/切换系统、重置密码等,可以升级配置。
## 连接服务器
下载安装并打开ssh客户端软件,ssh客户端软件推荐putty或mobaxterm。
我这里用mobaxterm,在SSH客户端中输入你的服务器的IP地址,还有SSH端口,然后点击好的或者打开。

然后输入账号并按回车,账号一般默认为**root**,接着输入密码并按回车确定,输入密码时不会显示出来。
温馨提示:在SSH终端中按住鼠标左键选择文字,然后松开鼠标,再在空白处单击一下,这样就把选中的文字复制了;在SSH终端单击右键即为粘贴。

## 验证是否开放25端口
判断25端口可用方法是在服务器上执行: ` telnet smtp.qq.com 25`
若输出是: `Trying 43.129.255.54... telnet: connect to address 43.129.255.54: Connection timed out` 则可以放弃部署邮局了。
若输出是以下内容,则证明该服务器25端口正常的,可以进行部署邮局。接着输入`quit`并回车退出。
shell</s><i> </i>Trying 183.47.101.192... Connected to smtp.qq.com. Escape character is '^]'. 220 newxmesmtplogicsvrszb16-1.qq.com XMail Esmtp QQ Mail Server.<i> </i><e>

**这个邮箱服务器需要的端口有:25、80、443、110、143、465、587、993、995**
大厂的服务器要记得都去服务器控制台的安全组/防火墙那里开放这些端口!
## 设置域名解析
**按照以下内容配置即可。mail.vpszj.cn 替换成你自己的域名就可以**
主机记录 | 记录类型 | 记录值 |
---|---|---|
A | 你服务器的IP地址 | |
smtp | CNAME | mail.vpszj.cn |
pop | CNAME | mail.vpszj.cn |
imap | CNAME | mail.vpszj.cn |
@ | MX | mail.vpszj.cn |
@ | TXT | v=spf1 mx |
如下图所示:

## 安装Docker
回到ssh终端,输入下面的指令。
**用apt包管理器来安装:**
```shell
# 安装docker,如果遇到问是否继续的就输入y来确定
apt install docker.io
设置docker开机自启和启动docker
systemctl enable docker && systemctl start docker
检查是否安装成功,若安装成功会显示 Docker version x.x.x
docker -v
```

**若没安装成功就试试下面的安装脚本:**
```bash
# 安装docker
curl -sSL https://get.daocloud.io/docker | sh
设置docker开机自启和启动docker
systemctl enable docker && systemctl start docker
检查是否安装成功,若安装成功会显示 Docker version x.x.x
docker -v
```
**如果还是不行就尝试下面链接的手动安装教程吧**
docker手动安装教程:[https://url.zeruns.tech/YkABB](https://url.zeruns.tech/YkABB)
**Docker换镜像源(如果下面的镜像源地址失效了就自行寻找新的)**
```bash
# 创建或修改 /etc/docker/daemon.json 文件
apt install nano && nano /etc/docker/daemon.json
然后输入下面内容:(输入完后按Ctrl+O,然后回车保存,接着按Ctrl+X退出编辑器)
{
“registry-mirrors”: [“https://docker.1ms.run”,
“https://dockerhub.icu”,
“https://docker2.awsl9527.cn”
]
}
重启docker服务
systemctl restart docker.service
```

## 安装和配置Poste.io
本次部署poste.io,我们采用docker的方式。
在SSH终端里执行下面的命令:
命令中的`/home/mail`是邮箱系统的配置文件和数据存放目录路径,可以自行修改。
`-h` 后面的域名`mail.vpszj.cn`改成你自己要部署的域名
shell</s><i> </i>docker run -d \ --net=host \ -e TZ=Asia/Shanghai \ -v /home/mail:/data \ --name "mailserver" \ -h "mail.vpszj.cn" \ -t analogic/poste.io:latest<i> </i><e>

容器启动后,在浏览器地址栏输入 `https://服务器IP/admin/install/server` 或者是 `https://你的域名/admin/install/server` 进入配置页面。
在这个页面,我们输入你邮箱的域名,管理员邮箱地址,以及生成密码(也可以自己手动输入)后提交即可。切记记录一下邮箱的域名和管理员账户。

进入后台,找到**System settings** → **TLS certificate**,点击` issue free letsencrypt.org certificate `进行申请SSL证书(申请SSL证书后浏览器地址栏会变小绿锁,不会显示不安全了)。


申请完后,我们前台再次访问邮箱域名。 我这里是`mail.vpszj.cn`
他会自动跳转到邮箱的登录页面。输入之前设置管理员账号和密码并登陆。


然后我们在**Virtual domains**点击域名,申请DKIM


申请完成后,需要按照页面提示更新DNS记录,新建一个TXT记录即可。

接下来我们测试发信。我们新建邮件,随便编辑一些内容我发给我的QQ邮箱,可以看到邮件该有的功能页面都有,挺齐全了。

QQ邮箱视角:收到了(如果你没找到,不妨试着看看垃圾箱~)

给这个邮局新增账号也很简单,只需要去后台的**Email accounts**这里,Create a new email即可。


测试QQ邮箱发邮件到我们搭建的域名邮箱,测试成功。

教程到此结束,如果觉得教程不错的请点个赞,谢谢!