开发者学堂课程【SpringBoot 实战教程: 实现发送带附件的邮件】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/651/detail/10806
实现发送带附件的邮件
1、在 service 中增加一个功能,发送带附件的邮件,之前三个参数还是一样的,跟简单的邮件相比就是多了一个附件。
/ /发送带附件的邮件
@Override
public void sendAttachmentMail (String sendTo, String title, String content, File file) {
发送给谁,标题,内容,附件(文件)用 file 类型接收文件
MimeMessage mimeMessage=mailSender.createMimeMessage () ;
把要发送的文件封装成 mimemessage 类型,对象的创建需要 mailsender 对象进行创建,通过它里面的 createMimeMessage 得到邮件对象
try {
MimeMessageHelper helper = new MimeMessageHelper (mimeMessage, true)
;邮件相关信息进行配置,需要借助帮助类,需要接收 mimeMessage 对象,需要使用两个参数的,除了封装邮件对象外,第二个参数是布尔类型,把它设置为 true,这时才能把附件发送出去
helper . setFrom (emailConfig . getEmailFrom() ) ;
发件人
helper . setTo (sendTo) ;
收件人
helper . setSubject (title) ;
标题
helper . setText (content) ;
邮件内容
FileSystemResource r = new FileSystemResource (file) ;
附件也要封装对象中也要借助 helper,附件就是文件,封装成这个类型,接收file类型的对象,file 就是接收的附件
helper . addAttachment ("
附件
",r) ;
把附件放在 message 邮件对象中,借助 helper,写 resource 类型的,带附件的邮件的相关信息通过 helper 帮助类进行了配置
} catch (Exception е) {
е. printStackTrace () ;
}
mailSender . send (mimeMessage) ;
进行邮件发送
}
2、在 controller 里面调用。附件就是文件,文件属于静态资源,把它放到 resources 下的 static 下。
3、拷贝一个文本文件,附件封装成 file 类型的对象。发给自己,邮件标题,邮件内容,返回 success 字符串。
@Reques tMapping("/attach")
@ResponseBody
public String
sendAt tachmentEmail ()
{
File
file = new
Fіlе ("ѕrс/mаіn/ rеѕоurсеѕ/ ѕtаtіс/ бб. tхt") ;
emailService . sendAttachmentMail ("465008297@qq.com", "hello",
’’
你好‘’
,
‘’
明天去你家玩儿‘’
,
Return
‘’success" ;
}
4、启动,实现发送。访问 controller 的路径 attach,网页中显示 success 字符串。成功状态。
查看邮箱,标题是 hello,内容是你好,下面是附件,可以进行预览,下载。