當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
SpringBoot中整合Mail实现发送邮件
生活随笔
收集整理的這篇文章主要介紹了
SpringBoot中整合Mail实现发送邮件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
場景
項目搭建專欄:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/column/info/35688
實現最簡單的帶標題以及文本內容的郵件發送。使用qq郵件服務器。
實現
項目中引入郵件依賴
<!-- 郵件依賴 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>找到項目的全局配置文件application.properties
將username改為要發送郵件的賬號,這里是qq郵箱賬號
下面password設置為qq郵箱的授權碼
#JavaMail郵件發送的配置 #指明郵件發送服務器? 如果是163的則為smtp.163.com spring.mail.host=smtp.qq.com spring.mail.username= #授權碼qq郵箱需要設置并獲取授權碼? 163則直接為郵箱密碼 spring.mail.password= spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.starttls.enable=true spring.mail.properties.mail.smtp.starttls.required=trueqq郵箱設置授權碼:
qq郵箱--設置--賬戶--POP3/SMTP服務
開啟服務后就會獲得qq的授權碼
在項目下新建email包
在email包下新建配置類實現從全局配置文件中獲取自定義屬性
package com.example.demo.email;import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @Component public class EmailConfig {@Value("${spring.mail.username}")private String emailFrom;public String getEmailFrom() {return emailFrom;}public void setEmailFrom(String emailFrom) {this.emailFrom = emailFrom;}}新建接口EmailService,有一個發送郵件的方法。
package com.example.demo.email;import org.springframework.stereotype.Service;@Service public interface EmailService {void sendSimpleMail(String senfTo,String title,String content); }新建接口實現類
package com.example.demo.email;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.stereotype.Service; @Service public class EmailServiceImpl implements EmailService {@Autowiredprivate EmailConfig emailConfig;@Autowiredprivate JavaMailSender mailSender;@Overridepublic void sendSimpleMail(String sendTo, String title, String content) {//簡單郵件的發送SimpleMailMessage message = new SimpleMailMessage();message.setFrom(emailConfig.getEmailFrom());message.setTo(sendTo);message.setSubject(title);message.setText(content);mailSender.send(message);}}通過SimpleMailMessage 設置要發送郵件的賬號以及標題和內容。
然后使用JavaMailSender 實現發送郵件。
新建controller實現測試郵件發送。
package com.example.demo.email;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody;@Controller public class EmailController {@Autowiredprivate EmailService emailService;@RequestMapping("simpleEmail")@ResponseBodypublic String sendSimpleEmail() {emailService.sendSimpleMail("****@qq.com", "測試", "簡單郵件");return "success";} }sendSimpleMail方法第一個參數就是要發送的郵箱賬號。
項目啟動類下添加此包為可掃描。
@SpringBootApplication(scanBasePackages= {"com.example.demo.controller","com.example.demo.service","com.example.demo.interceptor","com.example.demo.handler","com.example.demo.job","com.example.demo.email"})啟動項目,訪問
http://localhost:8080/simpleEmail
可以看到瀏覽器返回success,然后收到郵件。
效果
?
?
源碼下載
https://download.csdn.net/download/badao_liumang_qizhi/11114781
總結
以上是生活随笔為你收集整理的SpringBoot中整合Mail实现发送邮件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringBoot中怎样基于slf4j
- 下一篇: SpringBoot中整合Mail实现发