1. 程式人生 > >SpringBoot實現發送郵件

SpringBoot實現發送郵件

handler source () print pop3 tails smtp sdn nts

1.QQ郵箱發送郵件設置

首先登錄QQ郵箱>>>登錄成功後找到設置>>>然後找到郵箱設置>>>點擊賬戶>>>找到POP3|SMTP服務>>>點擊開啟(開啟需要驗證,驗證成功後會有一串授權碼用於發送郵件使用)>>>驗證成功 看圖操作

技術分享圖片 技術分享圖片 技術分享圖片

授權碼一定記得復制出來

**0.引入包**
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>
**1.填寫配置文件此處使用yml文件配置,使用yml配置記得註意格式哦,以免出錯。**
spring:
 mail:
 
default-encoding: UTF-8 host: smtp.qq.com protocol: smtp username: 郵箱賬號 password: 服務授權碼(不是QQ密碼而是剛剛開啟的POP3/SMTP服務 的授權碼) smtp: auth: true starttls: enable: true required: true **2.新建類實現發送郵件** import java.io.File; import javax.mail.internet.MimeMessage; import org.springframework.beans.factory.annotation.Autowired;
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.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController;
/** * @author ADMIN * @date 2018年10月9日 下午3:59:59 * @version 1.0 */ @RestController public class MailController { @Autowired JavaMailSender jms; //發送文本消息,不帶附件,內容是可以帶html等標簽之類的哦 @GetMapping("/send") public String send(){ //建立郵件消息 SimpleMailMessage mainMessage = new SimpleMailMessage(); //發送者 mainMessage.setFrom("發送者郵箱(需要在配置文件中一致)"); //接收者 mainMessage.setTo("接收者郵箱"); //發送的標題 mainMessage.setSubject("發送的標題"); //發送的內容 mainMessage.setText("發送的內容"); jms.send(mainMessage); return "true"; } /** * 帶附件發送,可多個附件 圖片,doc都可以發送。 * ADMIN * 2018年10月13日 下午12:31:13 */ @GetMapping("/sendFile") public void sendAttachmentsMail() { String [] fileArray={"C:\Users\Administrator\Desktop\圖片\0.jpg","C:\Users\Administrator\Desktop\圖片\aa.zip"}; MimeMessage message=jms.createMimeMessage(); try { MimeMessageHelper helper=new MimeMessageHelper(message,true); helper.setFrom("發送者郵箱(需要在配置文件中一致)"); helper.setTo("接收者郵箱"); helper.setSubject("發送標題"); helper.setText("發送內容"); //驗證文件數據是否為空 if(null != fileArray){ FileSystemResource file=null; for (int i = 0; i < fileArray.length; i++) { //添加附件 file=new FileSystemResource(fileArray[i]); helper.addAttachment(fileArray[i].substring(fileArray[i].lastIndexOf(File.separator)), file); } } jms.send(message); System.out.println("帶附件的郵件發送成功"); }catch (Exception e){ e.printStackTrace(); System.out.println("發送帶附件的郵件失敗"); } } } PS:網易郵箱發送和QQ郵箱是一樣的,只需要修改配置文件的host,username,password三個參數。將host改成:smtp.163.com,用戶名和密碼改成網易郵箱對應的就行


原文:https://blog.csdn.net/qq_34523482/article/details/83037551

SpringBoot實現發送郵件