宝塔自带的邮件管理器,太简陋了,而且也极容易出问题。大鸟一直想找个替代品,看到有人推荐Mailu,试用了下,发现非常不错。
Mailu.io是一款免费开源且性能强大、功能丰富的域名邮箱系统。它基于Docker, 具有部署简单,可移植性高,备份方便等多种优势。虽然Poste已经很久不再更新了,但是Mailu则是Poste的升级版,一直稳定更新。
这篇文章就来用宝塔面板docker方式来搭建这个域名邮箱系统~~~~~
由于Mailu基于Docker, 因此几乎可以在任何版本的Linux发行版上安装使用。安装前,请确保您的服务器有2 GB的内存,并拥有一个独立IP地址。
测试地址
不保证时效,有需要的可以看看,支持注册~~~
webmail:https://mx.ctho.me
mail:https://mx.ctho.me/admin
1、准备
1)服务器一台并且安装好宝塔面板并且内存不低于2G
2)宝塔面板(宝塔面板,一键全能部署及管理,送你3188元礼包,点我领取https://www.bt.cn/?invite_code=MV9ub2NxdmI=)
3)安装好docker管理器(这个略过)
4)宝塔安装好Docker Compose,一行命令搞定:
pip install docker-compose
如果提示:pip: command not found.... 使用如下命令解决~~
wget https://bootstrap.pypa.io/get-pip.py python get-pip.py pip -V # 查看pip版本
5)准备好域名
2、测试25端口
一般的国外主机都是开通了25端口的,大鸟用的这台测试机器是Evolution Host的免费vps,如果你的博客流量不错,可以尝试申请,机器配置4H/4G/80G SSD/1G端口~~
- Evolution Host 免费VPS 申请 – 4H/4G/80G SSD/1G端口
在安装之前,您需要确保您的VPS的25端口是开放的。您可以在您的VPS上执行下面的命令来测试25端口是否开放。
telnet smtp.aol.com 25
如果看到类似下面的回显,则说明端口是开放的:
Trying 67.195.228.102... Connected to smtp.aol.com. Escape character is '^]'. 220 smtp.mail.yahoo.com ESMTP ready
如果显示超时,说明25端口不开放;您需要向主机商申请开放25端口,或者更换一台VPS.
3、设置主机名
设置好主机名(服务器名, Hostname)是所有邮件服务器必不可少的一步,否则在发信时将会遇到各种错误。
如果您的域名为example.com, 那么我建议您的邮件服务器主机名可以设置为mail.example.com或者mx.example.com.
1)需要编辑/etc/hosts文件,找到含有你的VPS的IP地址的那一行;如果没有,则添加一行。内容如下:
88.88.88.88 mx.ctho.me mx
其中, 88.88.88.88是你的服务器IP地址,后面依次填入长主机名和短主机名,切记不可填返。
编辑好后,在SSH中执行:
echo "mx" > /etc/hostname hostname -F /etc/hostname
这样,就设置好了主机名。此时我们检查一下是否设置正确。首先,执行:
hostname
此时我们应该只能看到短主机名mx. 如果你看到了长主机名mx.ctho.me, 说明之前设置错误,请重新检查上述步骤。然后,执行:
hostname -f
此时,我们应该只能看到长主机名mx.ctho.me
4、设置解析
1)设置好主机名之后,我们还需要设置DNS解析记录。DNS记录的设置分为两部分,一部分需要在搭建邮箱之前设置,另一部分(DKIM)在搭建邮箱之后设置。我们先介绍第一部分。假设您的服务器IP地址为88.88.88.88, 那么您需要到您域名的DNS服务提供商处,添加下面的五条记录:
- 将域名ctho.me设置为指向服务器IP的A记录或者ALIAS记录。如果您不使用该域名做网站,您可以设置一条A记录,解析到127.0.0.1. 请注意,根域名不能设置CNAME记录。
- 将域名mx.ctho.me设置A记录,解析到88.88.88.88
- 将域名ctho.me设置MX记录,优先级为10,解析值为mx.ctho.me
- SPF: 将域名ctho.me设置TXT记录,解析值为”v=spf1 mx ~all”
- DMARC: 将域名 _dmarc.ctho.me 设置TXT记录,解析值为”v=DMARC1; p=none; pct=100; rua=mailto:admin@ctho.me”
2)然后,需要到你的VPS服务商处,为您的IP地址设置逆向DNS记录(Reverse DNS, PTR), 将88.88.88.88解析到mx.ctho.me.
这样,我们就全部设置好了主机名hostname, 可以进行接下来的其他操作了。
3)注意:以上域名修改为自己的的域名
5、配置Mailu服务器
1)Mailu服务器提供了一个自动生成配置文件的网页,非常方便。
2)配置的网址:https://setup.mailu.io/
3)打开网页后,第一步是选择版本与Docker管理方式。这里我们选择最新版1.7, Docker管理方式选择Docker.
4)需要设置路径与域名信息。请按照下图填写,并替换为自己的域名。
注意:
Main mail domain and server display name应该填写您的根域名,比如我这里是ctho.me
Linked Website URL:则填写您的邮件服务器主机名,这里我们填写https://mx.ctho.me
在TLS certificates这里,我们选择letsencrypt, 系统将会自动帮我们生成Let’s Encrypt证书。您也可以选择自己提供证书。
下方的Enable the admin UI请务必勾选,否则系统将不会安装Web管理面板。
5)选择网页邮箱的面板。这里可以选择Roundcube和Rainloop, 您可以根据个人偏好来选择。我这里推荐Rainloop,它更美观,且对移动端的适配更好。Rainloop支持中文显示。下面的三个选项分别是杀毒、WebDAV、邮件代收,您可以根据自己的需要来勾选。
6)配置IP与主机名。
注意:
请在IP listen address中填写您服务器的IP地址,比如图示。
第二行是设置Docker的子网,一般保持默认即可。IPv6建议不启用。
Unbound resolver建议启用。
public hostnames,填写您的服务器的长主机名,我这里是mx.ctho.me。
7)最后一步,选择数据库
这里我们选择最简单的Sqlite即可。
您也可以选择其他的数据库,比如MySQL或者PostgreSQL。
8)选择完毕后,点击Setup Mailu, 系统就会自动帮你生成好配置文件了,如下图。
6、运行Mailu服务器
1)按照上述步骤生成好Mailu配置文件,就可以运行Mailu服务器了。回到SSH, 执行:
mkdir /mailu cd /mailu
2)然后找到之前那个页面生成的配置文件链接,下载到/mailu文件夹中:
wget http://setup.mailu.io/1.7/file/360e122d-9ab8-47f9-9519-bb8c1d0042db/docker-compose.yml wget http://setup.mailu.io/1.7/file/360e122d-9ab8-47f9-9519-bb8c1d0042db/mailu.env
3)最后,使用Docker compose运行。
docker-compose -p mailu up -d
初次使用,系统将会下载11个Docker镜像,需要数分钟的时间。等系统提示完成后,Mailu就处于运行状态了。
4)宝塔中部署遇到的错误
##IPv4端口问题##
问题如图:(这里提示80端口被占用)
解决:/www/server/panel/vhost/nginx 之后,修改 0.default.conf、phpfpm_status.conf 两个文件的默认端口为其他。
###IPv6端口问题##
这里的问题截图如下:依然是端口被占用的问题,不过这个解决的方法就是编辑docker-compose.yml文件,删除掉所有绑定了[::1]地址与端口的行,然后重新运行上面的命令即可。
如果不会删除,看图:
5)运行成功截图
6)在第一次登录Mailu服务器后台面板之前,需要新建一个管理员账户。在SSH中执行:
docker-compose -p mailu exec admin flask mailu admin admin ctho.me ctho.me
这样,我们就创建了一个用户名为admin@ctho.me, 密码为ctho.me,的管理员账户。请替换为您需要的值。
7)创建完毕,您就可以在浏览器中访问https://mx.ctho.me/admin登录您的管理员面板了~
7、配置Mailu域名邮箱
以上搭建运行之后,我们需要登录配置该邮件服务器了。
1)您就可以在浏览器中访问https://mx.ctho.me/admin登录您的管理员面板了,如下图。
2)登录之后,整个面板的截图
3)点击左侧Mail Domains, 就能管理我们的邮箱域名。在域名管理界面,点击右上角New domain, 即可添加域名。
4)点击上图中的红框中email的图标,进入用户管理界面,添加右上角的add user 即可添加用户,如下图:
这里我们可以输入邮箱前缀,密码,姓名。下方的Features and quotas可以设置邮箱容量,并且可以设置是否允许IMAP和POP3客户端登录收信。设置完毕后,点击Save, 就添加好了用户。
4、在域名管理界面,点击下图的标注红框的地方,则进入了域名详情页。我们点击右上角的Generate keys, 即可生成DKIM记录。如下图。
根据上图的信息,您需要去您的DNS服务器运营商设置域名的DKIM记录。比如,以我的ctho.me域名为例,我需要设置下面的DKIM记录:
- 将域名dkim._domainkey.ctho.me设置TXT记录,解析值为:
v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDcPNRm7UmMYEfsdyK3u6aCbdK6toN4s4TRSlZxL0e5dIEdiVaL5Tr7eFPOl039YO9zg0YmprW09CT7yKuxrxTJ6kn/gZZvtHkv6kuSSXkQXIe6/rryUmFWzeBGTRMkh5ZFitHsI2lkwDw7KUjzCQvMgMIxx+jqa3EbbDkJcThuiQIDAQAB
这样,我们就完成了全部的DNS设置。此时,您的域名邮箱已经全部搭建并配置完毕,可以收发邮件了。
8、网页邮箱
1)访问https://mx.ctho.me就会自动跳转到网页邮箱的登录界面。如果您在配置时选择了Rainloop, 则第一次登录时可以在界面上选择语言,比如简体中文。
2)效果图
3)收发邮件
实测,国内的163、QQ邮箱,都没有进垃圾桶,可以正常收发。
9、开启注册
邮箱系统支持注册,具体看看如何设置。
1)点击Mail domain 之后点击红框部分进入设置
2)点击 Enable sign-up 开启注册,maximum user count 表示最大注册人数,根据需要填写~~
3、效果
打开网址:https://mx.ctho.me/admin 找到sigin up 开始注册
10、邮件发信测试
1)测试发信
网址:https://www.mail-tester.com/
2)查询反向 DNS 是否成功的
https://mxtoolbox.com/ReverseLookup.aspx
可以看到下面的页面,输入我们的 IP 地址,点击 “Reverse Lookup” 进行查询。
11、最后
安装还算简单,但前期的设置稍微麻烦点,不过,docker安装你值得拥有。
宝塔自带的邮件服务器管理器,功能太过简陋,而且也很容易出问题。如果你希望找要给替代品,那么Mailu是一个很好的选择~