1. 效果發送效果圖

連續發送了四封郵件:普通文本郵件,帶附件的郵件,內容包含圖片的郵件,發送html郵件。

alt

普通文本郵件截圖

alt

帶附件的郵件截圖

alt

內容包含圖片的郵件截圖(圖片太大,就截取一部分)

alt

發送html郵件截圖

alt

2. 郵件開發准備工作

  • 引入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 spring.mail.username=jackdking@foxmail.com spring.mail.password=郵箱授權碼,非郵箱登入密碼 
  • from,即為郵件發送者,一般設置在配置文件中

  • to,郵件接收者,此參數可以為數組,同時發送多人

  • subject,郵件主題

  • content,郵件的主體

  • 郵件發送者 from 一般采用固定的形式寫到配置文件中。

  • 在qq郵箱中開啟收發郵件步驟

    • 進入郵件開啟頁面 alt alt alt

    • 點擊開啟,並發送短信 alt

    • 確認發送,郵件收發開啟 alt alt

3. springboot引入mail服務

  • 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 = "jackdking@foxmail.com";//我自己的郵箱 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 = "jackdking@foxmail.com";//我自己的郵箱 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 = "jackdking@foxmail.com";//我自己的郵箱 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 = "jackdking@foxmail.com";//我自己的郵箱 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(); } } 

4. 啟動應用,開始4種郵件發送測試

  • 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封郵件

alt

 


 

查看更多 “Java架構師方案” 系列文章 以及 SpringBoot2.0學習示例

 


如果大家覺得這篇文章對你學習架構有幫助的話,還請點贊,在看支持一下。github項目也記得點個星哦!


完整的demo項目,請關注公眾號“前沿科技bot“並發送"郵件系統"獲取。

 

alt