前言:
1、我这里用的是mailu的邮局系统。有兴趣的朋友可以去它的github官方网址查看:https://github.com/Mailu/Mailu
2、用到的docker-compose配套的配置文件地址:https://github.com/scjtqs/docker-mail
3、这里用到了docker-compose工具,对于群晖之类的无法安装docker-compose的环境,我这里提供了docker版的docker-compose工具:https://hub.docker.com/r/scjtqs/docker-compose
安装环境情况,我这里介绍如下几种情况的安装:
1、具有固定ip的云服务器。
2、具备公网ip的家庭宽带
3、不具备公网ip的家庭宽带
一、具备固定ip的云服务器。
1、程序安装:
- 这种服务器,可以直接使用全套原版的镜像安装,因为具备80端口,原版镜像的所有域名的证书生成,都需要A记录到一个具备80端口的服务器。
- 当然,也可以直接使用我给出的docker-compose的配置进行安装。
git clone https://github.com/scjtqs/docker-mail docker-mail
cd docker-mail
- 修改mailu.env中的参数,以及cetbot-dns-dnspod-credentials.ini 中的参数(仅支持dnspod.cn)。
- 如果不知道邮箱填啥,就填账号邮箱:
- 修改docker-compose.yml中
front
的ports信息:将里面的 – “9086:80“`和 – “9087:443” 改成 – “80:80” 和 – “443:443″。 - 修改完成后直接
docker-compose up -d
就安装完成。 - 安装完成后,需要配置admin用户的密码:docker-compose exec admin flask mailu admin admin scjtqs.com PASSWORD 其中的scjtqs.com和PASSWORD都替换成你自己的参数。
- 防火墙打开几个tcp端口:web服务的两个 80和443。mail的 25,110,143,465,587,993,995。
2、解析配置
- 登录dnspod.cn,找到你的域名的解析设置。
- 添加几个子域名,例如 smtp,imap,mail亦或者www。并将它们用A记录或者AAA记录(ipv6),解析到你的云服务器ip。
- 添加@字域名的mx记录,可以添加多个,配置优先级,优先级数值越小,等级越高:
- 值得注意的是,你配置的这些mx记录的子域名,都必须能解析到你的服务器,建议直接动态解析到A记录,而不是cname。
- 配置spf信息:添加一个@的txt解析记录,内容为:
v=spf1 a mx -all
如果你的mx记录时cname的话,就使用v=spf1 mx -all
二、具备公网ip的家庭宽带
1、程序安装:
git clone https://github.com/scjtqs/docker-mail docker-mail
cd docker-mail
- 修改mailu.env中的参数,以及cetbot-dns-dnspod-credentials.ini 中的参数(仅支持dnspod.cn)。
- 如果不知道邮箱填啥,就填账号邮箱:
- 修改完成后直接
docker-compose up -d
就安装完成。 - 安装完成后,需要配置admin用户的密码:docker-compose exec admin flask mailu admin admin scjtqs.com PASSWORD 其中的scjtqs.com和PASSWORD都替换成你自己的参数。
- 防火墙打开几个tcp端口:web服务的两个 9086(http)和9087(https)。mail的 25,110,143,465,587,993,995。
- 路由器配置端口转发。web的两个端口可以让你随便自己设置。mail的 25,110,143,465,587,993,995端口,请保持端口不变的映射。
2、解析配置
- 首先,你必须有自己的域名,
- 其次是你已经具备ddns解析服务。没有的朋友可以用我的ddns服务,支持docker,支持qq推送,支持ipv6:简易ddns服务
- 添加几个子域名,例如 smtp,imap,mail亦或者www。对这些子域名开启ddns,实时更新他们的A记录
- 添加@字域名的mx记录,可以添加多个,配置优先级,优先级数值越小,等级越高:
- 值得注意的是,你配置的这些mx记录的子域名,都必须能解析到你的服务器,建议直接动态解析到A记录,而不是cname。
- 配置spf信息:添加一个@的txt解析记录,内容为:
v=spf1 a mx -all
如果你的mx记录时cname的话,就使用v=spf1 a mx -all
三、不具备公网ip的家庭宽带
1、程序安装:
git clone ttps://github.com/scjtqs/docker-mail docker-mail
cd docker-mail
- 修改mailu.env中的参数,以及cetbot-dns-dnspod-credentials.ini 中的参数(仅支持dnspod.cn)。
- 如果不知道邮箱填啥,就填账号邮箱:
- 修改完成后直接
docker-compose up -d
就安装完成。 - 安装完成后,需要配置admin用户的密码:docker-compose exec admin flask mailu admin admin scjtqs.com PASSWORD 其中的scjtqs.com和PASSWORD都替换成你自己的参数。
2、内网穿透:
- 这里需要指定穿透几个固定的tcp端口,因此推荐使用frp自行搭建穿透服务:https://github.com/fatedier/frp
- 需要穿透的端口:web服务的两个 80(9086)和443(9087)。mail的 25,110,143,465,587,993,995。
- 此处我以mail.scjtqs.com为例,这个域名为穿透的域名。
3、解析配置
- 首先,你必须有自己的域名,
- 其次是你已经具备ddns解析服务。没有的朋友可以用我的ddns服务,支持docker,支持qq推送,支持ipv6:简易ddns服务
- ddns是为了获取你的当前内网中的服务器的真实公网Ip。此处我以mx.scjtqs.com为例
- 添加@的mx记录,记录值为
mail.scjtqs.com
权重为1,就这一个就好,毕竟穿透的就这个域名。 - 添加spf记录:@的txt记录,值为
v=spf1 a mx a:mx.scjtqs.com -all
结语:
到这里,差不多就可以使用了。
登录 https://mail.scjtqs.com 默认的页面是一个webmail的客户端
https://mail.scjtqs.com/admin 是管理后台
客户端的imap和smtp配置,我都不多说了。推荐使用tls并配合你自己配置的域名。