使用mailu.io搭建域名邮箱

自己之前用的是qq的域名邮箱,但是不能添加邮箱了,提示可以转移到企业邮箱,但是转移了,提示不能创建企业。。。回过头来就不能用了。于是就想着自己搭建一个域名邮箱,偶尔撸羊毛的时候创建邮箱也方便一点。

mailu.io是一个基于docker的开源邮箱系统,搭建相对比较容易一些。

github:https://github.com/Mailu/Mailu

1、docker安装可以参考:https://zsxwz.com/2020/03/25/

ubuntu20可以直接apt安装:

apt install docker-ce docker-compose

2、主机名设置

编辑/etc/hosts添加:

66.66.66.66 mx.zsxwz.com mx
# 66.66.66.66是你的ip地址,mx是邮箱管理面板的二级域名

dns设置,可以先添加一个A记录,名称mx,内容你的ip地址,66.66.66.66。域名设置比较麻烦,后面还需要添加更多的记录。

修改/etc/hostname

mx
# 修改成和hosts的一样

修改主机名

hostname -F /etc/hostname

3、生成mailu配置文件:

https://setup.mailu.io/

1.打开网页后,第一步是选择版本与Docker管理方式。这里我们选择最新版1.7, Docker管理方式选择Docker

2.需要设置路径与域名信息。请按照下图填写,并替换为您的域名。请注意,Main mail domain and server display name应该填写您的根域名,比如我这里是zsxwz.com; 而Linked Website URL, 则填写您的邮件服务器主机名,这里我们填写https://mx.zsxwz.com 在TLS certificates这里,我们选择letsencrypt, 系统将会自动帮我们生成Let’s Encrypt证书。您也可以选择自己提供证书。下方的Enable the admin UI请务必勾选,否则系统将不会安装Web管理面板。

3.选择网页邮箱的面板。这里可以选择Roundcube和Rainloop, 您可以根据个人偏好来选择。我这里推荐Rainloop,它更美观,且对移动端的适配更好。Rainloop支持中文显示。下面的三个选项分别是杀毒、WebDAV、邮件代收,您可以根据自己的需要来勾选。

4.配置IP与主机名。请在IP listen address中填写您服务器的IP地址,比如66.66.66.66. 第二行是设置Docker的子网,一般保持默认即可。IPv6建议不启用。Unbound resolver建议启用。最后一栏,填写您的服务器的长主机名,我这里是mx.zsxwz.com

5.也是最后一步,选择数据库。这里我们选择最简单的Sqlite即可.

选择完毕后,点击Setup Mailu, 系统就会自动帮你生成好配置文件了

4、安装mailu服务

mkdir /mailu
cd /mailu

# 两个上一步生成的配置文件下载回来
wget http://setup.mailu.io/1.7/file/xxxxxxxxxx/docker-compose.yml
wget http://setup.mailu.io/1.7/file/xxxxxxxxxxx/mailu.env

# 安装
docker-compose -p mailu up -d

如果报错,编辑docker-compose.yml文件,删除掉所有绑定了[::1]的ipv6地址与端口。

5、使用邮箱:

需要先设置一下管理员帐号

docker-compose -p mailu exec admin flask mailu admin zsxwz zsxwz.com 123456
#生成一个用户名为zsxwz@zsxwz.com的管理员邮箱,密码为123456。也可以使用其他域名。

docker-compose -p mailu exec admin flask mailu user hello zsxwz.com 123456
# 生成一个用户名为hello@zsxwz.com的用户邮箱,密码为123456

邮箱dns解析设置,登录之后选择mail domain,设置,生成密钥文件。

如果你的域名比如zsxwz.com,如果没有网站,可以先添加一个A记录,名称@,地址可以是127.0.0.1

然后添加mx,txt,spf记录

6、之后就可以正常收发邮件了,测试了一下,gmail,163和aliyun邮箱可以正常收到邮件,qq,yandex和outlook容易进垃圾邮件箱。

如果你vps配置不太好,发送大附件,可能延迟比较严重。

自己廉价vps搭建的,延迟比较严重主要还是拿来收件用的,平时主用还是gmail。https://zsxwz.com/2020/09/19/

评论 8

  1. Roy

    楼主,碰到了995端口的问题,可以帮忙看一下么,感谢
    “`bash
    Creating network “mailu_default” with driver “bridge”
    Creating mailu_front_1 …
    Creating mailu_front_1 … error
    Creating mailu_redis_1 …
    WARNING: Host is already in use by another container

    ERROR: for mailu_front_1 Cannot start service front: driver failed programming external connectivity on endpoint mailu_front_1 (32de364Creating mailu_resolver_1 … done
    Creating mailu_redis_1 … done
    Creating mailu_admin_1 … done

    ERROR: for front Cannot start service front: driver failed programming external connectivity on endpoint mailu_front_1 (32de364c62f3293e70d52073b9bd6ac619b3701264056ee26bd547f096cc0375): Error starting userland proxy: listen tcp 119.28.77.197:995: bind: cannot assign requested address
    ERROR: Encountered errors while bringing up the project.
    “`

    • zsxwz

      几个常见的错误解决方法:
      starting userland proxy: listen tcp 119.28.77.197:995:
      端口可能已被占用,可以使用lsof -i:995查看占用端口的程序。

      防火墙记得放行端口。

      如果自己的服务器没有ipv6地址,记得删除yml配置文件当中的ipv6地址::1
      https://github.com/Mailu/Mailu/issues/641

      • 123

        我也是这个问题,但是对应端口没有任何占用,也没有服务。防火墙也是关闭状态

  2. Rez

    为什么我安装成功后没有mail domains的菜单

    • zsxwz

      后台地址:https://你的域名/admin

      • Rez

        添加用户的只能通过命令加吗?我没找到相应的菜单呢

  3. Nover

    话说博主没有用nginx反代吗?我按照这个流程,用了nginx反代,会出现多次重定向错误,打不开网站。

    • zsxwz

      忘了,很久没玩了。

留言

* - 必填