万维当云伯乐 CDN华纳云
建站教程2025-05-16889 阅读

如何自建域名邮箱:使用iredmail自建邮箱服务器教程

本文摘要1. 搭建前的准备 1.1 准备符合要求的 vps 搭建邮箱,需要准备好 一个顶级域名 一个符合下述要求的 vps 商家开放 25 端口 商家支持 rdns 内存尽量 4GB+ IP 尽量干净 25 端口 可以使用命令测试 apt install telnet -y telnet mx2.qq.com 25 如果能够看
丽萨主机
AD:
【广告招商】文章正文文字广告位开放合作

1. 搭建前的准备

1.1 准备符合要求的 vps

搭建邮箱,需要准备好
  • 一个顶级域名
  • 一个符合下述要求的 vps
    • 商家开放 25 端口
    • 商家支持 rdns
    • 内存尽量 4GB+
    • IP 尽量干净
25 端口 可以使用命令测试
apt install telnet -y
telnet mx2.qq.com 25
如果能够看到
66dd01916bcf1
25 端口测试
就说明端口是开放的
25 端口必须是可用的,如果上一步测试你测试结果为超时,那么你是无法发信的
有的商家只屏蔽 25 端口出方向,有的商家是全屏蔽。全屏蔽的 vps 无法作为邮件服务器使用,屏蔽出方向的只能收信无法发信
rdns 一般在商家的控制面板里设置,如果找不到,一般就是不支持 设置完成后,利用 nslookup 命令来检查 如果需要在 linux 下使用,需要安装
 apt install dnsutils -y
执行
nslookup YOUR_IP
就可以看到类似于下图的效果
66dd052b000bb
rdns 查询
rdns 必须支持并且正确设置,否则很多邮箱会直接拒收,比如 Google
至于 IP纯净度 , 这是一个很难评判的问题,但纯净的 IP 肯定是更好的,同样搭建的邮箱发同样的内容,有的 IP 发信直达收件箱,有的直达垃圾箱。 网上测试 IP纯净度 的网站不少,不过仅作参考

1.2 解析域名

首先添加 MX记录 , 指向你的邮件服务器 IP
66dd07d27b249
添加 MX 记录
然后添加 A记录 /AAAA记录,给自己的邮箱网站一个子域名,例如 mail.example.com
66dd089b15f66
添加 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
修改完后建议重启,上述步骤如果不正确无法进行后续安装
66dd0bb9e3a9b
无法继续安装
如果重启后发现 hosts 被还原了,建议直接 dd 重装纯净的系统 如果不想重装,修改完成后锁定 hosts 文件也可以的
chattr +i /etc/hosts

2. 安装 iredmail

iredmail 的项目地址 https://github.com/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
66dd0fa42cf88
开始安装
存储目录没有特殊需求的话保持默认即可
66dd0fcf7fdc3
选择存储位置
选择 web server , 我们没有自己安装的,就用它配置好的 nginx 好了,方便好用
66dd12352264c
选择 web server
选择数据库,可以根据自己的喜好选择,我选择 MariaDB
按空格键选中,注意看括号中是否有代表选中的星号
66dd12bbb641e
选择数据库
创建 Mysql 密码 , 密码要保存好,这个密码越复杂越好
66dd132ce38c8
填写 MySQL 密码
填写邮箱域名, 注意这里填写的是顶级域名,即 example.com
66dd13801a524
填写邮箱域名
创建邮箱管理员密码,这个密码也要记好
66dd13de0ad36
创建邮箱管理员密码
选择要安装的程序,这个按需选择
66dd1429d300f
选择安装程序
  • Roundcubemail:邮箱的 web 界面
  • SOGo:选了 Roundcubemail 就没必要选它了
  • netdata:服务器状态监控与可视化
  • iRedAdmin:邮箱的管理员面板
  • Fail2ban:封禁爆破 IP
最终确认安装配置
66dd1504e7aba
确认安装选项
耐心等待安装完成 使用防火墙
66dd18805933f
使用防火墙
安装完成,重启 vps
66dd18c2f07b9

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
会看到
66dd1e29eb0dd
查看 dkim
将 () 中的内容复制出来,去掉引号、回车和空格,连起来就是记录值 添加解析记录
66dd1f0319379
添加 dkim 解析
解析完成会返回邮箱服务器执行
/usr/sbin/amavisd testkey
如果看到 PASS ,就是校验通过了
66dd1fb5020e6
dkim 校验

3.3 添加 DMARC 记录

DMARC 允许域名所有者明确指定哪些邮件服务器有权代表该域名发送电子邮件,并要求接收方验证发件人的 SPF 和 DKIM 签名。如果验证失败,DMARC 规定了如何处理这类邮件。 添加一条 TXT 解析
v=DMARC1;p=none;ruf=mailto:abuse@example.com;rua=mailto:abuse@example.com
66dd21184b750
添加 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
66dd3184bb7a5
登录管理员账户
其中:
  • 用户名 为 postmaster@example.com
  • 密码 为 前面自己设置的
进入 添加 -> example.com
66dd327264950
添加邮箱用户
点击 添加 就能新建用户了 然后打开 https://example.com/mail ,登录刚才创建的账号 就可以看见邮箱页面了
66dd337c5ee94
邮箱页面

5.2 邮箱评分测试

使用的测试网站是 https://www.mail-tester.com/ 只需要向网页展示的地址发送一封邮件,就可以看到评分了
66dd340218fc5
邮件测试
向其发送测试邮件
66dd3469e28b2
发送测试邮件
查看评测结果,自然是满分
66de54f98a7c6
测试评分
接着就可以向 QQ、Outlook、Gmail 发送测试邮件了 Gmail 测试收件正常,不会进垃圾箱
66dd381e62c6b
gmail 测试
Outlook 测试收件正常,不会进垃圾箱
66dd3866717f2
outlook 测试
QQ 测试收件正常,不会进垃圾箱
66dd389334781
qq 测试
至此邮箱搭建就完成了,只要前面步骤正确,服务器 IP 不要太差,基本都不会进垃圾箱的 当然如果你购买的是部分 “网红商家” 的 vps,那 IP 都已经很差了,就很容易进垃圾箱,尤其是 Outlook , 这种就没什么更好的办法了

6. 参考

   
广告招商文章内容详情页下 · 优质席位开放中合作咨询