通用技术 自建外网邮件服务器

81—1 · 2020年08月25日 · 2848 次阅读

大家好,我是无人机。

简介

工作过程中经常需要外网邮箱接收系统的测试邮件,常见的邮件平台基本都有很长很长的身份验证流程,以及十分严格的数量限制。对于我们只是临时用的来说,很憋屈,气的心突突跳,宝贝憋紫黑。了解分析了邮件服务器的工作原理和组成后,借助开源工具自己撸个外网邮件服务器,方便自己及同事的使用。

架构解析

从图上可以看到,邮件服务使用的是开源的hMailServer,系统数据存储在本地的 mysql。其中因为需要外网可通,我使用了我的公网云服务器作为转发机,把内网的邮件服务进行了穿透映射。

由上可知,架设一个外网邮件服务器,一个公网 IP 和公网域名是必不可少的。另外实际使用过程发现,公网域名必须是备案的,不然大部分的邮件服务器(qq、163)都会拦截给我们发的邮件。

安装步骤

下载 hMailServer

开源的东西还是官方网站下载比较稳妥:https://www.hmailserver.com/download

安装 hMailServer

流程不长,一路 next 即可,要记住自己设置的管理密码,每次进后台都会用到。
最后安装完成后进入后台管理页面如下:

添加邮箱用户

进入Domains > 域名 > Accounts > Add

这里的密码输入后,失焦就看不到了,注意记录。

其它的高级配置先不动。

外网服务器开通 25 端口

很多厂商的云服务器 25 端口默认是关闭的,我们需要用到,腾讯云可以自己申请打开。路径为:腾讯云控制台 > 头像下拉框 > 安全管控 https://console.cloud.tencent.com/secctrl/smtp, 选中自己的服务器申请解封 25 端口,即时可用。

内网穿透

我是的 windows 是内网机器,需要能在外网收邮件需要让其他人也能检索到我们的服务,这就需要做个内网穿透了。我使用的是frp ,很好的开源的软件,下载地址:https://github.com/fatedier/frp/releases

简单介绍下我的配置,frp 分为两个端:server、client。

公网服务端

配置文件:

# frps.ini
[common]
bind_port = 7000

先启动 server 端:

$ sudo ./frps -c frps.ini 

这里因为后面客户端绑定的端口都是短号,需要管理员权限才能正常启动

winodws 客户端

下载对应的 windows 版本的 frp
配置文件:

# frpc.ini
[common]
server_addr = 45.40.xxx.xx
server_port = 7000

[tcp110]
type = tcp
local_ip = 127.0.0.1
local_port = 110
remote_port = 997

[tcp25]
type = tcp
local_ip = 127.0.0.1
local_port = 25
remote_port = 25

[tcp143]
type = tcp
local_ip = 127.0.0.1
local_port = 143
remote_port = 1439

[tcp1429]
type = tcp
local_ip = 127.0.0.1
local_port = 587
remote_port = 1429

启动 clinet 端:

cmd> frpc -c frpc.ini 

看到客户端日志如下,就是穿透服务架设成功了。

2020/08/25 09:34:18 [I] [service.go:282] [7cf98eeece2ffe93] login to server success, get run id [7cf98eeece2ffe93], server udp port [0]
2020/08/25 09:34:18 [I] [proxy_manager.go:144] [7cf98eeece2ffe93] proxy added: [tcp25 tcp143 tcp1429 tcp110]
2020/08/25 09:34:18 [I] [control.go:179] [7cf98eeece2ffe93] [tcp25] start proxy success
2020/08/25 09:34:18 [I] [control.go:179] [7cf98eeece2ffe93] [tcp143] start proxy success
2020/08/25 09:34:18 [I] [control.go:179] [7cf98eeece2ffe93] [tcp1429] start proxy success
2020/08/25 09:34:18 [I] [control.go:179] [7cf98eeece2ffe93] [tcp110] start proxy success

邮件客户端配置

我以 foxmail 为例,对应上面的穿透服务提供的远程端口,邮件客户端配置如下:

至此我们已经可以给外网邮箱发送邮件了,可能会进人家的垃圾箱,自己试试吧。
但我们还无法收到外网给我们发的邮件,还需要给域名配置下解析规则。

配置外网域名的邮件服务解析

这里其实最主要就是mx记录的解析,并且要保证你的 25 端口是通的,试过换成其它的端口,内网自己可用,但其它邮件服务器不认。
下图以主机屋的域名配置为例:

mx 记录不是立即就生效的,最长要等 4 小时。实际我等了几分钟左右

结语

至此我们自己的公网邮件服务器已架设完成,账号要多少有多少,再也不用找朋友借邮箱测试了,两个肺透亮透亮的。亲测了可以用来注册 linked 账号,各家服务器限制不同,自己去试试吧。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册