轻量双通道邮件中继

让每一次投递,
有路可循。

从业务服务器,到邮件服务器。
主动推送与被动拉取协同工作,让短暂的连接中断,
不再成为一封重要邮件的终点。

看看邮件如何抵达
两条路径,一个邮件中继项目服务器主动推送到 MailRelay;MailRelay 也能反向询问并拉取任务,两条路径汇入同一持久化队列,再通过 SMTP 提交邮件服务器。 项目服务器 邮件服务器 MailRelay 01 / 主动推送 02 / 被动拉取 SMTP 双通道 · 同一任务 · 统一调度
连接可以中断,任务始终保存。
Built for the messages that matter.Go + SQLite
01 / 两条路,同一个目标

网络有起伏。
任务有归处。

01PUSH

连接畅通,即刻接力

业务先将邮件保存到 outbox,再主动提交中继。任务持久化后进入统一发送队列,快速完成时直接返回结果。

项目服务器 MailRelay
02PULL

主动受阻,反向接续

中继定期询问项目,领取待发任务。只要反向连接可用,邮件便有另一条路;双向中断时,任务留在队列等待恢复。

项目服务器 MailRelay

相同任务编号,共用一条队列。两种模式同时运行,正常情况下重复提交只接收一次。

02 / 把复杂留给中继

轻量运行。
清楚掌控。

为验证码与业务通知而生。
一处管理 SMTP,让项目专注业务。

先保存,再投递

SQLite 持久化任务与结果。重启后恢复处理,结果回报独立重试,回报失败不会让邮件重新发送。

重试有序,过期即止

临时故障指数退避,永久拒绝保留原因。验证码沿用原内容和有效期,过期后不再开始新的投递。

配置与状态,尽在一处

网页初始化、账号授权、投递记录和失败重试。登录连续三次密码错误后锁定,使用服务器密钥验证解锁。

30h

成功记录,适时退场。

投递成功的正文与日志保留 30 小时。待重试任务继续保留,最小去重状态单独维护。

SMTP 已接收表示邮件服务器接受了邮件,不代表最终进入收件箱。确认丢失时采用送达优先策略,重试可能产生重复邮件。

YOUR NEXT MESSAGE, IN GOOD HANDS.

重要的消息,
值得多一条路。

从这里开始,连接你的项目与邮件服务器。

进入管理后台