poste.io安装
Docker 的安装
1.查看系统要求
Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看CentOS的内核版本。
uname -a
2.删除旧版本
yum remove docker docker-common docker-selinux docker-engine
3.安装需要的软件包
yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
4.设置Docker yum源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
5.查看所有仓库中所有docker版本
可以查看所有仓库中所有docker版本,并选择特定的版本安装。
yum list docker-ce --showduplicates | sort -r
6.安装docker
sudo yum install docker-ce
由于repo中默认只开启stable仓库,故这里安装的是最新稳18.03.0.ce-1.el7.centos。
如果要安装特定版本:
sudo yum install docker-ce-18.06.1.ce
7.启动
systemctl enable docker #开机自启
systemctl start docker #启动
systemctl status docker #查看状态
docker version #查看版本
然后使用下面代码安装poste的docker容器。
docker run \
-p 25:25 -p 80:80 -p 443:443 -p 587:587 -p 993:993 -p 995:995 \
-v /etc/localtime:/etc/localtime:ro \
-v /opt/poste/data:/data \
--name "sometimesnaive" \
-h "mail.test.com" \
-t analogic/poste.io
-p 为端口映射,将容器端口映射到服务器外部端口25为邮件发送端口,80和443为邮件网页客户端端口,587 993 995 为三方客户端收发邮件端口分别对应 SMTP IMAP POP3
-v 为外挂容器内部目录到外部服务器方便备份和和数据存储,重启容器数据不会丢失(第一个为了同步服务器和容器内部时间)
-h 要做邮箱服务器的域名
DNS设置
1.PTR记录
PTR记录是A记录的逆向记录,又称做IP反查记录或指针记录,负责将IP反向解析为域名,一般不能自行修改,需要和服务器运营商联系方式修改服务器的反向解析为 mail.test.com (vultr 服务器商可以在后台直接修改)
2.A和CNAME记录
mail.test.com A -> 1.2.3.4(你的ip)
test.com MX -> mail.test.com
test.com TXT -> "v=spf1 mx ~all"
配置Poste
安装好Poste之后,我们就可以登录mail.test.com来配置Poste了。初次登录,会提示设置服务器名和管理员邮箱与密码了
刚安装好Poste的时候,SSL还没有配置,我们可以使用Poste内置的Let’s Encrypt一键签发证书。点击左侧System settings — TLS certificate, 然后点击绿色的issue free letsencrypt.org certificate, 输入我们的域名,即可签发并自动安装证书,非常方便。您也可以手动申请并安装证书。
证书签发完毕后关闭浏览器并重新登录,即可看到生效的SSL,
第二件事是补充DNS解析记录,前面我们做的解析记录并不足以让我们的邮件能够顺利到达对方的收件箱,在这里我们还要添加一个DKIM记录,首先按如下图操作
然后按照要求把生成的DKIM key解析下就行了。
补充
需要开启防火墙的端口有25,80,443,587 ,993,995 其中25号端口需要和服务器商请求开通一般是没有开通的检测可以用
telnet smtp.163.com 25
(正常会看到英文的提示信息:”220 163.com Anti-spam GT for Coremail System (163com[20050206])”,如果没有看到英文的提示信息,就表明“对外连接25端口”被机房封了,这种情况,您只能联系机房处理。)
设置下容器开机自启,上面设置的开机自启只是docker 服务的自动启动
docker update --restart=always xxx