这里把springboot发送邮件的代码编写成了一个工具类,有两个重载方法,只要代入相关的参数,执行该方法即可发送邮件。
-
1.导入依赖
<!--javax.mail--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>
-
2.application.properties配置
spring.mail.username=发送者邮箱 spring.mail.password=发送者邮箱授权码 spring.mail.host=邮件发送服务器
-
3.邮件发送工具类
public class SendMail { /** *发送带附件的邮件 * @param html :是否启用html解析支持 * @param subject:邮件标题 * @param text:邮件正文 * @param fileName:要发送的附件名字 * @param filePath:要发送的附件路径 * @param receiver:接收者邮箱 * @param sender:发送者邮箱 * @param mailSender:发送接口 * @throws MessagingException */ public static void sendMail(Boolean html, String subject,String text,String fileName,String filePath,String receiver,String sender,JavaMailSenderImpl mailSender) throws MessagingException { //一个复杂的邮件 MimeMessage mimeMessage = mailSender.createMimeMessage(); //组装 MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, html); helper.setSubject(subject); helper.setText(text,true); helper.addAttachment(fileName,new File(filePath)); helper.setTo(receiver); //接收者邮箱 helper.setFrom(sender); //发送者邮箱 mailSender.send(mimeMessage); System.out.println("发送完毕"); } /** *发送普通的邮件 * @param subject:邮件标题 * @param text:邮件正文 * @param receiver:接收者邮箱 * @param sender:发送者邮箱 * @param mailSender:发送接口 */ public static void sendMail(String subject,String text,String receiver,String sender,JavaMailSenderImpl mailSender){ //一个简单的邮件 SimpleMailMessage mailMessage = new SimpleMailMessage(); mailMessage.setSubject(subject); //邮件标题 mailMessage.setText(text); //邮件正文 mailMessage.setTo(receiver); //接收者邮箱 mailMessage.setFrom(sender); //发送者邮箱 mailSender.send(mailMessage); //发送邮件 System.out.println("发送完毕"); } }
-
4.测试方法
@Autowired private JavaMailSenderImpl mailSender; @Test void contextLoads4(){ SendMail.sendMail("邮件标题","邮件正文","接收者邮箱","发送者邮箱",mailSender); }