springboot整合mail實現郵箱的發送功能
第一步添加mail的依賴
<!--引入mail的依賴 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>
第二步編寫郵箱的
yml配置文件
spring: #郵箱配置 mail: host: smtp.qq.com username: [email protected] #QQ郵箱的授權碼 password: 授權碼 default-encoding: UTF-8 properties: mail: smtp: auth: true starttls: enable: true required: true
properties的配置文件
#qq郵箱配置 # JavaMailSender 郵件發送的配置 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
編寫兩個發送郵件的接口
package www.it.com.server; import java.io.File; /** * @author wangjie: * @version 創建時間:2019年8月27日 上午10:13:08 * @Description 類描述: */ public interface MailServer { /** * @param sendUser 郵件接收人 * @param title 郵件的標題 * @param text 郵件的內容 */ void sendMailServer(String sendUser,String title,String text); /** * 帶有附件郵箱的發送 * @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 創建時間: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) { //創建郵件的實體 用於封裝發送郵件需要的信息 SimpleMailMessage simpleMailMessage=new SimpleMailMessage(); //郵件的發送人 simpleMailMessage.setFrom(fromUser); //郵件接收人 simpleMailMessage.setTo(sendUser); //郵件的標題 simpleMailMessage.setSubject(title); //郵件的內容 simpleMailMessage.setText(text); //發送郵件 javaMailSender.send(simpleMailMessage); } @Override public void sendFileMail(String sendUser, String title, String text, File file) { MimeMessage mimeMessage = null; try { mimeMessage =javaMailSender.createMimeMessage(); //創建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 創建時間:2019年8月27日 上午9:52:30 * @Description 類描述:郵件發送的controller */ @RestController() @RequestMapping("/mail") public class MailController { @Autowired private MailServer mailServer; /** * 簡單郵件的發送 * @return */ @RequestMapping("/send") public String sendMail() { //2694433816 mailServer.sendMailServer("[email protected]", "你好", "明天去你傢玩"); return "success"; } /** * 發送帶有附件的郵件 */ @RequestMapping("/sendFile") public String sendFileMail() { File file=new File("C://Users//DELL//Desktop//學習資料.txt"); mailServer.sendFileMail("[email protected]", "你好dsf", "這是第二封帶有附件的郵件", file); return "success"; } }
授權碼生成的步驟
登錄郵箱選擇設置
選擇賬戶
滑動到下面開啟相應的服務 選擇生成授權碼
到此這篇關於springboot整合mail實現郵箱的發送功能的文章就介紹到這瞭,更多相關springboot整合mail郵箱發送內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- SpringBoot任務之詳解郵件任務
- 基於Javamail實現發送郵件(QQ/網易郵件服務器)
- SpringBoot實現郵件發送功能的姿勢分享
- springboot實現發送QQ郵箱
- Springboot實現發送郵件