技术 · 2021年1月12日 0 222  

iRedMail域名邮箱

iRedMail自建邮局

前几天弄了一个挺有趣的域名,正好放假了有时间,想着尝试一下自建域名邮箱。我使用的软件是iRedMail,官网提供了中英文的安装文档并支持多种安装方式(包括Docker),还是挺方便的。我使用常规的方法来进行安装。

不过要注意自建邮件服务器前,先确认你的服务器的25(smtp)端口可用。

我使用的服务器配置
justhost
2c2g
debian10

安装iRedMail

官网文档已经有了很详细的安装教程了,基本跟着教程做即可。安装脚本会自动配置环境,所以得使用干净的环境来安装

首先修改一下主机名,之后安装脚本会根据这个主机名来配置web服务器。

输入命令 hostname -f 查看当前的主机名

$ hostname -f
mx.example.com

在 Debian/Ubuntu 系统上,主机名需要在两个文件里设置:/etc/hostname/etc/hosts

  • /etc/hostname:短名称。
mx
  • /etc/hosts 里定义主机名和 IP 地址的对应关系。注意:一定要将 FQDN 主机名列在第一个。
127.0.0.1   mx.example.com mx localhost localhost.localdomain
wget https://github.com/iredmail/iRedMail/archive/1.3.2.tar.gz
tar -zxvf 1.3.2.tar.gz
cd iRedMail-1.3.2/
bash iRedMail.sh

开始安装

在这个界面中,我们需要指定邮箱的存储路径、web服务器、数据库、数据库密码、域名邮箱使用的域名、邮箱管理员(postmaster)的密码等信息,在确认所有信息后便可以开始安装。

部分软件是编译安装的,所以可能要等待挺长的一段时间。

成功安装

安装完毕之后重启一下服务器,之后便能通过域名访问了。

image-20210112134308884

配置DNS记录

虽然完成了上面的步骤之后已经可以发信了,但是此时发出去的邮件大概率会直接进垃圾箱甚至拒收,所以我们还得进行一些配置。

我们可以先测试测试我们当前的邮箱配置,访问 https://www.mail-tester.com/ 获取一个邮箱地址,并给他发信,查看测试结果。

image-20210112135522925测试结果

可以看到,发信成功了,但是分数低的吓人。

所以我们需要进行一些修改,让邮件变得更为“可信”。

配置RDNS

rDNS全称为reverse DNS,即为反向域名解析。正向域名系统(DNS)把域名分解成关联的IP地址,反向域名解析是一种把一个IP地址分解成一个域名的方法。

rdns可以用来判断发信者ip是否能和宣传域名对应上,某些服务商可以直接在面板中修改,但是我发现justhost是没办法修改rdns的…只得略过这一步了。

配置MX记录

MX(Mail Exchanger Record )记录用于高速其他的邮件服务器,你的邮件服务器在哪,配置好了才能成功收信,记录值需要是hostname不能直接用ip.

mydomain.com. 10 mx mail.mydomain.com

会使得发往[user]@mydomain.com的邮件都交由mail.mydomain.com进行处理。

配置SPF记录

这篇文章写的很清楚 https://www.renfei.org/blog/introduction-to-spf.html

SPF 记录实际上是服务器的一个 DNS 记录,原理其实很简单:
假设邮件服务器收到了一封邮件,来自主机的 IP 是173.194.72.103,并且声称发件人为[email protected]。为了确认发件人不是伪造的,邮件服务器会去查询example.com的 SPF 记录。如果该域的 SPF 记录设置允许 IP 为173.194.72.103的主机发送邮件,则服务器就认为这封邮件是合法的;如果不允许,则通常会退信,或将其标记为垃圾/仿冒邮件。
因为不怀好心的人虽然可以「声称」他的邮件来自example.com,但是他却无权操作example.com的 DNS 记录;同时他也无法伪造自己的 IP 地址。因此 SPF 是很有效的,当前基本上所有的邮件服务提供商(例如 Gmail、QQ 邮箱等)都会验证它。

记录 mydomain.com. 3600 IN TXT "v=spf1 mx -all" 表示mydomain.com记录指向的所有服务器都可以被认为是@mydomain.com的发件人,另外还可以直接指明可信的邮件服务器ip。

mydomain.com. 3600 IN TXT "v=spf1 ip4:111.111.111.111 ip4:111.111.111.222 -all"

配置DKIM记录

运行 amavisd-new showkeys 查看记录,并把显示出来的()中的dkim记录复制出来并添加到dns记录中(整理一下,删掉引号),记录名为 dkim._domainkey 。可以通过dig -t txt dkim._domainkey.mydomain.com 或者 amavisd-new testkeys查看记录是否生效。

最终效果

最终效果

参考

给域名添加SPF记录以提高邮件通达度

邮件服务器上设置rDNS是什么?

SPF记录介绍