javascript
SpringBoot2.5.4发送邮件4种方式
一.準備
在創(chuàng)建SpringBoot項目
二、選擇依賴
選擇依賴時 發(fā)現(xiàn)其選擇依賴時有郵件發(fā)送與Springboot整合的jar包,我們勾選即可
如果未勾選也不要緊,咱們手動導入
三、等待依賴下載完成, 增加配置文件
spring:mail:#smtp服務主機 qq郵箱則為smtp.qq.comhost: smtp.qq.com#服務協(xié)議protocol: smtp# 編碼集default-encoding: UTF-8#發(fā)送郵件的賬戶username: 251xxxx2@qq.com#授權(quán)碼password: opwuxxxxxoceaiitest-connection: trueproperties:mail:smtp:auth: truestarttls:enable: truerequired: true四、簡單郵件發(fā)送
Springboot已經(jīng)給我們郵件發(fā)送進行了非常好的整合了,我們只需要注入郵件發(fā)送接口 調(diào)用其中的方法,就能輕松而愉悅的進行郵件發(fā)送了!
我們只需要在任意交由Spring管理的類(例如你的controller、service層等)下注入以下接口即可
@Autowiredprivate JavaMailSender mailSender;由于每一封郵件都有固定的內(nèi)容 例如 收件人信息 郵件內(nèi)容 郵件標題 那么我們充分利用java面向?qū)ο蟮奶匦?#xff0c;我們把郵件發(fā)送抽取為一個對象
獲取發(fā)送方賬戶信息
@Value("${spring.mail.username}")private String from;定義一個實體:
package info.lyscms.springboot.mail.entity;import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;/*** @author Administrator * @version 2021/5/13 0013*/@Data@AllArgsConstructor@NoArgsConstructorpublic class SimpleEmailEntity {/*** 主題*/private String subject;/*** 主題內(nèi)容*/private String content;/*** 接收人郵箱列表*/private String[] tos; }定義發(fā)送接口
void sendSimpleMail(SimpleEmailEntity simpleEmailEntity);發(fā)送郵件方法實現(xiàn)示例
@Overridepublic void sendSimpleMail(SimpleEmailEntity simpleEmailEntity) {SimpleMailMessage message = new SimpleMailMessage();message.setFrom(from);message.setSubject(simpleEmailEntity.getSubject());message.setText(simpleEmailEntity.getContent());message.setTo(simpleEmailEntity.getTos());javaMailSender.send(message);}定義一個controller類并定義發(fā)送郵件接口
package info.lyscms.springboot.mail.controller;?import info.lyscms.springboot.mail.entity.SimpleEmailEntity;import info.lyscms.springboot.mail.service.MailService;import lombok.RequiredArgsConstructor;import org.springframework.web.bind.annotation.*;?@RestController@RequiredArgsConstructor@RequestMapping("/mail")public class MailController {?private final MailService mailService;?@PostMapping("/simple")public void sendSimpleMail(@RequestBody SimpleEmailEntity simpleEmailEntity){mailService.sendSimpleMail(simpleEmailEntity);}}使用類似postman工具調(diào)用接口
###POST http://localhost:8080/mail/simpleContent-Type: application/json?{"tos": ["ly23580512@163.com"],"subject": "Hello Watcher","content": "Welcome to lyscms.info"}五、HTML格式郵件發(fā)送
1.創(chuàng)建一個MINE消息
//創(chuàng)建一個MINE消息MimeMessage message = javaMailSender.createMimeMessage();2.創(chuàng)建一個MimeMessageHelper對象,并且需要傳入一個MimeMessage
MimeMessageHelper mineHelper = new MimeMessageHelper(message, true);//誰發(fā)mineHelper.setFrom(from);//誰要接收mineHelper.setTo(htmlEmailEntity.getTos());//郵件主題mineHelper.setSubject(htmlEmailEntity.getSubject());//郵件內(nèi)容 true 表示帶有附件或htmlmineHelper.setText(htmlEmailEntity.getContent(), true);3.使用JavaMailSender接口發(fā)送
javaMailSender.send(message);4.content 是類似<h1>Hi Xiaoming…</h1><span>Hi Xiaoming…</span>這樣的HTML字符串即可。
###POST http://localhost:8080/mail/htmlContent-Type: application/json?{"tos": ["ly23580512@163.com],"subject": "Hello Watcher Html","content": "<h1>Hi Xiaoming...</h1><span>Hi Xiaoming...</span>"}六、帶附件郵件發(fā)送
相對html發(fā)送方式就多了一個addAttachment方法
//添加附件 mineHelper.addAttachment("附件文件名稱.txt",new File("D://1.txt"));訪問
### POST http://localhost:8080/mail/file Content-Type: application/json{"tos": ["ly23580512@163.com"],"subject": "Hello Watcher Html File","content": "<h1>Hi Xiaoming...</h1><span>Hi Xiaoming...</span>" }七、帶內(nèi)嵌圖片郵件發(fā)送
// 圖片占位寫法 如果圖片鏈接寫入模板 注釋下面這一行 helper.addInline("img01",new FileSystemResource(filePath)); ### POST http://localhost:8080/mail/inline/image Content-Type: application/json{"tos": ["ly23580512@163.com"],"subject": "Hello Watcher Html images","content": "<h1>Hello</h1><p><img src=\"cid:img01\"></p>" }總結(jié)
以上是生活随笔為你收集整理的SpringBoot2.5.4发送邮件4种方式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Debug Tensorflow: 随着
- 下一篇: 实现springboot的starter