Linux系统+Docker搭建Poste.io
电子邮件服务器,搭建属于自己的域名邮箱服务器,可以无限收发电子邮件(Email)!
视频教程:https://www.bilibili.com/video/BV11p1mYaEpM/
前言
什么是域名邮箱?
域名邮箱是指使用自己的域名作为邮箱地址的电子邮件服务。这种形式的邮箱(例如,[email protected])不仅增强了个人或企业的品牌识别度,而且传递出更为专业和正式的形象。相比于常见的免费邮箱服务,域名邮箱提供了更多定制化选项和安全特性,非常适合商业环境。
Poste.io简介
Poste.io 是一个开源的电子邮件服务器解决方案,它提供了一个简单而强大的邮件服务器环境,适用于个人用户、小型企业或组织。Poste.io 的目标是提供易于安装、配置和管理的电子邮件解决方案,并且尽可能减少复杂性。
以下是 Poste.io 的一些主要特点和功能:
- 易于安装和配置:Poste.io 提供了一个简化的安装和配置过程,使用户能够快速设置和启动邮件服务器。
- Web 用户界面:它提供了一个直观的 Web 用户界面,使用户能够轻松管理邮件服务器、创建和管理邮箱账户、设置域名等。
- 邮箱功能:Poste.io 支持标准的电子邮件功能,包括收发邮件、邮件夹管理、邮件搜索、自动转发、自动回复等。
- 安全性:Poste.io 使用各种安全措施来保护你的电子邮件和服务器,包括加密通信、防垃圾邮件过滤、反病毒扫描等。
- 邮件过滤和规则:你可以设置邮件过滤器和规则,根据自定义条件自动处理邮件,例如将特定类型的邮件自动分类到特定文件夹。
- 多域名支持:Poste.io 允许你管理多个域名和相关的邮箱账户,方便你为不同组织或团队创建和管理独立的邮箱。
站长交流群:767557452
域名注册
什么是域名?
域名可以通俗地理解为互联网上的“门牌号码”或“地址”。每个网站在互联网上都有一个唯一的地址,这个地址就是域名。比如,人们常常访问的“baidu.com”,“blog.zeruns.com”等都是域名。它们由一串字符组成,通常包括字母、数字和连接符“-”,并由“.”分隔成几部分。域名的作用是让人们能够更容易地访问和记住网站,而不需要记住复杂的IP地址。同时,域名也具有一定的商业价值,可以作为企业或个人在互联网上的标识和品牌形象。
注册域名
- 腾讯云优惠注册地址:https://curl.qcloud.com/rbDL8jYd
- 阿里云优惠注册地址:https://www.aliyun.com/minisite/goods?userCode=jdjc69nf
- 雨云优惠注册地址:https://www.rainyun.com/zeruns_?s=blog
下面以雨云的为例,注册一个zeruns.top
的域名。
在云产品里找到域名服务。
点击域名注册,搜索你要注册的域名。
根据提示输入信息
填写完信息后点击立即注册,然后等待审核完成就行
如果你用的境内的服务器那还需要进行域名备案。
备案的流程就不细说,自己去了解一下就行。
温馨提示:购买3个月的腾讯云或阿里云等大厂云服务器可以免费提供代备案服务,购买雨云的湖北或宁波的云服务器也可以免费提供代备案服务。
准备
重要事项:要部署自己的邮箱服务器,请先确认服务器的25端口是开放的,入站出站都是OK的才行,目前国内部分服务器厂商或机房是封禁25端口的,可以提工单或找客服询问是否开放25端口或能否申请开放25端口!
这个邮箱服务器除了要用25端口外还需要80和443这些网页服务的端口,所以不能安装网页服务器软件,如果要同时存在就要docker设置端口映射将邮箱服务器的80和443端口映射到其他端口,然后用反向代理,设置比较复杂,所以不会的还是邮箱服务器单独一个服务器吧。
如果你使用的域名未备案的只能使用境外服务器,如果需要延迟相对低一点的可以选择中国香港。
我这里推荐雨云的湖北十堰云服务器,和皓量云擎的宁波云服务器,这两个是我实测没有封25端口的。
- 雨云 湖北十堰 8272CL 高防高性能云服务器测评:https://blog.vpszj.cn/archives/2084.html
- 北少云 河南 8272CL 云服务器性能测评:https://blog.vpszj.cn/archives/2150.html
- 皓量云擎 宁波 E5-2667v4 云服务器性能测评:https://blog.zeruns.com/archives/821.html
- 野草云 香港BGP大带宽VPS测评:https://blog.vpszj.cn/archives/2211.html
- 其他性价比高的服务器推荐:https://blog.vpszj.cn/archives/41.html
下面教程我就用皓量云擎的宁波云服务器来演示,首先注册个账号先:
皓量云擎优惠注册地址:https://www.haoliangyun.com/?aff=zeruns&source=blog
邀请码:zeruns(走链接送首月5折和8折优惠券)
雨云优惠注册链接:https://www.rainyun.com/zeruns_?s=blog
优惠码: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
并回车退出。
Trying 183.47.101.192...
Connected to smtp.qq.com.
Escape character is '^]'.
220 newxmesmtplogicsvrszb16-1.qq.com XMail Esmtp QQ Mail Server.
这个邮箱服务器需要的端口有: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 ~all |
如下图所示:
安装Docker
回到ssh终端,输入下面的指令。
用apt包管理器来安装:
# 安装docker,如果遇到问是否继续的就输入y来确定
apt install docker.io
# 设置docker开机自启和启动docker
systemctl enable docker && systemctl start docker
# 检查是否安装成功,若安装成功会显示 Docker version x.x.x
docker -v
若没安装成功就试试下面的安装脚本:
# 安装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.com/YkABB
Docker换镜像源(如果下面的镜像源地址失效了就自行寻找新的)
# 创建或修改 /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
改成你自己要部署的域名
docker run -d \
--net=host \
-e TZ=Asia/Shanghai \
-v /home/mail:/data \
--name "mailserver" \
-h "mail.vpszj.cn" \
-t analogic/poste.io:latest
容器启动后,在浏览器地址栏输入 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邮箱发邮件到我们搭建的域名邮箱,测试成功。
教程到此结束,如果觉得教程不错的请点个赞,谢谢!
附
如果需要与宝塔和其他网站服务共存,docker命令可以参考下面的,将80和443端口映射到其他端口,然后用反向代理
docker run -d \
-p 25:25 \
-p 81:80 \
-p 433:443 \
-p 110:110 \
-p 143:143 \
-p 465:465 \
-p 587:587 \
-p 993:993 \
-p 995:995 \
-e TZ=Asia/Shanghai \
-v /www/wwwroot/mail:/data \
--name "mailserver" \
-h "mail.vpszj.cn" \
-t hub.vpszj.top/analogic/poste.io
推荐阅读
- 高性价比和便宜的VPS/云服务器推荐: https://blog.vpszj.cn/archives/41.html
- 免代码搭建博客网站!超详细个人博客搭建教程:https://blog.zeruns.com/archives/783.html
- 我博客网站又遭受CC攻击了,记录一下:https://blog.zeruns.com/archives/819.html
- 我的世界服务器搭建教程:https://blog.zeruns.com/tag/mc/
- Linux搭建Discuz论坛网站,网站搭建教程:https://blog.zeruns.com/archives/681.html
- 机械革命imini Pro820迷你主机评测和拆解:https://blog.zeruns.com/archives/813.html
22 条评论
不能正常访问,链接:https://域名/admin/install/server,报错:"IMPLEMENTATION" "Dovecot Pigeonhole"
"SIEVE" "fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include body variables enotify environment mailbox date index ihave duplicate mime foreverypart extracttext imapsieve vnd.dovecot.imapsieve"
"NOTIFY" "mailto"
"SASL" ""
"STARTTLS"
"VERSION" "1.0"
OK "Poste.io ready."
NO "Error in MANAGESIEVE command received by server."
NO "Error in MANAGESIEVE command received by server."
BYE "Too many invalid MANAGESIEVE commands."
重新安装看看
重新安装了,也把4190端口映射到别的开放端口,域名也反代理了,用IP或域名都不行
你看看你docker有没有拉取成功,有没有运行成功,
查看当前docker容器:docker ps
显示容器日志:docker logs 容器名
没遇到过这种问题,你试试雨云的云应用,我上架了poste.io应用模板了,可以一键搭建:https://blog.zeruns.com/archives/869.html
容器运行正常,docker ps:c3ab96e2a900 hub.vpszj.top/analogic/poste.io "/init" 0.0.0.0:6080->4190/tcp, :::6080->4190/tcp mailserver,4190也映射了,就是不能正常访问,我看了容器的nginx日志,全是302
直接IP加端口访问容器的http端口看看
好的,我试试
那种10分钟收件的可以做嘛
什么意思
就是那种用来注册收验证码的 新建
可以创建无限个邮箱地址,你觉得呢
怎么做又是什么意思???搭建教程还不够详细吗
嗯
自己搭建虽然理论上是无限收发邮件,但是到达率和拦截率就看脸了,还得看IP的风险级别。
同一个IP发多了也很容易被集体拉黑,后期各方面维护成本都挺高的,我懒得折腾,还是尽可能用现成的产品。
确实,这个我实测 QQ、163、Gmail邮箱 可以正常进收件箱,Outlook和新浪邮箱就拒收(我用阿里云企业邮箱往这两个邮箱发也被拒收)
邮件拒收的话,除了IP风险因素外,还有域名信任的问题,甚至DMARC策略的问题,如SPF、DKIM 等等。如Spamhaus、Barracuda等,某些反垃圾邮件系统基于内容、IP地址、域名历史等多种因素评分。Outlook一直都挺严格的,对于垃圾邮件的判断,误封率很高。新浪邮箱这些年没用过,很早之前用的了。
拒收的话,除了IP风险因素外,还有域名信任的问题,甚至DMARC策略的问题,如SPF、DKIM 等等。某些反垃圾邮件系统基于内容、IP地址、域名历史、域名信誉、域名年龄等多种因素评分,Spamhaus、Barracuda这些,很复杂很麻烦反正。Outlook过滤垃圾邮件挺严格的,新浪邮箱很久没用过了。
你这还挺专业的
因为不想折腾,所以使用的是阿里云的邮件推送
也挺好的,但是你这样你的邮箱地址就收不到别人的邮件了