springboot整合mail實現郵箱的發(fā)送功能
更新時間:2021年09月06日 17:30:32 作者:求知若渴的蝸牛
本文分步驟給大家介紹springboot整合mail實現郵箱的發(fā)送功能,代碼簡單易懂,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
第一步添加mail的依賴
<!--引入mail的依賴 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>
第二步編寫郵箱的
yml配置文件
spring:
#郵箱配置
mail:
host: smtp.qq.com
username: 2631245486@qq.com
#QQ郵箱的授權碼
password: 授權碼
default-encoding: UTF-8
properties:
mail:
smtp:
auth: true
starttls:
enable: true
required: true
properties的配置文件
#qq郵箱配置 # JavaMailSender 郵件發(fā)送的配置 spring.mail.host=smtp.qq.com spring.mail.username=用戶qq郵箱 #QQ郵箱的授權碼 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=true spring.mail.default-encoding=UTF-8 #163郵箱配置 spring.mail.host=smtp.163.com spring.mail.username=用戶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=true spring.mail.default-encoding=UTF-8
編寫兩個發(fā)送郵件的接口
package www.it.com.server;
import java.io.File;
/**
* @author wangjie:
* @version 創(chuàng)建時間:2019年8月27日 上午10:13:08
* @Description 類描述:
*/
public interface MailServer {
/**
* @param sendUser 郵件接收人
* @param title 郵件的標題
* @param text 郵件的內容
*/
void sendMailServer(String sendUser,String title,String text);
/**
* 帶有附件郵箱的發(fā)送
* @param sendUser
* @param title
* @param text
* @param file
*/
void sendFileMail(String sendUser,String title,String text,File file);
}
接口的實現
package www.it.com.server.impl;
import java.io.File;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import org.apache.logging.log4j.message.SimpleMessage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;
import www.it.com.server.MailServer;
/**
* @author wangjie:
* @version 創(chuàng)建時間:2019年8月27日 上午10:13:58
* @Description 類描述:
*/
@Service
public class MailServerImpl implements MailServer {
@Value("${spring.mail.username}")
private String fromUser;
@Autowired
private JavaMailSender javaMailSender;
public String getFromUser() {
return fromUser;
}
public void setFromUser(String fromUser) {
this.fromUser = fromUser;
}
@Override
public void sendMailServer(String sendUser, String title, String text) {
//創(chuàng)建郵件的實體 用于封裝發(fā)送郵件需要的信息
SimpleMailMessage simpleMailMessage=new SimpleMailMessage();
//郵件的發(fā)送人
simpleMailMessage.setFrom(fromUser);
//郵件接收人
simpleMailMessage.setTo(sendUser);
//郵件的標題
simpleMailMessage.setSubject(title);
//郵件的內容
simpleMailMessage.setText(text);
//發(fā)送郵件
javaMailSender.send(simpleMailMessage);
}
@Override
public void sendFileMail(String sendUser, String title, String text, File file) {
MimeMessage mimeMessage = null;
try {
mimeMessage =javaMailSender.createMimeMessage();
//創(chuàng)建mimeMessageHelper對象用于處理帶有附件的郵件信息
MimeMessageHelper mimeMessageHelper=new MimeMessageHelper(mimeMessage,true);
mimeMessageHelper.setFrom(fromUser);
mimeMessageHelper.setTo(sendUser);
mimeMessageHelper.setSubject(title);
mimeMessageHelper.setText(text);
FileSystemResource r = new FileSystemResource(file);
//添加附件
mimeMessageHelper.addAttachment("附件", r);
javaMailSender.send(mimeMessage);
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
controller編碼
package www.it.com.controller;
import java.io.File;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import www.it.com.server.MailServer;
/**
* @author wangjie:
* @version 創(chuàng)建時間:2019年8月27日 上午9:52:30
* @Description 類描述:郵件發(fā)送的controller
*/
@RestController()
@RequestMapping("/mail")
public class MailController {
@Autowired
private MailServer mailServer;
/**
* 簡單郵件的發(fā)送
* @return
*/
@RequestMapping("/send")
public String sendMail() {
//2694433816
mailServer.sendMailServer("2631245486@qq.com", "你好", "明天去你家玩");
return "success";
}
/**
* 發(fā)送帶有附件的郵件
*/
@RequestMapping("/sendFile")
public String sendFileMail() {
File file=new File("C://Users//DELL//Desktop//學習資料.txt");
mailServer.sendFileMail("2631245486@qq.com", "你好dsf", "這是第二封帶有附件的郵件", file);
return "success";
}
}
授權碼生成的步驟
登錄郵箱選擇設置

選擇賬戶

滑動到下面開啟相應的服務 選擇生成授權碼

到此這篇關于springboot整合mail實現郵箱的發(fā)送功能的文章就介紹到這了,更多相關springboot整合mail郵箱發(fā)送內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Spring Boot CORS 配置方法允許跨域請求的最佳實踐方案
跨域請求在現代Web開發(fā)中非常重要,特別是在涉及多個前端和后端服務時,本文詳細介紹了跨域請求的背景、重要性以及如何解決跨域問題,通過SpringBoot框架的CORS配置,可以有效地處理跨域請求,確保數據傳輸的安全性和用戶體驗,感興趣的朋友跟隨小編一起看看吧2024-11-11
maven package 打包報錯 Failed to execute goal的解決
這篇文章主要介紹了maven package 打包報錯 Failed to execute goal的解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-11-11
spring源碼學習之bean的初始化以及循環(huán)引用
這篇文章主要給大家介紹了關于spring源碼學習之bean的初始化以及循環(huán)引用的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-10-10

