准備工作
開啟PO3/SMTP服務
打開qq郵箱>賬戶
記住這串授權碼 會用到
實現步驟
- 創建一個Springboot項目
勾選web依賴
- 導入QQ郵件所需依賴
<!--qq郵件發送所需依賴-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
- 配置application.properties
#配置郵件消息
spring.mail.host=smtp.qq.com
#發送郵件者信箱
spring.mail.username=xxxxxxxxx@qq.com
#PO3/SMTP服務時郵箱的授權碼
spring.mail.password=xxxxxxxxxxxxxxxx
spring.mail.default-encoding=UTF-8
spring.mail.port=465
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
spring.mail.properties.mail.debug=true
- 編寫controller
@RestController
public class EmailController {
@Autowired
JavaMailSender mailSender;//注入QQ發送郵件的bean
//定義發送的內容 我這里發送一張圖片 需要html標簽
public static String body="<img src='https://images.cnblogs.com/cnblogs_com/joker-dj/1691556/t_20040706414135.png' alt=''>";
@RequestMapping("/qqemail")
public Object qqemail(@RequestParam String qq,String title) {
try {
MimeMessage mimeMessage = this.mailSender.createMimeMessage();
MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
message.setFrom("******@qq.com");//設置發件qq郵箱
qq+="@qq.com"; //補全地址
message.setTo(qq); //設置收件人
message.setSubject(title); //設置標題
message.setText(body,true); //第二個參數true表示使用HTML語言來編寫郵件
// FileSystemResource file = new FileSystemResource(
// File file = new File("圖片路徑");
// helper.addAttachment("圖片.jpg", file);//添加帶附件的郵件
// helper.addInline("picture",file);//添加帶靜態資源的郵件
this.mailSender.send(mimeMessage);
return "發送成功";
} catch (Exception ex) {
ex.printStackTrace();
return "發送成功";
}
}
}
- 編寫前端頁面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>QQ郵件發送</title>
</head>
<body>
<form action="qqemail">
<input type="text" placeholder="請輸入收件人qq號"name="qq" value="">
<input type="text" placeholder="請輸入郵件標題" name="title">
<input type="submit" value="發送">
</form>
</body>
</html>
- 啟動運行 瀏覽器輸入 http://localhost:8080/qqEmail.html
輸入qq號 和標題 點擊發送
已收到發送來的圖片