实现1.开启邮件服务这里以QQ邮箱为例 。
首先登录QQ邮箱>>>登录成功后找到设置>>>然后找到邮箱设置>>>点击账户>>>找到POP3|SMTP服务>>>点击开启(开启需要验证,验证成功后会有一串授权码用于发送邮件使用)>>>验证成功
文章插图
文章插图
主要通过MailService工具类就可以满足发送java邮件的需要 。当我们进行好 yml 配置后,SpringBoot会帮助我们自动配置 JavaMailSender 我们通过这个java类就可以实现操作java来发送邮件 。
发送纯文本邮件service
package 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);}}
测试文章插图
文章插图
结果
文章插图
补充发送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);}}
经验总结扩展阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 巧用VBA实现:基于多个关键词模糊匹配Excel多行数据
- 蜂鸟是国家保护动物吗
- 时实是什么
- 贫血会造成什么后果
- 琉璃中司凤的真实身份是什么
- 详解ROMA Connect API 流控实现技术
- Object Detection 手把手教你使用LabVIEW OpenCV dnn实现物体识别含源码
- 实时营销引擎在vivo营销自动化中的实践 | 引擎篇04
- 如何学习实心球:实心球提高
- 口袋妖怪火红版宠物的性格特点