宝塔面板Docker搭建基于Mailu.io的域名邮箱

宝塔自带的邮件管理器,太简陋了,而且也极容易出问题。大鸟一直想找个替代品,看到有人推荐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.confphpfpm_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是一个很好的选择~

广告栏+++++++蜜糖商店|大哥云| 搬瓦工JMS|红莓网络| Mielink|萌喵加速| 飞鸟云

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注