- 搭建前的准备
1.1 准备符合要求的vps
搭建邮箱,需要准备好
- 一个顶级域名
- 一个符合下述要求的 vps
- 商家开放 25 端口
- 商家支持 rdns
- 内存尽量 4GB+
- IP尽量干净
25 端口
可以使用命令测试
apt install telnet -y
telnet mx2.qq.com 25
如果能够看到
25端口测试
就说明端口是开放的
25端口必须是可用的,如果上一步测试你测试结果为超时,那么你是无法发信的
有的商家只屏蔽25端口出方向,有的商家是全屏蔽。全屏蔽的vps无法作为邮件服务器使用,屏蔽出方向的只能收信无法发信
rdns
一般在商家的控制面板里设置,如果找不到,一般就是不支持
设置完成后,利用 nslookup
命令来检查
如果需要在 linux 下使用,需要安装
apt install dnsutils -y
执行
nslookup YOUR_IP
就可以看到类似于下图的效果
rdns查询
rdns必须支持并且正确设置,否则很多邮箱会直接拒收,比如 Google
至于 IP纯净度
, 这是一个很难评判的问题,但纯净的 IP 肯定是更好的,同样搭建的邮箱发同样的内容,有的 IP 发信直达收件箱,有的直达垃圾箱。
网上测试 IP纯净度
的网站不少,不过仅作参考
1.2 解析域名
首先添加 MX记录
, 指向你的邮件服务器IP
添加MX记录
然后添加 A记录
/ AAAA记录
,给自己的邮箱网站一个子域名,例如 mail.example.com
添加A记录
1.3 更改hosts文件
编辑 hosts
nano /etc/hosts
将内容改为
127.0.0.1 mail.example.com mail localhost localhost.localdomain
注意:将 mail.example.com 改为你自己的域名!
1.4 修改主机名
将主机名修改为 mail.example.com
sudo hostnamectl set-hostname mail.example.com
修改完后建议重启,上述步骤如果不正确无法进行后续安装
无法继续安装
如果重启后发现 hosts
被还原了,建议直接dd重装纯净的系统
如果不想重装,修改完成后锁定 hosts 文件也可以的
chattr +i /etc/hosts
2.安装 iredmail
iredmail
的项目地址
GitHub
iredmail/iRedMail
安装 iredmail
前必须先安装 iptables
apt install iptables -y
iptables 必须确认安装,我曾因为没有安装,在安装了 iredmail 后无法进入系统,只能去恢复模式修复!
安装其它需要的包
apt install unzip -y
从 github 下载 iredmail
,例如
wget https://github.com/iredmail/iRedMail/archive/refs/tags/1.7.1.zip
unzip 1.7.1.zip
cd iRedMail-1.7.1/
给脚本执行权限
chmod +x iRedMail.sh
执行安装脚本
bash iRedMail.sh
开始安装
存储目录没有特殊需求的话保持默认即可
选择存储位置
选择 web server
, 我们没有自己安装的,就用它配置好的 nginx
好了,方便好用
选择web server
选择数据库,可以根据自己的喜好选择,我选择 MariaDB
按空格键选中,注意看括号中是否有代表选中的星号
选择数据库
创建 Mysql 密码
, 密码要保存好,这个密码越复杂越好
填写MySQL 密码
填写邮箱域名, 注意这里填写的是顶级域名,即 example.com
填写邮箱域名
创建邮箱管理员密码,这个密码也要记好
创建邮箱管理员密码
选择要安装的程序,这个按需选择
选择安装程序
- Roundcubemail:邮箱的web界面
- SOGo:选了 Roundcubemail 就没必要选它了
- netdata:服务器状态监控与可视化
- iRedAdmin:邮箱的管理员面板
- Fail2ban:封禁爆破IP
最终确认安装配置
确认安装选项
耐心等待安装完成
使用防火墙
使用防火墙
安装完成,重启 vps
3.设置域名记录
虽然 iredmail
已经安装好了,但仍然需要设置一些域名记录,这些记录是为了防止垃圾、诈骗邮件而设计的
3.1 设置spf记录
spf记录是TXT类型
字符为
v=spf1 a:mail.example.com ~all
这个记录是告诉别人,允许从域名解析为 mail.example.com
的服务器发送邮件,如果不是从指定的服务器发送的,邮件会被标记为可疑
Windows
下使用 nslookup
验证记录
nslookup -qt=txt example.com
Linux
下使用 nslookup
验证记录
nslookup -q=txt example.com
3.2 设置dkim记录
dkim
记录的作用是帮助电子邮件接收服务器验证电子邮件的真实性,防止电子邮件伪造和钓鱼攻击
查看服务器的 dkim
/usr/sbin/amavisd showkey
会看到
查看dkim
将 ()
中的内容复制出来,去掉引号、回车和空格,连起来就是记录值
添加解析记录
添加dkim解析
解析完成会返回邮箱服务器执行
/usr/sbin/amavisd testkey
如果看到 PASS
,就是校验通过了
dkim校验
3.3 添加DMARC记录
DMARC
允许域名所有者明确指定哪些邮件服务器有权代表该域名发送电子邮件,并要求接收方验证发件人的 SPF
和 DKIM
签名。如果验证失败, DMARC
规定了如何处理这类邮件。
添加一条 TXT 解析
v=DMARC1;p=none;ruf=mailto:abuse@example.com;rua=mailto:abuse@example.com
添加DMARC记录
在 Windows
命令行中验证
nslookup -qt=txt _dmarc.example.com
在 Linux
命令行中验证
nslookup -q=txt _dmarc.example.com
能看到添加解析的结果即可
4.为网站添加ssl证书
安装 acme.sh
curl https://get.acme.sh | sh
alias acme.sh=~/.acme.sh/acme.sh
申请证书,我使用 dns 验证的方式,这里参考 acme.sh 的用法
比如 cloudflare
export CF_Key="YOUR_KEY"
export CF_Email="YOUR@EMAIL.COM"
acme.sh --issue --dns dns_cf -d mail.example.com
比如 dnspod
export DP_Id="YOUR_ID"
export DP_Key="YOUR_KEY"
export ACCOUNT_EMAIL="YOUR@EMAIL.COM"
acme.sh --issue --dns dns_dp -d mail.example.com
安装证书
acme.sh --installcert -d mail.example.com \
--key-file /etc/ssl/private/nginx.key \
--fullchain-file /etc/ssl/certs/nginx.cer \
--reloadcmd "systemctl force-reload nginx"
修改 nginx
配置文件
nano /etc/nginx/sites-enabled/00-default-ssl.conf
在 server{}
里添加
ssl_certificate /etc/ssl/certs/iRedMail.crt;
ssl_certificate_key /etc/ssl/private/iRedMail.key;
安装iredmail邮件服务相关的SSL
acme.sh --installcert -d mail.example.com \
--key-file /etc/ssl/private/iRedMail.key \
--fullchain-file /etc/ssl/certs/iRedMail.crt \
--reloadcmd "service nginx force-reload && service postfix force-reload && service dovecot force-reload"
5.邮箱服务管理与测试
5.1 添加邮箱用户
访问 https://mail.example.com/iredadmin
登录管理员账户
其中:
用户名
为postmaster@example.com
密码
为 前面自己设置的
进入 添加
-> example.com
添加邮箱用户
点击 添加
就能新建用户了
然后打开 https://example.com/mail
,登录刚才创建的账号
就可以看见邮箱页面了
邮箱页面
5.2 邮箱评分测试
使用的测试网站是 https://www.mail-tester.com/
只需要向网页展示的地址发送一封邮件,就可以看到评分了
邮件测试
向其发送测试邮件
发送测试邮件
查看评测结果,自然是满分
测试评分
接着就可以向 QQ、Outlook、Gmail 发送测试邮件了
Gmail 测试收件正常,不会进垃圾箱
gmail测试
Outlook 测试收件正常,不会进垃圾箱
outlook测试
QQ 测试收件正常,不会进垃圾箱
qq测试
至此邮箱搭建就完成了,只要前面步骤正确,服务器 IP 不要太差,基本都不会进垃圾箱的
当然如果你购买的是部分"网红商家"的vps,那 IP 都已经很差了,就很容易进垃圾箱,尤其是 Outlook , 这种就没什么更好的办法了