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

146 天前
 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 、设计图都可以。

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

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

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

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

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

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

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

但是现实总是复杂多变的,我的 80 端口冲突所以直接覆盖了默认配置,而且 init 参数没有改,导致踩了不少坑
jiangwei2222
142 天前
@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