# 邮件推送服务 ## 需求分析 希望邮件推送服务能提供的功能 - 可编程、可扩展(通过程序对接、改造) - 能够通过开发在程序逻辑或者管理界面中自动触发发送 - 支持邮件发送验证码和邮件营销推送 - 能够支持HTML的邮件内容,而HTML内容能够随时随地进行修改,方便美工和开发去调整 - 可观测 - 验证类邮件能够支持IP统计、次数统计,能够进行时间限制、防止恶意发送 - 推送类邮件能够支持统计发送数量、发送成功率等反馈数据 - 推送效率 - 验证邮件要能在5-10秒内发送成功,到达率高 - 用户友好 - 用户可以退订推送类邮件 ## 功能设计 1. 邮件模板模块。通过模板功能来支持HTML邮件内容以及随时可更新替换的要求,通过模板里的关键词参数设计,来达到验证码、用户名、营销内容等动态输入。 2. ~~验证码模块。用来支撑邮件验证码校验、请求限制等功能~~ (由调用方来限制,放入认证服务中)。 3. 记录发送记录相关信息模块。记录所有发送记录,用于统计和分析。 4. 管理后台模块。包括:用户管理、邮件模板配置、发送记录查询等基本支撑功能,在后台尽量以界面化实现管理。 5. 将企业邮局和邮件推送服务分离;企业内外网邮件域隔离。 以域名 `XXX.com` 为例,一般企业邮局地为`zhangsan@XXX.com` 邮件服务不适合也以`XXX.com`为域,因为这会和企业邮局服务相互干扰(也不是没有规避方式,只是配置起来很麻烦) 隔离方案:增加一个二级域名,例如`mail.XXX.com`,邮件服务地址就是 `service@mail.XXX.com`。 ------------- 不建议自己搭邮件服务器,十分容易被拦截,即使使用ip池 ---------- 参考:https://www.cnblogs.com/chuma/p/5694744.html https://www.cnblogs.com/tellerfuliye/articles/13156469.html ---- shoulder 以外的其他方案 https://gitee.com/52itstyle/spring-boot-mail