連續發送了四封郵件:普通文本郵件,帶附件的郵件,內容包含圖片的郵件,發送html郵件。
普通文本郵件截圖
帶附件的郵件截圖
內容包含圖片的郵件截圖(圖片太大,就截取一部分)
發送html郵件截圖
- 引入pom文件依賴
<!-- 郵件 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
- 在application.properties 中添加郵箱配置
spring.mail.host=smtp.qq.com
spring.mail.port=587
[email protected]
spring.mail.password=郵箱授權碼,非郵箱登入密碼
-
from,即為郵件發送者,一般設置在配置文件中
-
to,郵件接收者,此參數可以為數組,同時發送多人
-
subject,郵件主題
-
content,郵件的主體
-
郵件發送者 from 一般採用固定的形式寫到配置文件中。
-
在qq郵箱中開啟收發郵件步驟
-
進入郵件開啟頁面
-
點擊開啟,並發送簡訊
-
確認發送,郵件收發開啟
-
- MailServiceImpl類注入郵件API類
/**
* @author jackdking
* @date 2018/5/3 22:07
*/
@Component
public class MailServiceImpl implements IMailService {
@Autowired
private JavaMailSender mailSender;
@Value("${spring.mail.username}")
private String mailFrom;
......
- 4種郵件類型方法
/**
* 發送簡單郵件
*
* @param to
* @param subject
* @param content
*/
@Override
public void sendSimpleEmail(String to,String subject,String content) {
SimpleMailMessage message = new SimpleMailMessage();
subject="簡單文本郵件";
content="你好,我是空白";
to = "[email protected]";//我自己的郵箱
message.setFrom(mailFrom);
message.setTo(to);
message.setSubject(subject);
message.setText(content);
mailSender.send(message);
}
/**
* 發送html郵件
*
* @param to
* @param subject
* @param content
*/
@Override
public void sendHtmlMail(String to, String subject, String content) {
MimeMessage mimeMessage = mailSender.createMimeMessage();
try {
//true表示需要創建一個multipart message
subject="發送html郵件";
content="<html>\n" +
"<body>\n" +
" <h3>hello world !你好,我是空白 ,發送html郵件!</h3>\n" +
"</body>\n" +
"</html>";
to = "[email protected]";//我自己的郵箱
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);
helper.setFrom(mailFrom);
helper.setTo(to);
helper.setSubject(subject);
helper.setText(content,true);
mailSender.send(mimeMessage);
} catch (MessagingException e) {
e.printStackTrace();
}
}
/**
* 發送帶附件的郵件
*
* @param to
* @param subject
* @param content
* @param filepath
*/
@Override
public void sendFileMail(String to, String subject, String content, String filepath) {
MimeMessage mimeMessage = mailSender.createMimeMessage();
subject="發送帶附件的郵件";
content="你好,我是空白";
to = "[email protected]";//我自己的郵箱
filepath="D:\\微信圖片_20200524230149.jpg";
try {
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);
helper.setFrom(mailFrom);
helper.setTo(to);
helper.setSubject(subject);
helper.setText(content,true);
FileSystemResource file = new FileSystemResource(new File(filepath));
String fileName = filepath.substring(filepath.lastIndexOf(File.separator));
helper.addAttachment(fileName,file);
mailSender.send(mimeMessage);
}catch (Exception e){
e.printStackTrace();
}
}
@Override
public void sendPictureMail(String to, String subject, String content, String picturepath) {
// TODO Auto-generated method stub
String Id = "jackdking1314";
content="<html><body>圖片郵件:<img src=\'cid:" + Id + "\' ></body></html>";
String imgPath = "D:\\微信圖片_20200524230149.jpg";
to = "[email protected]";//我自己的郵箱
MimeMessage message = mailSender.createMimeMessage();
try {
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(mailFrom);
helper.setTo(to);
helper.setSubject("這是有圖片的郵件");
helper.setText(content, true);
FileSystemResource res = new FileSystemResource(new File(imgPath));
helper.addInline(Id, res);
mailSender.send(message);
} catch (MessagingException e) {
e.printStackTrace();
}
}
- SpringbootMailApplication應用啟動類實現了ApplicationRunner介面,應用啟動成功就執行run方法,發送4種郵件。
@SpringBootApplication
public class SpringbootMailApplication implements ApplicationRunner
{
@Autowired
IMailService mailService;
public static void main( String[] args )
{
SpringApplication.run(SpringbootMailApplication.class, args);
}
//啟動應用後直接發送郵件
@Override
public void run(ApplicationArguments args) throws Exception {
// TODO Auto-generated method stub
mailService.sendSimpleEmail(null, null, null);
mailService.sendHtmlMail(null, null, null);
mailService.sendFileMail(null, null, null,null);
mailService.sendPictureMail(null, null, null,null);
}
}
- 應用啟動成功,並成功發送了4封郵件
完整的demo項目,請關注公眾號「前沿科技bot「並發送”郵件系統”獲取。