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;
//發送文本消息,不帶附件
@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,用戶名和密碼改成網易郵箱對應的就行