一直以来想尝试搭建自己的邮箱。可以拥有无数个邮箱名,想想是不是很激动。
搭建之前,先看看你是否都已经提前准备好了材料。
一个开通25端口的VPS;
一个域名。
Poste 支持以下特性:
SPF、DKIM、DMARC、SRS 的原生实现,带有简单的向导
用于检测木马、病毒、恶意软件的防病毒引擎 ( ClamAV )
内置垃圾邮件过滤器( RSPAMD )
HTTPS 上的 Webmail 客户端(Roundcube)
通过 Sieve 脚本进行电子邮件重定向、自动回复和其他过滤(电子邮件所有者管理,每个操作都可以编写脚本)
用于限制邮箱空间或电子邮件数量的配额
系统管理员、域管理员、电子邮件所有者具有不同权限的 Web 管理。
内置 Microsoft 产品的自动发现功能,Thunderbird…
帮助正确设置域和邮件服务器的诊断
SMTP - 端口 25、465 (TLS)、587
POP3 - 端口 110、995 (TLS)
IMAP - 端口 143、993 (TLS)
SSL TLS 无处不在,没有个人数据、电子邮件、登录信息通过互联网未加密。
默认情况下,所有密码都存储为加盐 SHA512 哈希(5000 轮)。攻击者将很难破解您的密码。
整个邮件服务器容器由 Docker 与其他应用程序隔离。
DNS 解析配置
以域名 DOMAIN.com 和 IP 10.10.10.10 为例,修改 DOMAIN.com 的 DNS 记录
类型 | 名称 | 内容 | TTL |
---|---|---|---|
A | 10.10.10.10 | Auto | |
CNAME | smtp | mail.DOMAIN.com | Auto |
CNAME | pop | mail.DOMAIN.com | Auto |
CNAME | imap | mail.DOMAIN.com | Auto |
A | @ | 10.10.10.10 | Auto |
MX | @ | mail.DOMAIN.com | 10 |
TXT | @ | v=spf1 mx ~all | Auto |
TXT | _dmarc.DOMAIN.com | v=DMARC1; p=none; pct=100; rua=mailto: [email protected]; ruf=mailto: [email protected] | Auto |
TXT | s20220610643._domainkey【先不配置这个,后面生成再配置,记录也是生成的】 | 【先不配置这个,后面生成再配置,记录也是生成的】 | 表格 |
完成上面的配置之后可以通过 Poste 提供的检测服务检测:
SFP-Tester
DMARC-Tester
添加 SPF/DKIM/PTR 解析,可提高邮件可信度,从而降低邮件进入垃圾箱的几率。
DMARC 记录不是必须的,但是配置上会对于邮件送达有帮助。
设置 PTR 反向解析
PTR 记录,是电子邮件系统中的邮件交换记录的一种;另一种邮件交换记录是 A 记录(在 IPv4 协议中)或 AAAA 记录(在 IPv6 协议中)。PTR 记录常被用于反向地址解析。
域名解析到 IP 被称为正向解析,而 IP 指向到域名,则被称为反向解析,反向解析需要在主机服务商处进行操作,具体请咨询主机服务商。
一般的 VPS 都可以直接在后台面板添加 PTR 反向解析,如果遇到问题可以直接开 ticket 咨询,配置将 IP 指向到邮件服务器域名,如 mail.DOMAIN.com
前期工作做好了,现在我们进入正题。
安装docker跟Docker-Compose
Docker安装
wget -qO- get.docker.com | bash
开机自启动
systemctl enable docker
Docker-Compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
Poste.io 安装
配置数据目录
mkdir /root/mail
cd /root/mail
安装
docker run \
-p 25:25 \
-p 80:80 \
-p 443:443 \
-p 110:110 \
-p 143:143 \
-p 465:465 \
-p 587:587 \
-p 993:993 \
-p 995:995 \
-e /etc/localtime:/etc/localtime:ro \
-v /root/mail:/data \
--restart=always
--name "PosteServer" \
-h "mail.DOMAIN.com" \
-t analogic/poste.io
若遇到端口占用的情况,请注意查杀进程lsof -i:25 kill -15 process_id
安装后启动
docker start PosteServer
Poste.io配置
创建管理员账户
输入你的域名地址https://mail.DOMAIN.com就行!
设置管理员账号和密码
其他设置
地址 https://mail.DOMAIN.com/admin/login,用你创建的管理员账号和密码登陆!
创建dkim密钥
Virtual domains -> DOMAIN.com【你的一级域名】
点击 create new key,生成key
把得到的值放到我们之前说的解析那里【如下】
类型 | 名称 | 内容 | TTL |
---|---|---|---|
TXT | s20210221288._domainkey | k=rsa; p=MIIBIjANBgkqhk.........CuXNhz7TwI | Auto |
开启SSL
检测端口是否正常
依次点击Server status -> Connections Diagnostics
添加用户
邮件界面中文化
登陆普通域名地址https://mail.Domain.com【非admin】配置即可,其他就自己去玩吧!
客户端
配置邮件客户端访问。
类型 | 端口 | 地址 |
---|---|---|
SMTP | 25,465,587 | smtp.Domain.com |
IMAP | 143,993 | imap.Domain.com |
POP | 110,995 | pop.Domain.com |
邮件客户端可以根据上面的配置添加账号。
邮件发送测试
https://www.mail-tester.com/ 利用这个工具发送一封邮件,可以自动检测是邮箱的 [[SPF]], [[DKIM]] 等等配置,还会给出一定的优化建议
问题小结:
1、管理员邮箱收到主题为“Cron <root@mail> /bin/freshclam --quiet”的邮件
答:重启docker服务 systemctl restart docker
2、邮件系统能收外域邮件,只能发本地邮件不能发外域邮件
答:检查所在服务器25端口出的开放情况,telnet * 25 或 邮箱后台有自检程序
3、邮箱添加转发后无法收件,来信停在队列中
答:检查server.ini里面的brand_name,不要写中文
4、收到退信显示在使用的urbl.hostedemail.com黑名单中
答:在https://fbl.returnpath.net上填个FBL的申请
评论 (0)