Mailcow:设置功能齐全的自托管邮件服务器
设置一个功能齐全的邮件服务器对于系统管理员来说是一个真正的 PAIN,如果您打算将它用于您的公司,您必须互连许多软件和大量测试,尤其是安全性和垃圾邮件......在这篇文章中,我将带您了解我设置全功能邮件服务器的过程,我在互联网上搜索了很多,但没有得到一个很好的答案继续前进..但最终我成功了! .. 它适用于多个域,安全且没有垃圾邮件问题!
给读者
我假设您当然了解电子邮件的工作原理、邮件 DNS 记录、Linux、docker 和 SSL。本指南不适合初学者
如果你没有足够的知识,请坐下来看看这里:
学期
定义
邮件服务器
是发送和接收电子邮件的计算机系统source
MX
用于告诉全世界哪些邮件服务器接受您域的传入邮件source
CNAME
用于将一个名称别名为另一个名称,CNAME 代表规范名称。来源
DKIM
是一种电子邮件身份验证技术,允许接收者检查电子邮件是否确实由该域的所有者发送和授权source
防晒系数
是一种电子邮件身份验证技术,用于防止垃圾邮件发送者代表您的域发送邮件source
DMARC
是一个电子邮件验证系统,旨在保护您公司的电子邮件域不被用于电子邮件欺骗source
邮牛
Mailcow 是一个免费的开源软件项目。 Mailcow 服务器是运行不同邮件服务器应用程序、SOGo、Postfix、Dovecot 等的 Docker 容器的集合。Mailcow 提供了一个现代且易于使用的 Web 界面来创建和管理电子邮件帐户。可以访问官方文档
我不会对不同的开源自托管邮件服务器进行比较,而是我会给你一个很棒的回购,其中包括标记为自托管的很棒的软件,你可以查看电子邮件部分来这里
如果您想了解真实用户对 mailcow 的一些想法,请查看这些 Reddit 讨论:来这里和这里
服务器要求
运行 mailcow 的推荐操作系统是ubuntu 18.04,也不要在 cento8 上使用 cento7 软件包,因为维护人员说:
不要将 CentOS 8 与 Centos 7 Docker 软件包一起使用。您可以创建一个开放式中继。
对于资源,我从 OVH 云提供商那里购买了一个 VPS:
-
2 VCPU
-
4 GB 内存
-
80 GB 存储
Docker安装:
curl -sSL https://get.docker.com/ | CHANNEL=stable sh
systemctl enable docker.service
systemctl start docker.service
Docker-compose 已安装:
curl -L https://github.com/docker/compose/releases/download/$(curl -Ls https://www.servercow.de/docker-compose/latest.php)/docker-compose-$(uname -s)-$(uname -m) > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
如果你有防火墙,你应该允许这些端口:
netstat -tulpn | grep -E -w '25|80|110|143|443|465|587|993|995|4190'
注意:你必须有一个干净的服务器意味着没有其他应用程序或反向代理,因为 mailcow 已经准备好了一切。
好的,现在一切都很好!但还有一件事要验证哪个是我们的 IP !!!如果它是黑名单,我们必须对其进行测试,如果是,这是一个大问题......我们不能再继续了,因为您的邮件将无法投递,这完全取决于您的主机声誉!。
我们可以通过访问此 URLmxtoolbox使用名为 MX toolbox 的在线服务进行检查。
基本 DNS 配置
在我们继续之前,我们必须从任何提供商那里获得一个域名,我从OVH获得一个,我将它委托给AZURE DNS SERVICE,实际上没关系,我们将在任何提供商中具有相同的配置。
我假装我有:
-
根域名 :mymailserver.com
-
服务器 IP 地址 : 1.2.3.4
让我们开始吧 !
创建 A 记录
在您的提供商 DNS 面板中添加这样的A记录
-
名称:邮件
-
类型:A
-
TTL : 默认
-
值:1.2.3.4
您可以使用dig命令进行确认:
dig mail.mymailserver.com +noall +answer
创建 CNAME 记录
在您的提供商 DNS 面板中,像这样为autoconfig添加CNAME记录
-
名称:自动配置
-
类型:CNAME
-
TTL : 默认
-
别名:mail.mymailserver.com
测试它:dig autoconfig.mymailserver.com +noall +answer
像这样为autodiscover添加另一个CNAME记录:
-
名称:自动发现
-
类型:CNAME
-
TTL : 默认
-
别名:mail.mymailserver.com
测试它:dig autodiscover.mymailserver.com +noall +answer
创建 MX 记录
在您的根域中添加一个 MX 域以指向您的邮件服务器域:
-
名称 : @/empty
-
类型:MX
-
TTL : 默认
-
偏好/偏好:10 或 0
-
邮件交换:mail.mymailserver.com
rDNS 配置
在此处获取有关rDNS的更多信息
您可以在server的提供商上配置您的 rDNS,并将生成的domain name更改为您的邮件域mail.mymailserver.com
并用dig -x 1.2.3.4 +noall +answer测试它,应该得到mail.mymailserver.com作为响应。
安全 DNS 记录
验证您的邮件服务器并保护它免受假身份和域欺骗攻击我们必须设置这些记录
SPF 记录
在您的根域中添加TXT记录,如下所示:
-
名称 : @/empty
-
类型:TXT
-
TTL : 默认
-
值 : vu003dspf1 ip4:1.2.3.4 -all
用dig mymailserver.com TXT测试一下
DKIM 记录
设置 dkim 记录需要将公钥插入到此处的记录中,但我们现在不能,因为我们必须安装 mailcow 并获取邮件服务器提供的公钥,我们暂时将其留空。
-
名称:dkim._domainkey
-
类型:TXT
-
TTL : 默认
-
值 : vu003dDKIM1;ku003drsa;tu003ds;su003demail;pu003d
DMARC 记录
您可以为 dmarc 做的最好的事情是在dmarcian上创建一个免费帐户,它将为您提供如下记录:
v=DMARC1; p=reject; rua=mailto:<dmarc email1>; ruf=<dmarc email2>
只需将其添加到您的域 DNS 面板,如下所示:
-
名称:_dmarc
-
TTL:默认
-
值:vu003dDMARC1; pu003d拒绝; ruau003dmailto: dmarc email1 ; rufu003ddmarc email2
测试是:dig _dmarc.mymailserver.com TXT
这就是 DNS 配置,除了 dkim 值外,所有记录都已到位,我们稍后会添加它
安装 mailcow
您需要安装git来克隆服务器中的存储库:
git clone https://github.com/mailcow/mailcow-dockerized
cd mailcow-dockerized
你现在在 repo 中,所以运行脚本./generate_config.sh来生成你的配置,对于主机名添加mail.mymailserver.com,它将自动从Let'svEncrypt请求证书。
要运行您的邮件服务器,只需使用以下命令:
docker-compose pull
docker-compose up -d
您需要等待一段时间才能下载所有容器、运行它们并提供 SSL 证书。
访问的默认凭据是admin和moohoo(您必须自己更改)
使用green icon验证所有容器是否正常,如下所示:

做得好!让我们继续添加域和邮箱
配置邮牛
我们的邮件服务器现在正在工作,但没有配置域或邮箱。在本节中,我们将一步一步来..让我们开始吧!
添加您的域
登录到您的 mailcow 管理面板:
-
在顶部栏选择
configuration然后选择mail setup -
点击
add domain然后添加你的根域mymailserver.com并点击Add domain and restart SoGo
3.再次选择configuration然后点击configuration & details
-
在水平菜单中点击
configuration并点击ARC/DKIM keys -
滚动到底部并使用您的域
mymailserver.com填写domain/s表格
6.关于选择器类型dkim
7.在DKIM key length上选择2048,点击Add
8.复制生成的以v=DKIM1;k=rsa;t=s;s=email;p= ...开头的公钥
-
转到您的 DNS 面板并使用生成的值修改
TXT记录 -
等到您的 DNS 修改传播
您可以使用此站点验证SPF、DKIM和DMARC的配置,您应该得到这样的结果(不要忘记将dkim作为选择器` :

为创建一个邮箱 mymailserver.com
默认情况下,mailcow 为每个域提供10GB的存储空间,并且该域下的每个邮箱都有3GB的存储空间.. 所以可以根据需要随意修改它们,
要创建邮箱,请按照以下步骤操作:
1.在顶部栏的configuration下单击mail setup并选择邮箱`
2.点击add mailbox
3.选择一个username,你的域名(它会自动加载)然后添加密码并点击Add
- 在顶部栏点击
apps,然后点击webmail,您将被重定向到SoGoUI,使用您新创建的邮件和密码登录
5.点击底部绿色图标,出现发送邮件界面
-
在您的浏览器中打开另一个选项卡并转到此站点:mail-tester.com并复制邮件地址。
-
返回您的
SoGo界面并使用该邮件发送邮件,请确保在正文中添加一些至少包含两段的文本。 -
等待 10 秒,然后转到mail-tester.com并点击
then check your score
并且 BOOM 你应该得到这个结果 You Can Send :

随意向您的朋友和您自己的 Gmail 地址发送邮件,别担心 Gmail 仍然不知道您的邮件服务器,所以他会将其视为垃圾邮件,只需unspam即可!例如,尝试将其发送到 Zoho Mail。再次使用我建议使用的其他工具进行测试:
-
Mxtoolbox SuperTool并选择
test mail server -
Dkimvalidator并向给定地址发送电子邮件,确保所有测试都像
dmarcian.com测试一样通过。
将另一个域添加到 mailcow
我假设我们有第二个域:myseconddomain.com。我不会重复相同的步骤,这很容易,所以让我们开始吧:
1.创建一条记录:mail.myseconddomain.com,指向你的主机1.2.3.4
2.创建CNAME记录:autoconfig指向mail.myseconddomain.com
3.创建一条CNAME记录:autodiscover指向mail.myseconddomain.com
4.创建MX记录:在根域上添加10作为优先级,mail.myseconddomain.com作为目标
-
像我们之前做的那样创建 SPF 记录
-
像我们之前做的那样创建一个 DMARC 记录
-
创建一个 DKIM 记录,同时像我们之前所做的那样添加您的新域,并将生成的
DKIM key复制到您的DKIM记录中。 -
验证您的记录
-
在你的新域下添加一个邮箱并发送电子邮件到mail-tester.com和dkimvalidator.com,你应该得到 10/10 sweetheart :)
最后的想法
不要直接发送大量电子邮件,您将被阻止! ...因此,从第一周每天发送 20 封电子邮件开始,然后在下周尝试发送 80 封电子邮件... 2 个月后,您可以发送大量邮件,例如 1000 封电子邮件,但请记住,您需要将list-unsubscribe headers添加到您的后缀中,以允许用户取消订阅您的时事通讯/订阅。
请在 Twitter 上关注我@hatem ben tayeb
更多推荐

所有评论(0)