Mailu.io是一款免费开源且性能强大、功能丰富的域名邮箱系统。它基于Docker, 具有部署简单,可移植性高,备份方便等多种优势。之前,我们介绍过Poste邮箱系统的搭建;Poste已经很久不再更新了,而Mailu则是Poste的升级版,一直稳定更新。
今天,我们就来介绍如何搭建并使用Mailu.io域名邮箱。类似的域名邮箱系统,我们还推荐iRedMail与Zimbra, 您可以自行比较并选择喜欢的程序。本文作者为香菇肥牛,原文链接为https://qing.su/article/mail-hosting-with-mailu-io.html, 转载需注明原文链接。
1, 系统环境要求
由于Mailu基于Docker, 因此几乎可以在任何版本的Linux发行版上安装使用。安装前,请确保您的服务器有2 GB的内存,并拥有一个独立IP地址。
在安装之前,您需要确保您的VPS的25端口是开放的。您可以在您的VPS上执行下面的命令来测试25端口是否开放。
1 | telnet smtp.aol.com 25 |
如果看到类似下面的回显,则说明端口是开放的:
1 2 3 4 | Trying 74.6.141.50... Connected to smtp.aol.g03.yahoodns.net. Escape character is '^]'. 220 smtp.mail.yahoo.com ESMTP ready |
如果显示超时,说明25端口不开放;您需要向主机商申请开放25端口,或者更换一台VPS.
本文中,我们将在一台Ubuntu 20.04 LTS 64 bit操作系统的VPS中安装。在其他操作系统中的安装步骤类似。
2, 主机名与DNS设置
设置好主机名(服务器名, Hostname)是所有邮件服务器必不可少的一步,否则在发信时将会遇到各种错误。
如果您的域名为example.com, 那么我建议您的邮件服务器主机名可以设置为mail.example.com或者mx.example.com. 如果您不知道如何设置服务器名,请参考我们的图文视频教程。
下文中,我们将以mx.qing.su作为主机名介绍整个系统的部署。当您设置好主机名之后(以mx.qing.su为例),在SSH中执行命令:
1 | hostname |
此时您应当看到系统显示mx. 如果系统显示mx.qing.su, 说明主机名设置错误,请重新设置。
在SSH中执行命令:
1 | hostname -f |
此时您应当看到系统显示mx.qing.su.
设置好主机名之后,您还需要设置DNS解析记录。DNS记录的设置分为两部分,一部分需要在搭建邮箱之前设置,另一部分(DKIM)在搭建邮箱之后设置。我们先介绍第一部分。假设您的服务器IP地址为88.88.88.88, 那么您需要到您域名的DNS服务提供商处,添加下面的五条记录:
- 将域名qing.su设置任意一条A记录或者ALIAS记录,值为任意。如果您不使用该域名做网站,您可以设置一条A记录,解析到127.0.0.1. 请注意,根域名不能设置CNAME记录。
- 将域名mx.qing.su设置A记录,解析到88.88.88.88
- 将域名qing.su设置MX记录,优先级为10,解析值为mx.qing.su
- SPF: 将域名qing.su设置TXT记录,解析值为”v=spf1 mx ~all”
- DMARC: 将域名_dmarc.qing.su设置TXT记录,解析值为”v=DMARC1; p=none; pct=100; rua=mailto:admin@qing.su”
然后,您需要到您的VPS服务商处,为您的IP地址设置逆向DNS记录(Reverse DNS, PTR), 将88.88.88.88解析到mx.qing.su.
设置好这些之后,我们就可以开始部署Mailu域名邮箱了。
3, 安装Docker与Docker Compose
前面说过,Mailu基于Docker. 这里我将以Ubuntu 20.04 LTS操作系统为例,简要记录Docker与Docker Compose的安装。如果您对Docker非常了解,可以跳过这一部分。如果您使用的是其他操作系统,可以在这里(https://docs.docker.com/engine/install/, https://docs.docker.com/compose/install/)找到对应的安装步骤。
安装Docker Engine:
1 2 3 4 5 6 | apt-get update && apt-get upgrade apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" apt-get update apt-get install docker-ce docker-ce-cli containerd.io |
安装Docker Compose:
1 2 | curl -L "https://github.com/docker/compose/releases/download/1.27.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose |
4, 配置Mailu服务器
Mailu服务器提供了一个自动生成配置文件的网页,非常方便。因此,我们将使用这个网页来生成配置文件。它的地址是https://setup.mailu.io/
打开网页后,第一步是选择版本与Docker管理方式。这里我们选择最新版1.7, Docker管理方式选择Docker.
第二步,需要设置路径与域名信息。请按照下图填写,并替换为您的域名。请注意,Main mail domain and server display name应该填写您的根域名,比如我这里是qing.su; 而Linked Website URL, 则填写您的邮件服务器主机名,这里我们填写https://mx.qing.su. 在TLS certificates这里,我们选择letsencrypt, 系统将会自动帮我们生成Let’s Encrypt证书。您也可以选择自己提供证书。下方的Enable the admin UI请务必勾选,否则系统将不会安装Web管理面板。
第三步,选择网页邮箱的面板。这里可以选择Roundcube和Rainloop, 您可以根据个人偏好来选择。我这里推荐Rainloop,它更美观,且对移动端的适配更好。Rainloop支持中文显示。下面的三个选项分别是杀毒、WebDAV、邮件代收,您可以根据自己的需要来勾选。
第四步,配置IP与主机名。请在IP listen address中填写您服务器的IP地址,比如88.88.88.88. 第二行是设置Docker的子网,一般保持默认即可。IPv6建议不启用。Unbound resolver建议启用。最后一栏,填写您的服务器的长主机名,我这里是mx.qing.su.
第五步,也是最后一步,选择数据库。这里我们选择最简单的Sqlite即可。您也可以选择其他的数据库,比如MySQL或者PostgreSQL.
选择完毕后,点击Setup Mailu, 系统就会自动帮你生成好配置文件了,如下图。
5, 运行Mailu服务器
按照上述步骤生成好Mailu配置文件,就可以运行Mailu服务器了。回到SSH, 执行:
1 2 | mkdir /mailu cd /mailu |
然后找到之前那个页面生成的配置文件链接,下载到/mailu文件夹中:
1 2 | wget http://setup.mailu.io/1.7/file/edda7279-qing-su-qing-su-04773fdf23f9/docker-compose.yml wget http://setup.mailu.io/1.7/file/edda7279-qing-su-qing-su-04773fdf23f9/mailu.env |
最后,使用Docker compose运行。
1 | docker-compose -p mailu up -d |
初次使用,系统将会下载几个Docker镜像,需要数分钟的时间。等系统提示完成后,Mailu就处于运行状态了。
部分朋友在初次运行Mailu的时候会遇到类似于下图的报错:
如果遇到这种情况,您可以编辑docker-compose.yml文件,删除掉所有绑定了[::1]地址与端口的行,然后重新运行上面的命令即可。
6, 使用Mailu域名邮箱
在第一次登录Mailu服务器后台面板之前,需要新建一个管理员账户。在SSH中执行:
1 | docker-compose -p mailu exec admin flask mailu admin hello example.com qing.su |
这样,我们就创建了一个用户名为hello@example.com, 密码为qing.su的管理员账户。请替换为您需要的值。
创建完毕,您就可以在浏览器中访问https://mx.qing.su/admin登录您的管理员面板了,如下图。
点击左侧Mail Domains, 就能管理我们的邮箱域名。在域名管理界面,点击右上角New domain, 即可添加域名。点击下图中的红框部分,即可添加用户;点击绿框部分,则进入域名详情页。
点击上图中的红框,进入用户管理界面,如下图:
这里我们可以输入邮箱前缀,密码,姓名。下方的Features and quotas可以设置邮箱容量,并且可以设置是否允许IMAP和POP3客户端登录收信。设置完毕后,点击Save, 就添加好了用户。
在域名管理界面,点击之前那张图的绿框部分,则进入了域名详情页。我们点击右上角的Generate keys, 即可生成DKIM记录。如下图。
根据上图的信息,您需要去您的DNS服务器运营商设置域名的DKIM记录。比如,以我的qing.su域名为例,我需要设置下面的DKIM记录:
- 将域名dkim._domainkey.qing.su设置TXT记录,解析值为”v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDK8nX8NbQ/16bb7zUqZif39emugOQpBDTXeLTqKhmrhPHFt5RgrDj9ibL18ovXKsQONjXZ+qNE407+KQZWcVLFvCQ6jtl1ojSfnJGeltGRqgfjw0nIAFQ9P6UVO5fiyrnxR4NZ+MDKvsv33NMgJxpEH6O8hQ/K2mDM+mDcIIbOwQIDAQAB”
这样,我们就完成了全部的DNS设置。此时,您的域名邮箱已经全部搭建并配置完毕,可以收发信了。
访问https://mx.qing.su就会自动跳转到网页邮箱的登录界面。如果您在配置时选择了Rainloop, 则第一次登录时可以在界面上选择语言,比如简体中文。
我们使用mail-tester.com测试发信,可以看到评分为满分10分。
综上,我们使用了Mailu.io这款基于Docker的多功能的邮件服务器程序,在VPS上搭建了属于自己的域名邮箱。如果您有任何疑问,欢迎在这里留言,我将尽力解答。如果您喜欢这篇文章,欢迎转发给朋友们。
本文作者为香菇肥牛,原文链接为https://qing.su/article/mail-hosting-with-mailu-io.html, 转载需注明原文链接,谢谢。
ssl证书呢?
证书自动部署Let’s Encrypt, 也可以自己提供证书
有个问题,如果多域名的话怎么配置
直接在后台添加域名就可以
您需要到您的VPS服务商处,为您的IP地址设置逆向DNS记录(Reverse DNS, PTR), 将88.88.88.88解析到mx.qing.su.
请问这个自己可以解析吗?必须得vps服务商吗?
只能在服务商那里设置,一般来说服务商提供的后台面板里面都有这个选项,可以自己设置。
这个太厉害了
我都是用现成的
你这咋突然搞这么简单的模版来用了
欢迎K总,这个优化得比较好,速度快一点
管理界面可以不要搞 ssl,通过 nginx 来反代嘛?
可以的,生成配置文件的时候可以选择不要SSL.
如果webmail要在内网使用,IP也是内网的,这种的设置了能用吗?我在CentOS下都安装好了,没有错误,但开网页要进入管理员配置界面的时候跟我说页面载入出错,连接失败。
我也是,重装了差不多10次,也是连接失败。我找懂的人帮我看了,是ssl证书配置失败。他说,他从前搭建的时候也是,而且反复重装会导致反复请求ssl造成你的域名在一周内被停止申请ssl证书资格。前两天我又搭建,又是ssl配置失败。然后我找这个人帮我弄,他重新生成了配置,和作者博文中的配置不完全一样,一次性搞定了。于是这个vps再也不敢碰了,就这样吧。
请问博主全程安装你的步骤操作的,到最后打开网页提示403这是什么问题呢?
谢谢,写得真仔细
博主你好,感谢提供这么详细的教程,已经顺利搭建!但是有一个小问题,我使用mail-tester.com测试发信,得分是4.5分,


请问有什么办法可以提升这个分数吗,我测试了gmail,直接进的垃圾箱……
1.985那一项不用管,是和你邮件内容有关的,无视即可。3.558那项说明你的服务器IP地址在Spamhaus SBL黑名单里面,这个非常关键,建议你换个服务器或者换个IP。
还有一个问题想请教一下博主大大,如果我想把这个搭建的邮箱当作smtp来用,放到wordpress里面,smtp服务主机我应该填的是类似mx.qing.su这个么,SMTP 安全ssl,SMTP 端口465,SMTP 密码是否是填写登陆邮箱的密码?(qq邮箱会有授权码,但是我们搭建的这个我似乎没有看到)希望能抽空回复,感谢!
已经解决了!
嗯嗯,抱歉回复迟了
想添加域名该怎么操作
已解决,谢谢
嗯嗯,抱歉回复迟了
poste还在更新呢,官网看了下最近更新时间是2021年5月。
删除掉所有绑定了[::1]地址与端口的行,然后重新运行上面的命令. 还是报一样的错,该怎么解决
没有遇到过这样的问题,可以加我QQ 694082200 我帮你看看
这样自主搭建的话,邮件发送有限制吗 ? 我想起来之前朋友的一个需求
只要主机商没有限制,这个就没有限制的~
博主您好,我按照你的文档搭建完成之后,使用smtp协议调用邮件服务器发送邮件的时候,收到的邮件发送人是一个不知道哪里来的邮箱,但是这个邮箱里面有我服务器的编号信息(我之前的hostname是服务器编号),已经按照文档改过了,这种问题博主有碰到吗
发送的时候header包含服务器hostname是正常情况~
博主你好,我用这个自建后,使用本地或其他测试都可手法邮件,但是放在php的某些插件上无法发送,你有遇到过这种问题吗
Hosting
nice and quality content
nice
nice
very tahs you so
very nice
very nice
very nice
very nice
very nice
nice
very nice
FSK Kişisel Yazılım ve Geliştirme Günlüklerim
very nice
very nice
ankara avukat önerisi
air springs
than ks
thannks
thans
Minecraft Legends APK İndir (Son Sürüm) 2023 ApkMavi.com
thsnks
Son Dakika Haberler
thsnks
Wouw, amazing!
does dunkin take apple pay
Kişisel Ecza
Beylikdüzü pet kuaför
Beylikdüzü pet kuaför
Beylikdüzü pet kuaför
Yes.. Nice
Antalya uygun fiyatlı kiralık daireler
Ev Dekorasyon Fikirleri
lionfollow
Guldpris.valutasek.com erbjuder liveuppdateringar av guldpriser