51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

使用iredmail自建邮箱服务器

  1. 搭建前的准备

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 允许域名所有者明确指定哪些邮件服务器有权代表该域名发送电子邮件,并要求接收方验证发件人的 SPFDKIM 签名。如果验证失败, 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 , 这种就没什么更好的办法了

6.参考



赞(0)
未经允许不得转载:工具盒子 » 使用iredmail自建邮箱服务器