基于Java实现QQ邮箱发送工具类
作者:大白猫~
我们在日常开发中,需要实现一个对邮箱的发送,今天就实现邮箱的发送工具类,只需要一些注册邮箱之后的配置即可,感兴趣的小伙伴可以了解下
我们在日常开发中,需要实现一个对邮箱的发送,今天就实现邮箱的发送工具类,只需要一些注册邮箱之后的配置即可,我这边使用的是qq邮箱
0.加上依赖
<!--邮箱--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>
1.配置yml文件
需要到官网上去注册,链接地址:https://mail.qq.com/
spring: # Spring Boot应用程序配置的根节点 mail: # 邮件相关配置 username: # 你自己的QQ邮箱的用户名,需要填写你的QQ邮箱地址 password: # 你自己的QQ邮箱的密钥/密码,需要填写你的QQ邮箱登录密码 host: smtp.qq.com # SMTP服务器主机名,这里设置为QQ邮箱的SMTP服务器 port: 465 # SMTP服务器端口,通常情况下使用SSL的SMTP协议使用465端口 protocol: smtp # 使用SMTP协议发送邮件 properties: # 邮件相关的属性配置 mail: # 邮件协议属性配置 smtp: # SMTP协议属性配置 ssl: # SSL/TLS属性配置 enable: true # 启用SSL,表示使用加密传输邮件 auth: true # 启用SMTP身份验证,需要提供用户名和密码 starttls: # STARTTLS属性配置,用于在未加密连接上启用TLS enable: true # 启用STARTTLS required: true # 要求必须使用STARTTLS socketFactory: # Socket工厂属性配置,用于SSL连接 port: 465 # SSL连接的端口,与SMTP服务器的端口一致 class: javax.net.ssl.SSLSocketFactory # 使用的Socket工厂类,通常用于SSL连接 # 请确保填写你自己的QQ邮箱地址和密码,以及确保QQ邮箱允许使用SMTP服务来发送邮件
2.写一个发送邮箱工具类
@Component public class MailUtil { private static MailUtil INSTANCE = new MailUtil(); @Resource JavaMailSender mailSender; @Resource JavaMailSender javaMailSender; @PostConstruct public void init(){ INSTANCE.mailSender = mailSender; } /** * 发送简单邮件 * * @param subject 主题 * @param content 内容 * @param from 发件人 * @param to 收件人 */ public void sendSimpleMail(String subject,String content,String from,String[] to){ SimpleMailMessage message = new SimpleMailMessage(); message.setFrom(from); message.setTo(to); // 主题 message.setSubject(subject); // 邮件正文 message.setText(content); message.setSentDate(new Date()); // 发送邮件 INSTANCE.mailSender.send(message); } public void sendMimeMail(String subject,String content,String from,String[] to) throws MessagingException { MimeMessage mimeMessage = javaMailSender.createMimeMessage(); // 构建一个邮件对象 MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true); // 设置邮件主题 helper.setSubject(subject); // 设置邮件发送者,这个跟application.yml中设置的要一致 helper.setFrom(from); helper.setTo(to); // 设置邮件发送日期 helper.setSentDate(new Date()); // 设置邮件的正文 true:是html文件 helper.setText(content,true); // 发送邮件 javaMailSender.send(mimeMessage); } }
3.编写controller控制器接口
@RestController @Api(tags = "邮箱发送") @RequestMapping("/mail") public class MailServlet { @Resource private MailUtil mailUtil; @PostMapping("/to") @ApiOperation("发送邮件") @ApiImplicitParams({@ApiImplicitParam(name = "subject", value = "邮件主题"), @ApiImplicitParam(name = "content", value = "邮件内容") , @ApiImplicitParam(name = "from", value = "发送邮件的QQ邮箱"), @ApiImplicitParam(name = "to", value = "要发送到的QQ邮箱,用,隔开")}) public R to(String subject, String content, String from, String to) { String[] split = to.split(","); try { mailUtil.sendSimpleMail(subject, content, from, split); return R.ok("发送成功"); } catch (Exception e) { e.fillInStackTrace(); return R.fail("发送失败"); } } @PostMapping("/tof") @ApiOperation("发送富文本邮件") @ApiImplicitParams({@ApiImplicitParam(name = "subject", value = "邮件主题"), @ApiImplicitParam(name = "content", value = "邮件内容<html>格式") , @ApiImplicitParam(name = "from", value = "发送邮件的QQ邮箱"), @ApiImplicitParam(name = "to", value = "要发送到的QQ邮箱,用,隔开")}) public R tof(String subject, String content, String from, String to) { String[] split = to.split(","); try { mailUtil.sendMimeMail(subject, content, from, split); return R.ok("发送成功"); } catch (Exception e) { e.fillInStackTrace(); return R.fail("发送失败"); } } }
以上就是基于Java实现QQ邮箱发送工具类的详细内容,更多关于Java邮箱发送的资料请关注脚本之家其它相关文章!