一、具体的可参考一下几个链接:
邮件实现详解(一)------邮件发送的基本过程与概念
邮件实现详解(二)------手工体验smtp和pop3协议
邮件实现详解(三)------邮件的组织结构
邮件实现详解(四)------JavaMail 发送(带图片和附件)和接收邮件
二、几种邮件协议的区别
简单地说,SMTP管‘发’, POP3/IMAP管‘收’,exchange是微软搞的一套协议
POP3, SMTP, IMAP 和 Exchange 的区别在哪里?
三、开发中实际的实现的问题
- 上面参考连接中,只是一些demo 实际进行开发中,可以根据业务场景不同设定好不同消息模板储存到数据库中,其中数据库的一个字段用于存储消息内容,消息内容可以使用 username 先占用接受者的姓名,最后在java程序中将username换成真正的接受者的名字
- 同样可以将邮件的发送的服务器以及一些关键的配置信息配置到数据库中,然后在java程序中动态获取这些配置信息,而不是项目的配置文件中,这样有利于线上动态切换,而不用修改配置文件重新部署项目(当然这种仅限于系统中经常需要切换发送邮件的情况)
具体的代码可以参考一下连接:
https://github.com/Dr-Water/ratel-fast/blob/master/src/main/java/com/ratel/fast/modules/sys/controller/EmailController.java
https://github.com/Dr-Water/ratel-fast/blob/master/src/main/java/com/ratel/fast/modules/sys/service/impl/SysEmailServiceImpl.java