再来推广一下自己写的域名邮箱服务

2023-12-18 11:19:31 +08:00
 jiangwei2222

以前在这里推广过,不好意思打扰大家。主要是差 92 个 star 到 1k ,想要几个 star

一台服务器、一个域名、一行代码、一分钟时间,你就能够搭建出一个自己的域名邮箱!

专为个人使用场景设计,目前绝对是全网你能找到的,资源占用最少、部署最方便的邮箱服务器。除此之外,自动 SSL 、微信 Push ,应该也是全网独此一家。

整个项目二进制文件仅 15M ,运行内存仅 1M 。0.5 核 64M 的垃圾 VPS 也能流畅运行!

相比于 3 个月前,目前项目基本上成型了,支持了 pop3 和 smtp 协议,可以使用 GMail 之类的第三方邮件客户端收发信了。

演示视频:

项目地址:

https://github.com/Jinnrry/PMail

PS:

我以前也没有邮箱相关的开发经验。go 语言也基本上没有邮件相关协议的生态。全网无论中英文,基本上也找不到这类的资料。整个开发过程还是挺曲折的,都是我自己去硬啃 RFC 协议文件,然后照着 RFC 文件一点一点写出来的。但是某个协议并不是看完一个 RFC 就完了,各种知识分散在很多个 RFC 中,RFC 文档也没有目录,也没有示例,很多东西可能一句话就描述完了,但是具体实现的时候很多细节根本不知道怎么处理。

目前第三方客户端还是存在兼容性问题,我使用 GMail 和苹果邮件客户端测试是没有问题的。但是 QQ 邮箱等客户端会有问题,暂时没找到原因。

最后,欢迎感兴趣的朋友加入。无论是前端、还是后端、还是 UI 、设计等等。无论贡献的是协议代码,还是业务逻辑代码,还是插件代码,还是前端代码,甚至是 UI 、设计图都可以。

2732 次点击
所在节点    分享创造
19 条回复
allenby
2023-12-18 12:57:19 +08:00
支持 25 端口的提供商有哪些?
allenby
2023-12-18 12:59:34 +08:00
以前试着整了一个 pop 读取新邮件发送到 tg 的,但是需要定时去 pop 上取,不是很方便。话说,有哪些收信协议不需要我定时去读取邮箱的?
alfchin
2023-12-18 13:00:02 +08:00
@allenby exchange
jiangwei2222
2023-12-18 14:13:17 +08:00
@allenby #1 我用的搬瓦工,25 端口是能够正常使用的,也不需要申请解封

另外,这个项目现在就有 tg 推送插件,配置好推送相关 key 就行了,不需要额外开发
andy7076
2023-12-18 15:21:40 +08:00
好像腾讯企业邮箱绑定一下域名就好, 主要是还是自己搭建的服务感觉不够稳定,不敢用,万一哪天挂了或者自己不想维护了。 一堆绑定邮箱的业务用不了真的捉急。
fw1314
2023-12-18 15:32:17 +08:00
cloudflare 免费,而且非常的快速,想抛直接就抛
Bzero
2023-12-18 18:03:18 +08:00
imap 993 端口,支持吗?
julyclyde
2023-12-18 20:28:34 +08:00
为什么说 RFC 文档没有目录?
yafoo
2023-12-18 22:02:24 +08:00
之前收藏过了
aayyooh2
2023-12-18 22:08:09 +08:00
已 star
947
2023-12-20 09:00:07 +08:00
@andy7076 #5 挂了再绑定企业邮箱就行了吧?只是说以前的邮件没了,但是重新找个平台绑上应该还能收到新邮件
jiangwei2222
2023-12-20 10:49:15 +08:00
@julyclyde 我说的不是单个文档内的目录。我说的是比如你想了解 smtp 协议,不会有人告诉你需要看那几个 RFC ,也你只能一个一个去找相关的,然后根据发布年份一个一个看
julyclyde
2023-12-20 10:51:05 +08:00
@jiangwei2222 确实,尤其是替代关系需要自己捋一下
比如 822/821 和 2822/2821

按说这属于行业通识。但是对于外行人员入行来说就比较麻烦
rekulas
2023-12-20 21:54:44 +08:00
提个建议 配置文件可以考虑按不同功能/类型的不同分层级管理,全部平铺看着好累而且以后扩展新功能也会显得杂乱
rekulas
2023-12-20 22:04:30 +08:00
另外文档不是很清晰,我跑起来发现没配置文件,看了代码才猜到应该放到 config/config.json 里,对小白或不熟悉的不友好

另外我只想搭建一个收件服务器的话应该不需要 dkim,但启动似乎强制校验,也没有开关...
rekulas
2023-12-20 22:08:02 +08:00
当我修复了以上问题,继续运行,又报 ssl 错误
panic: at /home/runner/work/PMail/PMail/server/services/setup/ssl/ssl.go:157
然而我的 httpsEnabled 已经为 0 sslType 也设置为 1 了 我不懂为什么还要强制去开启 ssl
ssl 这种交给 web 服务就好了
rekulas
2023-12-20 22:11:13 +08:00
好吧 上面配置看错了 httpsEnabled 0 1 都是启用 2 是不启用, 这 🤣
rekulas
2023-12-20 22:25:35 +08:00
修复以上配置后,程序终于跑起来了,但是发现没账号密码,找遍文档也没有

只能自己拉下来 db 文件,查看下源码里密码 hash 函数自己手动写入一个账号,上传覆盖,终于可以登录了...

说实话,体验感受并不是很美好建议优化下

我估计你的目的是一开始就启动 web 然后用户从 web 初始化系统

但是现实总是复杂多变的,我的 80 端口冲突所以直接覆盖了默认配置,而且 init 参数没有改,导致踩了不少坑
jiangwei2222
2023-12-21 19:44:01 +08:00
@rekulas #16 因为不止 https 协议需要 SSL 证书,pop3 、smtp 这些协议都需要 SSL 证书

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1001265

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX