之前都是将域名绑定到G Suite或者Office 365来搭建域名邮箱,最近服务器闲置地有点多,为了不吃灰,拿来搭建一个零时邮箱!
项目地址:https://github.com/denghongcai/forsaken-mail ,项目作者写的步骤有点不怎么清楚,这里将自己的摸索过程记录如下
1. 安装
安装Docker
curl -fsSL https://get.docker.com -o get-docker.sh bash get-docker.sh
拉取镜像
docker run --name forsaken-mail -d -p 25:25 -p 3000:3000 denghongcai/forsaken-mail
疑难杂症
1. 如果提示Error starting userland proxy: listen tcp4 0.0.0.0:25: bind: address already in use.
,一般是由于sendmail占用了25端口。查找是25端口被谁占用:
sudo netstat -pna | grep 25 tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 28656/sendmail: MTA
这里可以看到的确是sendmail占用了25端口,由于这里用不到sendmail,立即停止sendmail
/etc/init.d/sendmail stop docker container rm forsaken-mail
并重新拉取镜像
docker run --name forsaken-mail -d -p 25:25 -p 3000:3000 denghongcai/forsaken-mail
安装成功,应该就可访问网站了: http://IP:3000/
2. 如果访问不了,可前往宝塔安全设置,放行3000端口
2. 设置DNS记录
只需要添加 MX 、A 两个记录即可
类型:MX
名称:patriotic.ml
邮件服务器:mx.patriotic.ml
TTL:自动
优先级:10
类型:A
名称:mx.patriotic.ml
IPv4 地址:184.33.16.112(自己的服务器地址)
TTL:自动
宝塔新建网站
宝塔新建网站,域名填paelic.org,其他默认
宝塔设置Nginx反代
至此,便可以用域名访问,而不用IP加端口访问了!
4. 修改网站内容
root@google:~# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c7a10eb9f879 denghongcai/forsaken-mail "/bin/sh -c 'npm sta…" 5 minutes ago Up 5 minutes 0.0.0.0:25->25/tcp, :::25->25/tcp, 0.0.0.0:3000->3000/tcp, :::3000->3000/tcp forsaken-mail root@google:~# docker exec -it c7a10eb9f879 bash
apt-get install vim && vim public/index.html
如果vim打开后中文乱码,那么在vim normal模式输入冒号后进入命令模式,再输入
set encoding=utf-8
回车。乱码应该立马变正常。
5. 一些docker命令
由于程序是docker封装的,以下对日后维护很有帮助的docker命令简记如下
1. 查看所有容器
root@google:~# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 13f0c6688370 denghongcai/forsaken-mail "/bin/sh -c 'npm sta…" 44 minutes ago Exited (137) 32 minutes ago forsaken-mail
可以看到容器forsaken-mail的容器ID(CONTAINER ID)是13f0c6688370
2. 启动已停止的容器
docker start 容器ID
3. 关闭正在运行的容器
docker stop 容器ID
4. 重启容器
docker restart 容器ID
5. 进入容器
docker exec -it 容器ID /bin/bash
搭建挺简单的,只是碰到的小问题挺多。
搭建成功,就可以愉快玩耍了!