自研邮件服务-PMail

查看 51|回复 4
作者:jiangwei2222   
由于主流的域名邮箱服务逐步停止服务,比如 qq 邮箱、outlook 邮箱。剩下的基本上都是一些企业邮箱,使用一堆限制,因此开始自建。
刚开始我使用的是 Poste ,使用 docker 部署,但是 docker pull 一拉,我丢,几个 G 的磁盘空间没了。我自己用的服务器只有 10G 磁盘空间,根本装不下这玩意。于是我尝试精简一下,结果发现复杂得要死,根本没法动。
然后我又找了好几个邮箱服务程序,结果都写得罗里吧嗦的,依赖一堆中间件,空间、内存占用一个比一个高。我就奇了怪了,邮件这么简单一个协议,怎么就被写得这么复杂了。
于是自己动手,使用 Golang 自己手撸了一个邮件服务。后端所有依赖都尽可能的使用 Go 官方的,前端使用了 vue3+element 。
优势:
1 、部署简单
使用 Go 语言编写,支持跨平台,编译后单文件运行,单文件包含完整的前后端代码。修改配置文件,运行即可。仅依赖 MySQL ,所有数据均存储在 MySQL 中。
2 、资源占用极小
编译后二进制文件仅 15MB ,运行过程中占用内存 10M 以内。
3 、安全方面
支持 dkim 、spf 校验。正确配置的情况下,Email Test 得分 10 分。
4 、邮箱前缀
既然是域名邮箱,前缀就不重要了,收发邮件均可使用任意前缀。
5 、插件支持
关键位置都留了插件 hook 点,你可以根据需要开发插件。目前写了一个微信 push 插件,收信后通过微信公众号 api 推送
其他
目前我已经用了一个多月,用来收发验证码,国内各种银行、各个 app 的、海外各种 app 的,均正常使用。
收发邮件是否成功,是否进垃圾箱与邮箱程序无关,在正确配置 dkim 、spf 后,只与你的 ip 、域名有关。我自己服务器是搬瓦工美西机房的。这个 IP 我自己已经用了 7 年多了,收发邮件没任何拦截。拿主流邮箱( gmail 、qq 、163 、outlook 、阿里企业邮箱、飞书邮箱)测试过,均正常收发。
目前差个 logo ,另外前端界面写得很差,欢迎有兴趣的小伙伴提 PR
项目地址: https://github.com/Jinnrry/PMail

邮箱, 收发, 邮件, 插件

jiangwei2222
OP
  
PS:顺带吐槽一下,Golang 原生的 SMPT 协议写得太他妈粗糙了。简直坑死人。最基本的,竟然只支持很少几种编码方式,gbk 、gb2312 等中文编码均不支持。另外其他坑也一堆。
我目测,这个包,除了我在用,应该这世界上没有第二个人在用他了。我本来想把我改了后的代码 push 给 go 官方的。但是 go 的提交流程太繁琐了,最后放弃了,直接 copy go 源码到项目里面改了
amlee   
好东西
kaikai5601   
由于主流的域名邮箱服务逐步停止服务,比如 qq 邮箱、outlook 邮箱
哪里得出的结论
Gtristan   
好东西,晚点回去试试,一直在鼓捣这方面,收了
您需要登录后才可以回帖 登录 | 立即注册

返回顶部