iRedMail自建邮局
前几天弄了一个挺有趣的域名,正好放假了有时间,想着尝试一下自建域名邮箱。我使用的软件是[iRedMail][1],官网提供了中英文的[安装文档][2]并支持多种安装方式(包括Docker),还是挺方便的。我使用常规的方法来进行安装。
不过要注意自建邮件服务器前,先确认你的服务器的25(smtp)端口可用。
我使用的服务器配置
justhost
2c2g
debian10
安装iRedMail
官网文档已经有了很详细的安装教程了,基本跟着教程做即可。安装脚本会自动配置环境,所以得使用干净的环境来安装
首先修改一下主机名,之后安装脚本会根据这个主机名来配置web服务器。
输入命令 hostname -f
查看当前的主机名
$ hostname -f
mx.example.com
在 Debian/Ubuntu 系统上,主机名需要在两个文件里设置:/etc/hostname
和 /etc/hosts
。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
| 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```
![开始安装][3]
在这个界面中,我们需要指定邮箱的存储路径、web服务器、数据库、数据库密码、域名邮箱使用的域名、邮箱管理员(postmaster)的密码等信息,在确认所有信息后便可以开始安装。
部分软件是编译安装的,所以可能要等待挺长的一段时间。
![成功安装][4]
安装完毕之后重启一下服务器,之后便能通过域名访问了。
![image-20210112134308884][5]
## 配置DNS记录
虽然完成了上面的步骤之后已经可以发信了,但是此时发出去的邮件大概率会直接进垃圾箱甚至拒收,所以我们还得进行一些配置。
我们可以先测试测试我们当前的邮箱配置,访问 <https://www.mail-tester.com/> 获取一个邮箱地址,并给他发信,查看测试结果。
![image-20210112135522925][6]![测试结果][7]
可以看到,发信成功了,但是分数低的吓人。
所以我们需要进行一些修改,让邮件变得更为“可信”。
### 配置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@example.com`。为了确认发件人不是伪造的,邮件服务器会去查询`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`查看记录是否生效。
最终效果
![最终效果][8]
## 参考
[给域名添加SPF记录以提高邮件通达度][9]
[邮件服务器上设置rDNS是什么?][10]
[SPF记录介绍][11]
[1]: https://www.iredmail.org/index-zh_CN.html
[2]: https://docs.iredmail.org/index-zh_CN.html
[3]: https://img.aoyouer.com/images/2021/01/12/20210112125038.png
[4]: https://img.aoyouer.com/images/2021/01/12/20210112134248.png
[5]: https://img.aoyouer.com/images/2021/01/12/20210112134308.png
[6]: https://img.aoyouer.com/images/2021/01/12/20210112135522.png
[7]: https://img.aoyouer.com/images/2021/01/12/20210112135603.png
[8]: https://img.aoyouer.com/images/2021/01/12/20210112144854.png
[9]: https://nya.dyn.im/2016/07/27/15/
[10]: https://www.megalayer.net/zh/support/20200512.html
[11]: https://www.renfei.org/blog/introduction-to-spf.html
|