网站首页 > 技术文章 正文
这段时间公司需要使用自己的域名来构建一个邮箱,于是想了解下邮箱系统,发现里面的水很深,本文将记录下这些新知识。
一.备注:Forsaken Mail是一个临时email系统,可以供任何人领受邮件,即收即毁,支持自定义email地址前缀,这里就说下Docker和NPM两种部署教程,任选一种便可,有兴趣或者有要求的可以玩玩。
截图
二.环境准备
1、云主机需要开启25端口,这个直接发工单要主机商开启。
2、域名解析,如果你想邮件地址格式都为*@xx.com的形式,则为xx.com设置MX记载,需要增加以下2条解析记载。
#MX记载
xx.com MX 10 mx.xx.com
#A记载
mx.xx.com A 服务器IP
NPM部署
Github地址:
https://github.com/denghongcai/forsaken-mail
1、部署NPM
#Debian/Ubuntu系统
curl -sL https://deb.nodesource.com/setup_10.x | bash -
apt-get install -y nodejs git screen
#Centos系统
curl -sL https://rpm.nodesource.com/setup_10.x | bash -
yum install nodejs git screen -y
2、部署Forsaken Mail
git clone https://github.com/denghongcai/forsaken-mail.git
cd forsaken-mail
#部署Forsaken Mail
npm install
#后台执行Forsaken Mail
screen -S forsakenmail
npm start
最后按Ctrl+A,再按D键返回主界面,然后openhttp//mx.xx.com:3000便可以查看Forsaken Mailemail界面了,如果你打不开界面,可能还需要开启防火墙端口,普通该情况在CentOS系统上出现至多,这里就说下CentOS开启操作。
#Centos 6系统
iptables -I INPUT -p tcp --dport 3000 -j ACCEPT
service iptables save
service iptables restart
#CentOS 7系统
firewall-cmd --zone=public --add-port=3000/tcp --permanent
firewall-cmd --reload
Docker部署
1、部署Docker
#CentOS 6
rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum update -y
yum -y install docker-io
service docker start
chkconfig docker on
#CentOS 7、Debian、Ubuntu
curl -sSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker.service
2、部署Forsaken Mail
docker run --name forsaken-mail -d -p 25:25 -p 3000:3000 denghongcai/forsaken-mail
部署成功后openhttp//mx.xx.com:3000便可以了,如果打不开界面请参考NPM部署步骤。
配置Https访问
如果你不习气使用http//mx.xx.com:3000,或者想使用Https域名访问主界面,那咱们可以使用Caddy反代。
这里所使用的域名只能是上面设置MX记载的xx.com,并提早将域名A记载解析到服务器IP。
(支付宝搜索:生活费4031693,我赚你也赚)
1、部署Caddy
使用command:
wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh install http.filemanager
#备用地址
wget -N --no-check-certificate https://www.moerats.com/usr/shell/Caddy/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh install http.filemanager
2、配置Caddy
#以下全部内容是一个团体,请修正2个域名后一齐复制到SSH执行!
echo "xx.com {
gzip
tls admin@moerats.com
proxy / mx.xx.com:3000
}" > /usr/fubitechal/caddy/Caddyfile
tls参数会主动帮你签发ssl证书,如果你要使用伏笔VPS的ssl,改成tls /root/xx.crt /root/xx.key便可。后头为ssl证书路径。
3、启动Caddy
/etc/init.d/caddy start
最后可以openhttps://xx.com访问了。
希望以上的文章对各位有用,如果觉得不错就关注吧!
猜你喜欢
- 2025-09-09 Linux必学技能 | 17个案例带运维小白快速精通Awk命令,拿来即用
- 2025-09-09 稳定的Claude Code渠道,白嫖100刀
- 2025-09-09 如何写出安全的、基本功能完善的Bash脚本
- 2025-09-09 如何限制访问域名之外的请求都禁止访问,包括域名对应的ip
- 2025-09-09 代理 IP 地址与端口:核心概念、匹配逻辑及常见配置误区
- 2025-09-09 Linux重复操作太痛苦?Shell脚本让你1分钟搞定1小时活
- 2025-06-30 记录一次彻底清除挖矿病毒(挖矿 清退)
- 2025-06-30 linux计划任务管理(linux计划任务设置)
- 2025-06-30 Linux基本命令—修改命令别名(linux永久修改别名)
- 2025-06-30 CentOS nodejs环境配置(centos nodejs安装)
- 最近发表
-
- count(*)、count1(1)、count(主键)、count(字段) 哪个更快?
- 深入探索 Spring Boot3 中 MyBatis 的 association 标签用法
- js异步操作 Promise fetch API 带来的网络请求变革—仙盟创梦IDE
- HTTP状态码超详细说明_http 状态码有哪些
- 聊聊跨域的原理与解决方法_跨域解决方案及原理
- 告别懵圈!产品新人的接口文档轻松入门指南
- 在Javaweb中实现发送简单邮件_java web发布
- 优化必备基础:Oracle中常见的三种表连接方式
- Oracle常用工具使用 - AWR_oracle工具有哪些
- 搭载USB 3.1接口:msi 微星 发布 990FXA Gaming 游戏主板
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)