javascript
SpringBoot中整合Mail实现发送邮件
場景
項目搭建專欄:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/column/info/35688
實現(xiàn)最簡單的帶標題以及文本內(nèi)容的郵件發(fā)送。使用qq郵件服務(wù)器。
實現(xiàn)
項目中引入郵件依賴
<!-- 郵件依賴 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>找到項目的全局配置文件application.properties
將username改為要發(fā)送郵件的賬號,這里是qq郵箱賬號
下面password設(shè)置為qq郵箱的授權(quán)碼
#JavaMail郵件發(fā)送的配置 #指明郵件發(fā)送服務(wù)器? 如果是163的則為smtp.163.com spring.mail.host=smtp.qq.com spring.mail.username= #授權(quán)碼qq郵箱需要設(shè)置并獲取授權(quán)碼? 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郵箱設(shè)置授權(quán)碼:
qq郵箱--設(shè)置--賬戶--POP3/SMTP服務(wù)
開啟服務(wù)后就會獲得qq的授權(quán)碼
在項目下新建email包
在email包下新建配置類實現(xiàn)從全局配置文件中獲取自定義屬性
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,有一個發(fā)送郵件的方法。
package com.example.demo.email;import org.springframework.stereotype.Service;@Service public interface EmailService {void sendSimpleMail(String senfTo,String title,String content); }新建接口實現(xiàn)類
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) {//簡單郵件的發(fā)送SimpleMailMessage message = new SimpleMailMessage();message.setFrom(emailConfig.getEmailFrom());message.setTo(sendTo);message.setSubject(title);message.setText(content);mailSender.send(message);}}通過SimpleMailMessage 設(shè)置要發(fā)送郵件的賬號以及標題和內(nèi)容。
然后使用JavaMailSender 實現(xiàn)發(fā)送郵件。
新建controller實現(xiàn)測試郵件發(fā)送。
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方法第一個參數(shù)就是要發(fā)送的郵箱賬號。
項目啟動類下添加此包為可掃描。
@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
總結(jié)
以上是生活随笔為你收集整理的SpringBoot中整合Mail实现发送邮件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringBoot中怎样基于slf4j
- 下一篇: SpringBoot中整合Mail实现发