SpringBoot-JavaMailSender接口實戰( 二 )


發送純文本郵件servicepackage com.galaxy.mailsender.service;import org.apache.commons.lang3.StringUtils;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Value;import org.springframework.mail.javamail.JavaMailSenderImpl;import org.springframework.mail.javamail.MimeMessageHelper;import org.springframework.stereotype.Service;import javax.mail.MessagingException;import java.util.Date;/** * 郵件業務類 * @author Galaxy */@Servicepublic class MailService {/*** 注入郵件工具類*/@Autowiredprivate JavaMailSenderImpl javaMailSender;@Value("${spring.mail.username}")private String sendMailer;/*** 檢測郵件信息類* @param to* @param subject* @param text*/private void checkMail(String to,String subject,String text){if(StringUtils.isEmpty(to)){throw new RuntimeException("郵件收信人不能為空");}if(StringUtils.isEmpty(subject)){throw new RuntimeException("郵件主題不能為空");}if(StringUtils.isEmpty(text)){throw new RuntimeException("郵件內容不能為空");}}/*** 發送純文本郵件* @param to* @param subject* @param text*/public void sendTextMailMessage(String to,String subject,String text){try {//true 代表支持復雜的類型MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(javaMailSender.createMimeMessage(),true);//郵件發信人mimeMessageHelper.setFrom(sendMailer);//郵件收信人1或多個mimeMessageHelper.setTo(to.split(","));//郵件主題mimeMessageHelper.setSubject(subject);//郵件內容mimeMessageHelper.setText(text);//郵件發送時間mimeMessageHelper.setSentDate(new Date());//發送郵件javaMailSender.send(mimeMessageHelper.getMimeMessage());System.out.println("發送郵件成功:"+sendMailer+"->"+to);} catch (MessagingException e) {e.printStackTrace();System.out.println("發送郵件失?。?+e.getMessage());}}}Controllerpackage com.galaxy.mailsender.controller;import com.galaxy.mailsender.service.MailService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class MailController {@Autowiredprivate MailService mailService;/*** 發送文本郵件* @param to* @param subject* @param text*/@RequestMapping("/sendTextMail")public void sendTextMail(String to,String subject,String text){mailService.sendTextMailMessage(to,subject,text);}}測試

SpringBoot-JavaMailSender接口實戰

文章插圖

SpringBoot-JavaMailSender接口實戰

文章插圖
結果
SpringBoot-JavaMailSender接口實戰

文章插圖
補充發送html郵件Spring Boot支持使用HTML發送郵件是通過MimeMessage來完成的 。
發送帶附件的郵件MimeMessageHelper支持發送復雜郵件模板,支持文本、附件、HTML、圖片等 。比如需要發送附件 , 則在上面的代碼中通過調用helper的addAttachment(fileName, file)方法即可 。
例:發送HTML郵件package com.example.emaildemo.controller;import com.example.emaildemo.service.MailService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;/** * 測試郵件發送 * @author galaxy */@RestControllerpublic class SendMailController {@Autowiredprivate MailService mailService;/*** 發送HTML郵件* @param to* @param subject* @param content*/@RequestMapping("/sendHtmlMailMessage")public void sendHtmlMailMessage(String to,String subject,String content){mailService.sendHtmlMailMessage(to,subject,content);}}

推薦閱讀