当前位置: 首页 > 淘宝 > 正文

群晖配置自建邮件服务器

开篇之前,我想说通过群晖 Mailplus Server 自建一个邮件服务器绝对是一个非常有成就感的事情,搭建过程中我们可以学习到邮件服务使用的协议,端口号,MX解析等很多知识。如果你已经准备好,那就让我们开始吧。

前期准备:

  • 支持MailPlus的群晖NAS
  • 动/静态公网IP的宽带
  • 顶级域名且配置了DDNS服务

通过浏览器设置:

  1. 打开套件中心,先安装 MailPlus Server 和 MailPlus 这两个套件,前者是服务端,后者是客户端。
干货丨手把手教会群晖Mailplus设置及邮件免拒收(SPF、DMARC、DKIM)插图1
  1. 安装好后,会看到系统中出现了刚才安装的两个套件,打开Mailplus server设置我们的邮件服务器。初次安装我们选择”创建新邮件系统”
干货丨手把手教会群晖Mailplus设置及邮件免拒收(SPF、DMARC、DKIM)插图3
  1. 域名填写你自己的域名,比如 example.com

FQDN 即“邮件服务器的主机”:按照系统提示设置成 mail.example.com,后续在域名解析中增加该MX记录

干货丨手把手教会群晖Mailplus设置及邮件免拒收(SPF、DMARC、DKIM)插图5
  1. Mailplus Server开始初始化配置。
干货丨手把手教会群晖Mailplus设置及邮件免拒收(SPF、DMARC、DKIM)插图7
  1. 配置完成后,进入邮件服务器的状态界面,可以看到邮件的入站/出站统计。
干货丨手把手教会群晖Mailplus设置及邮件免拒收(SPF、DMARC、DKIM)插图9
  1. 先到“账号”选项卡中,开启使用权限,这里注意,每台NAS可以免费开启5个用户使用Mailplus,想让更多人使用需要购买许可证。这我们现在只有admin这个账户在使用邮箱,就先勾选一个。
干货丨手把手教会群晖Mailplus设置及邮件免拒收(SPF、DMARC、DKIM)插图11

关于 MailPlus 许可证

  • 许可证分5用户和20用户两种,购买一个5用户的许可证,加上机器自带5个免费许可证,即可让 MailPlus Server 支持10个用户。
  • 许可证和机器是绑定的,也就是说你换一台NAS是没有办法把许可证转到新NAS上的。除非你的NAS出故障并由售后更换了新机,才可申请转移。
干货丨手把手教会群晖Mailplus设置及邮件免拒收(SPF、DMARC、DKIM)插图13
  1. 继续配置,进入“邮件投递”选项卡,确认”启用STMP认证”已勾选。确认域名和主机名正确。
干货丨手把手教会群晖Mailplus设置及邮件免拒收(SPF、DMARC、DKIM)插图15
  1. 进入“服务”选项卡,确认 SMTP 和 IMAP/POP3 下的选项全部勾选,打开所有的协议端口。
干货丨手把手教会群晖Mailplus设置及邮件免拒收(SPF、DMARC、DKIM)插图17

服务器端初步设置到此完成。

路由器设置

  1. 进入路由器的端口转发选项,把以下端口号全部转发到群晖所在局域网的固定IP。如果路由器有DMZ主机功能,将群晖所在局域网的固定IP设置为DMZ主机,则不需要设置任何端口映射,默认全端口都会映射到群晖。
  • SMTP:25
  • SMTP SSL:465
  • SMTP TLS:587
  • POP3:110
  • POP3 SSL:995
  • IMAP:143
  • IMAPS:993
  1. 域名设置:

登陆域名解析界面,设置MX解析地址为 mail.example.com,优先级一般设为5或者10,TTL保持默认即可。

  1. MailPlus收发邮件测试

如何防止邮件被拒收

通过上面的步骤即可实现群晖 MailPlus Server 搭建个性化专属邮件系统,但偶尔发现发出的邮件会被邮件服务商列为垃圾邮件或者直接拒收。邮箱其实最担心的就是被拒收和被当成垃圾邮件屏蔽,不然,这个邮箱的作用就不大了,幸运的是,接下来我要给大家讲解一下如何防止邮件被拒收的原理和实现步骤。首先,我给大家普及一下SPFDKIMDMARC的概念:

SPF

发件人策略框架(SPF)只是DNS TXT记录,其中列出了允许为指定域发送邮件的服务器。 这使收件人可以确定电子邮件的确是来自谁发来的电子邮件。 然后,收件人可以根据发件人是否被授权采取措施。 通常,建议采取的措施包括“软失败”或“硬失败”-硬失败建议完全不传递消息,而软失败则建议传递但将其标记为可疑。

DKIM

DKIM或DomainKeys Identified Mail是SPF的补充,并建立了一种对您的域中的外发电子邮件进行数字签名的机制。 通过建立协议来验证发送电子邮件的组织是否有权发送邮件,这可以防止在发件人和收件人之间的传输中可能被更改的电子邮件。

DMARC

简而言之,DMARC允许您发件人指出该邮件受SPF和/或DKIM保护,并指定一条带有清晰说明的策略,以便收件人在电子邮件未通过SPF或DKIM时可以遵循(例如,拒绝邮件,标记为垃圾邮件等)。 DMARC还将提供有关通过和未通过DMARC评估消息的报告。

实现步骤

SPF、DMARC和DKIM这三个设置都要添加域名解析,其中SPF、DMARC直接在域名解析界面添加 TXT 解析,如下:

SPF语法基本解释:根据OpenSPF 的介绍,我编造了一个 SPF 的示例:v=spf1 mx a:pluto.example.net ip4:192.168.0.1/16 ip6:1080::8:800:200C:417A/96 include:aspmx.googlemail.com -all看起来很长的样子,其实很多成分是可选的,我只是尽量把它们都列出来而已,如果拆解看来看是这样的:

v=spf1 这说明这是 SPF 第一版,这个一定要有

mx 这个说明把这个域名上的 MX 记录所对应的服务器加入「信任列表」。可选。

a:pluto.example.net 代表把 pluto.example.net 这个域名 A 记录所对应的 IP 加入「信任列表」。可选。 ip4:192.168.0.1/16 代表把这一段 IPv4 的地址段加入「信任列表」。可选。

ip6:1080::8:800:200C:417A/96 代表把这一段 IPv6 的地址段加入「信任列表」。可选。 include:aspmx.googlemail.com 代表读取这个域名上的 SPF,然后把它们都加入「信任列表」。可选。

-all 拒绝所有,+all 表示接受所有,~all 列表中的除外拒绝 。

ip4

格式为ip4:<ip4-address>或者ip4:<ip4-network>/<prefix-length>,指定一个 IPv4 地址或者地址段。如果prefix-length没有给出,则默认为/32。例如:

"v=spf1 ip4:192.168.0.1/16 -all"
只允许在 192.168.0.1 ~ 192.168.255.255 范围内的 IP

ip6

格式和ip4的很类似,默认的prefix-length/128。例如:

"v=spf1 ip6:1080::8:800:200C:417A/96 -all"
只允许在 1080::8:800:0000:0000 ~ 1080::8:800:FFFF:FFFF 范围内的 IP

a 和 mx

这俩的格式是相同的,以a为例,格式为以下四种之一:

a
a/<prefix-length>
a:<domain>
a:<domain>/<prefix-length>

会命中相应域名的 a 记录(或 mx 记录)中包含的 IP 地址(或地址段)。如果没有提供域名,则使用当前域名。例如:

"v=spf1 mx -all"
允许当前域名的 mx 记录对应的 IP 地址。

"v=spf1 mx mx:deferrals.example.com -all"
允许当前域名和 deferrals.example.com 的 mx 记录对应的 IP 地址。

"v=spf1 a/24 -all"
类似地,这个用法则允许一个地址段。

例如,这是一个比较常见的 SPF 记录,它表示支持当前域名的 a 记录和 mx 记录,同时支持一个给定的 IP 地址;其他地址则拒绝:

v=spf1 a mx ip4:173.194.72.103 -all

include

格式为include:<domain>,表示引入<domain>域名下的 SPF 记录。注意,如果该域名下不存在 SPF 记录,则会导致一个PermError结果。例如:

"v=spf1 include:example.com -all" 即采用和 example.com 完全一样的 SPF 记录

exists

格式为exists:<domain>。将对<domain>执行一个 A 查询,如果有返回结果(无论结果是什么),都会看作命中。

ptr

格式为ptr或者ptr:<domain>。使用ptr机制会带来大量很大开销的 DNS 查询,所以连官方都不推荐使用它。

关于v=spf1

这是必须的,这个表示采用 SPF 1 版本,现在它的最新版本就是第 1 版。

Modifiers

SPF 记录中还可以包括两种可选的 modifier;一个 modifier 只能出现一次。

redirect

格式为redirect=<domain>

将用给定域名的 SPF 记录替换当前记录。

exp

格式为exp=<domain>,目的是如果邮件被拒绝,可以给出一个消息。而消息的具体内容会首先对<domain>执行 TXT 查询,然后执行宏扩展得到。

  1. SPF添加 TXT 解析:
  • 主机记录:@
  • 记录值:v=spf1 mx a:pluto.example.net ip4:192.168.0.1/16 ip6:1080::8:800:200C:417A/96 include:aspmx.googlemail.com -all
  1. DMARC添加 TXT 解析:

注:其中p后参数自己根据情况设置,有none , quarantine 和 reject三种,rua=mailto:后面填写接收反馈报告的邮箱地址。

  1. DKIM设置

打开 MailPlus server 套件,点击“域” -> “选择域名” ->“编辑” -> “高级设置” -> “勾选DKIM签名” -> “填写前缀” -> “点击生成公共密钥”;

  • 在域名解析页面添加 TXT 解析:
  • 主机记录:设置的前缀._domainkey
  • 记录值:v=DKIM1; k=rsa; p=公共密钥

添加域名解析

完成以上域名解析设置,发邮件再也不用担心被拒收了。

继续完善邮件服务器

完成了初步设置以后,现在邮件服务器已经可以正常工作。为了防止遭受垃圾邮件骚扰,建议在MailPlus Server “安全性”选项卡内,启用反垃圾邮件、防毒、验证功能和内容扫描。

干货丨手把手教会群晖Mailplus设置及邮件免拒收(SPF、DMARC、DKIM)插图27
干货丨手把手教会群晖Mailplus设置及邮件免拒收(SPF、DMARC、DKIM)插图29
干货丨手把手教会群晖Mailplus设置及邮件免拒收(SPF、DMARC、DKIM)插图31

内容扫描处之所以保留“将HTML转换为纯文本”不勾选,是因为勾选会导致收件的图片变成链接,看着十分别扭。

干货丨手把手教会群晖Mailplus设置及邮件免拒收(SPF、DMARC、DKIM)插图33

最后再查看威胁监控选项卡,安全功能已全部启用,这样子就可以安心使用Mailplus 来收发邮件了。

干货丨手把手教会群晖Mailplus设置及邮件免拒收(SPF、DMARC、DKIM)插图35

让邮箱名称和DSM用户名不一样

例如:我的管理员账号是 admin,我的邮箱地址是 [email protected],可是我想用 [email protected] 给客人发邮件怎么办?请按照我下面介绍进行设置即可:

发送端设置:进入MailPlus客户端,选择”设置“ –> “SMTP” –> “新增”,添加一个自定义邮箱名称。

  1. SMTP服务器:mail.example.com
  2. 勾选“需要验证“。
  3. 填写验证用户名和密码。
  4. 填写发件人邮箱和名称,这里就可以自定名称了比如邮箱 [email protected],名称为ozss。
干货丨手把手教会群晖Mailplus设置及邮件免拒收(SPF、DMARC、DKIM)插图37

接收端设置:进入 MailPlus Server,选择“邮件投递” –> “别名” –> “添加”,别名填写ozss,下面勾选我们的admin账号。

干货丨手把手教会群晖Mailplus设置及邮件免拒收(SPF、DMARC、DKIM)插图39

完成上述设置后,当外部邮箱发送到 [email protected] 时,MailPlus就知道这是发给用户admin的邮件。

而用MailPlus发出邮件时,我们要手动选择一下使用哪一个邮箱。

体验一下自己搭建的邮件服务器

搭建完成后,MailPlus Server 和普通邮件服务器一样支持 POP 和 IMAP 协议,可以从任何邮件客户端登陆,比如Outlook、Foxmail等等。我们也可以使用群晖的官方手机客户端来收发邮件。

本文固定链接: https://www.eoowo.com/?p=1582 | 火星博客

该日志由 Rainer 于2022年02月28日发表在 淘宝 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: 群晖配置自建邮件服务器 | 火星博客

群晖配置自建邮件服务器:等您坐沙发呢!

发表评论

CAPTCHAis initialing...
快捷键:Ctrl+Enter