两周前开源了PMail的第一版,第一版基本上只完成了核心逻辑。这两周花了几天,完成了 2.0 版本。新版本支持了 SQLite 数据库、支持了 ACME 协议(能够全自动处理 SSL 证书的获取与更新)、添加了配置引导页面。
这个版本极大的优化了部署效率。因此,我给这个项目写了一个口号:
一台服务器、一个域名、一行代码、一分钟时间,你就能够搭建出一个自己的域名邮箱。
目前绝对是全网你能找到的,资源占用最少、部署最方便的邮箱服务器。除此之外,自动 SSL 、微信 Push ,应该也是全网独此一家。
演示视频:
项目地址:
https://github.com/Jinnrry/PMail
免责声明:
我自己目前使用了两个多月了,收发国内外各种 app 的验证码,均没有任何问题。但是项目整体没有完整的测试用例,也没有经过严谨的测试,也没有大量用户验证。因此不建议立刻把自己的主邮箱迁过去。
其他:
欢迎各类 PR ,无论你是修复 bug 、新增功能、修改翻译。最后,征求一个 Logo !
![]() | 1 Clay0620 2023-08-14 10:04:13 +08:00 应该支持通过接口获取指定邮箱验证码的功能吧? |
![]() | 2 QUC062IzY3M1Y6dg 2023-08-14 10:09:45 +08:00 ![]() 看着小巧精致,等一个 docker 版本 |
![]() | 3 wentx 2023-08-14 10:27:07 +08:00  |
![]() | 4 HunSiKing 2023-08-14 10:27:51 +08:00 支持一番! |
![]() | 5 xmsumi 2023-08-14 10:47:20 +08:00 支持并期待更新 API ,方便接入到其他项目使用。 |
6 clooooo 2023-08-14 10:51:38 +08:00 panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x8 pc=0x990826] goroutine 1 [running]: main.main() /Users/didi/privatePjt/PMail/server/main.go:56 +0xa6 启动是这个报错? |
![]() | 7 WebKit 2023-08-14 10:54:34 +08:00 via Android 支持,等养肥了在用。 |
8 eBMm8zIi0Zq3 2023-08-14 10:59:00 +08:00 支持! 能不能支持多域名? |
![]() | 9 maskerTUI 2023-08-14 11:12:09 +08:00 这个好,眼前一亮的个人产品。 |
![]() | 10 IDAEngine 2023-08-14 11:13:36 +08:00 太精简,喜欢 |
![]() | 11 BaseException 2023-08-14 11:30:02 +08:00 star 了 |
![]() | 12 shermie 2023-08-14 11:41:12 +08:00 希望支持通过接口获取指定邮箱验证码的功能 |
![]() | 13 runningowl 2023-08-14 11:46:13 +08:00 |
14 leoskey 2023-08-14 11:53:02 +08:00 logo 就把 @ 顺时针旋转 90 度 |
15 AutumnVerse OP |
16 AutumnVerse OP @clooooo 重新发了个版本,修复了 |
17 AutumnVerse OP @eBMm8zIi0Zq3 这个暂时没考虑到 |
18 AutumnVerse OP |
19 AutumnVerse OP @shermie 直接读数据库? |
20 AutumnVerse OP @runningowl 试了下,有点丑,只是简单把名字换个字体生成图片而已。 |
21 deplivesb 2023-08-14 12:13:35 +08:00 能支持命令行启动自定义端口么? |
22 willsun 2023-08-14 12:38:16 +08:00 docker 版有吗,最好可以部署到自家 nas 上就好了。 |
![]() | 23 runningowl 2023-08-14 12:55:37 +08:00 要带图片的?那试试这个 https://logo-maker.freelogodesign.org/ 要不就找 dalle 来一个了 |
![]() | 24 runningowl 2023-08-14 12:59:07 +08:00 再来个 chat 给的 slogan One Server, One Domain, One Line of Code, One Minute Unleash Your Own Domain Mailbox! |
25 Bssn 2023-08-14 13:04:01 +08:00 不知道为什么无法收到回信,发信正常 |
![]() | 26 MarlonFan 2023-08-14 13:10:31 +08:00 已经用上的兄弟们, 会不会被当成垃圾邮箱有人试过么 |
![]() | 27 hqwuzhaoyi 2023-08-14 13:15:16 +08:00 之前自己搭建的一直没用起来,关注了老哥 |
28 shwnpol 2023-08-14 13:24:10 +08:00 支持 |
![]() | 29 timothyye 2023-08-14 13:30:31 +08:00 不错,已 star |
![]() | 30 sommer 2023-08-14 13:31:58 +08:00 via Android 需要开 25 端口吗(不太懂自托管的邮箱) 这个主要是给自己日常通信用的吗,如果大规模发是不是就要有相应的频率控制,来管理声誉 |
![]() | 31 cnit 2023-08-14 13:32:25 +08:00 ![]() |
32 Masoud2023 2023-08-14 13:39:34 +08:00 不能发? |
33 AutumnVerse OP @deplivesb 25 端口是不能改的,80 ,443 端口可以改 |
35 AutumnVerse OP |
36 AutumnVerse OP |
37 AutumnVerse OP ![]() @willsun 我今晚回去编译一个 docker |
38 ben5959 2023-08-14 14:50:06 +08:00 微信 push 的功能是指? |
39 AutumnVerse OP @ben5959 收到邮件以后,使用微信公用号消息接口推送给你。(微信接口需要你自己申请) |
40 o0 2023-08-14 15:18:31 +08:00 自己部署?好像国内的云厂商不是很欢迎? |
41 mianlaodie 2023-08-14 15:51:28 +08:00 同求一个 docker 版本 |
![]() | 42 cat9life 2023-08-14 15:54:00 +08:00 注意国内默认 block 25 端口,需要申请开通 |
![]() | 43 cheung 2023-08-14 16:21:30 +08:00 正需要这么个轻量级的邮件应用,API 接口整起来。 |
![]() | 44 awsl2333 2023-08-14 17:09:38 +08:00 不错 |
![]() | 45 dianso 2023-08-14 17:13:57 +08:00 喜欢单文件二进制部署,问一下,我的网站每天回复别人留言自动发邮件,大概几万封,目前是内置了 13 个 163 的账号来完成。 要是我服务器大量发送会不会被主流邮件商拉黑啊 |
46 AutumnVerse OP @dianso 卧槽,几万封,这个就得看其他邮件服务器的策略了。这种我也不确定,现在最好别把核心业务迁过来,我也只用了几个月,可能有各种 bug |
![]() | 47 zhcnxyz 2023-08-14 18:49:02 +08:00 支持 |
![]() | 48 kebamt 2023-08-14 19:29:26 +08:00 骗人,花了 21 分钟 |
49 dusu 2023-08-14 19:33:37 +08:00 via iPhone 说说我们目前对自建邮局正在处理的一些深入需求,OP 也可以看看: 1. 针对单机多 ip/多域名/多出口发信的问题 2. 分布式,解决单点问题,mx 解析一条记录肯定是不够的,单节点去部署邮件就得一台一台去看,略麻烦 3. 不接 rspamd 没法过滤垃圾邮件 后期垃圾邮件多了会很烦,同时支持 rule 的话可以解决转发、过滤、分流等问题 另外可以参考一下这个项目 https://github.com/jeboehm/docker-mailserver |
![]() | 50 tyzandhr 2023-08-14 19:52:00 +08:00 via Android 能否通过 api 代理 gmail ? |
51 pigmen 2023-08-14 20:41:59 +08:00 还是 Cloudflare 更香 更便捷 |
52 AutumnVerse OP |
53 AutumnVerse OP @dusu 啊,我如果早看到这个项目可能就不会自己手撸了。我下一步也计划支持 IMAP 、POP3 的,这个项目全都支持了 垃圾过滤正准备加,我现在已经开始每天收一堆垃圾邮件了。 多 ip 、多域名、分布式这些可能得等等了。目前我自用需求不是太高。 |
54 AutumnVerse OP @tyzandhr 短期内可能不会支持。至少稳定性得达到 Gmail 那个级别才敢把 Gmail 的邮件代理过来吧。现在我都不保证稳定性,代理 GMail 作为主邮箱的话,万一程序 panic 导致丢信了,那影响就大了。 就像#49 说的,目前项目都是单节点运行的,真做主邮箱用,风险太大了 |
55 AutumnVerse OP @dusu 仔细想了想,其实多节点、多域名没多少改动,DNS 配上就行了。目前程序 session 是存数据库的,多节点配置同一个 MySQL 就行了。 DNS 解析配上,现在多域名收信应该都可以用,发信的话只是前端没法操作,其实理论上也支持 |
![]() | 56 fmvp520 2023-08-14 22:30:38 +08:00 支持一番! |
![]() | 57 zololiu 2023-08-14 23:57:19 +08:00 支持一下,养肥再用。 |
![]() | 58 kljsandjb 2023-08-15 03:47:21 +08:00 via iPhone 等大家坑差不多踩完了我就把 docker-mailserver 换你这个 |
![]() | 59 QUC062IzY3M1Y6dg 2023-08-15 09:08:46 +08:00 @pigmen 好用是好用,就是只能收,不能发 |
60 huisunan 2023-08-15 09:14:02 +08:00 感觉可以做一个和苹果一样的隐私邮箱功能 |
![]() | 61 blackboxo 2023-08-15 09:34:36 +08:00 虽然最近正好有需求,但是没有稳定性保证不太敢用。。 |
![]() | 62 DOOMS 2023-08-15 09:47:16 +08:00 我使用的是 qq 企业邮箱自定义的 之前是微软的,但是 E5 过期了 |
![]() | 63 QUC062IzY3M1Y6dg 2023-08-15 10:07:28 +08:00 @jiangwei2222 #52 抱歉没看到 docker 说明,可以麻烦发一下链接吗 |
![]() | 64 QUC062IzY3M1Y6dg 2023-08-15 10:08:17 +08:00 @jiangwei2222 #52 看到了多谢 |
65 1044523901 2023-08-15 13:55:51 +08:00 等一个 docker 版本 |
![]() | 66 shermie 2023-08-15 14:31:37 +08:00 @jiangwei2222 是的 需要这个功能 直接读库 一个 GET 请求 传账号密码 返回文本 |
67 AutumnVerse OP |
68 qinfengge 2023-08-15 16:24:29 +08:00 同等一个 docker 版本 |
![]() | 69 shermie 2023-08-15 17:38:50 +08:00 @jiangwei2222 强啊 够了 |
![]() | 70 bitkuang8 2023-08-16 13:45:27 +08:00 star~ |
71 good1uck 2023-08-17 19:03:27 +08:00 via Android 请问和 qq 邮箱相比优势在哪? |
![]() | 72 baiduyixia 2023-08-21 15:13:06 +08:00 想问问 centos 系统怎么安装??能否出个教程? |
73 AutumnVerse OP @baiduyixia 3 行命令就运行起来了 wget https://github.com/Jinnrry/PMail/releases/download/V2.0.2/pmail_linux_amd64 chmod +x pmail_linux_amd64 ./pmail_linux_amd64 |
74 AutumnVerse OP @good1uck qq 域名邮箱、outlook 个人域名邮箱目前都停止服务了,写这个出来就是为了替代这两个的。至于优势的话,目前没有任何优势。非要说的话,可以自己定制开发、数据自己存储,就这点优势吧 |
![]() | 75 baiduyixia 2023-08-22 14:09:30 +08:00 @jiangwei2222 80 端口已经被占用了,如何修改使用别的端口? |
![]() | 76 intermission 2023-08-27 15:26:46 +08:00 我的话,是直接在飞书上创建了一个企业 [没有认证的那种] ,然后就可以初始化自己的域名邮箱了 |