SpringBoot使用JavaMailSender实现邮件发送
本文采用的是Spring的JavaMailSender接口实现邮件发送与开发。这是一个很通用的工具接口,尤其是在springboot中只需要引入一个maven依赖,无需任何配置就可以从容地进行开发工作,简单快捷高效。
一、在springboot的pom.xml中加入maven依赖
二、邮件发送service层接口
/**
* 邮件Service
*@author Segoul
*/
public interface MailService {
/**
* 发送HTML页面的邮件(包括普通邮件)
*@param mailTo 邮件接收地址
*@param title 邮件标题
*@param content 邮件内容
*/
void sendHtmlMail(StringmailTo, Stringtitle, Stringcontent);
/**
* 发送带有附件的邮件
*@param mailTo 邮件接收地址
*@param title 邮件标题
*@param content 邮件内容
*@param filePath 文件地址
*@param fileName 文件名称
*@param fileType 文件类型后缀
*/
void sendAttachMail(StringmailTo,Stringtitle,Stringcontent,
StringfilePath,StringfileName,StringfileType);
}
三、邮件发送service实现
import com.zlwon.rpc.MailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;
import javax.mail.internet.MimeMessage;
import java.io.File;
/**
* 邮件ServiceImpl
*@author Segoul
*/
@Service
public class MailServiceImpl implements MailService {
@Autowired
private JavaMailSender mailSender;
@Value("${spring.mail.username}")
private String sender; //发送者
/**
* 发送HTML页面的邮件(包括普通邮件)
*@param mailTo 邮件接收地址
*@param title 邮件标题
*@param content 邮件内容
*/
public void sendHtmlMail(StringmailTo, Stringtitle, Stringcontent){
//配置邮件基本信息
MimeMessage message = null;
try{
message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message,true);
helper.setFrom(sender);
helper.setTo(mailTo);
helper.setSubject(title);
helper.setText(content,true);
}catch(Exceptione) {
e.printStackTrace();
}
//发送邮件
mailSender.send(message);
}
/**
* 发送带有附件的邮件
*@param mailTo 邮件接收地址
*@param title 邮件标题
*@param content 邮件内容
*@param filePath 文件地址
*@param fileName 文件名称
*@param fileType 文件类型后缀
*/
public void sendAttachMail(StringmailTo,Stringtitle,Stringcontent,
StringfilePath,StringfileName,StringfileType){
//配置邮件基本信息
MimeMessage message = null;
try{
message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message,true);
helper.setFrom(sender);
helper.setTo(mailTo);
helper.setSubject(title);
helper.setText(content,true);
FileSystemResource file = new FileSystemResource(new File(filePath));
helper.addAttachment(fileName+"."+fileType,file);
}catch(Exceptione) {
e.printStackTrace();
}
//发送邮件
mailSender.send(message);
}
}