北京公司网站建设报价表,京津冀协同发展图片,wordpress 注册 验证码,南阳企业网站seoSpring Boot 对于发送邮件这种常用功能也提供了开箱即用的 Starter#xff1a;spring-boot-starter-mail。 通过这个 starter#xff0c;只需要简单的几行配置就可以在 Spring Boot 中实现邮件发送#xff0c;可用于发送验证码、账户激活等等业务场景。
本文将通过实际的案…Spring Boot 对于发送邮件这种常用功能也提供了开箱即用的 Starterspring-boot-starter-mail。 通过这个 starter只需要简单的几行配置就可以在 Spring Boot 中实现邮件发送可用于发送验证码、账户激活等等业务场景。
本文将通过实际的案例带你了解如何在 Spring Boot 中使用 QQ 邮箱发送邮件。 关于 Spring 对邮件支持的更多细节你可以参阅 springdoc.cn。 创建 Spring Boot 应用 在 pom.xml 中添加 spring-boot-starter-mail 依赖
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-mail/artifactId
/dependency属性配置 在 application.yaml 中配置属性。
spring:mail:# 指定邮件服务器地址host: smtp.qq.com# 登录账户username: 747692844qq.com# 登录密码password: 你的密码/授权码# 端口port: 465# 默认编码default-encoding: UTF-8# 使用的协议protocol: smtps# 其他的属性properties:mail.smtp.connectiontimeout: 5000mail.smtp.timeout: 3000mail.smtp.writetimeout: 5000mail.smtp.auth: truemail.smtp.starttls.enable: truemail.smtp.starttls.required: true需要在 QQ 邮箱设置中开启 「SMTP」 服务并且记得把配置文件中的 spring.mail.password 替换为你的 「授权码」。注意不是 QQ 密码关于 QQ 邮箱如何生成授权码你可以参阅 https://service.mail.qq.com/detail/0/75 对于 spring mail 更多的可用配置可以参阅 springdoc.cn。 发送邮件 配置正确后就可以在任意 Bean 中注入 JavaMailSender Bean用于发送邮件。
发送一封简单的邮件
Autowired
JavaMailSender javaMailSender;Test
public void test() throws Exception {// 创建一个邮件消息MimeMessage message javaMailSender.createMimeMessage();// 创建 MimeMessageHelperMimeMessageHelper helper new MimeMessageHelper(message, false);// 发件人邮箱和名称helper.setFrom(747692844qq.com, springdoc);// 收件人邮箱helper.setTo(adminspringboot.io);// 邮件标题helper.setSubject(Hello);// 邮件正文第二个参数表示是否是HTML正文helper.setText(Hello strong World/strong, true);// 发送javaMailSender.send(message);
}首先通过 javaMailSender 的 createMimeMessage 创建一个 MimeMessage 对象表示邮件。
接着创建 MimeMessageHelper 对象第二个 boolean 参数表示是否是一个 Multipart 邮件带有附件。
然后通过 helper 对象设置邮件的发件人邮箱和名称、收件人、主题、内容等信息。注意setText 方法第二个参数表示内容是否是 html 正文。本例中正文使用了一个 strong HTML 标签。
执行测试发送邮件。然后进入收件箱查看 成功收件注意 World 文本是加粗的因为发送的是 HTML 邮件并且使用了 strong 标签。 可以使用 freemarker 等模板模板引擎来定义 HTML 邮件模板。 发送带有附件的邮件 有时我们需要通过邮箱发送一些附件文件。
如下
Autowired
JavaMailSender javaMailSender;Test
public void test() throws Exception {// 创建一个邮件消息MimeMessage message javaMailSender.createMimeMessage();// 创建 MimeMessageHelper指定 boolean multipart 参数为 trueMimeMessageHelper helper new MimeMessageHelper(message, true);// 发件人邮箱和名称helper.setFrom(747692844qq.com, springdoc);// 收件人邮箱helper.setTo(adminspringboot.io);// 邮件标题helper.setSubject(Spring 中文文档);// 邮件正文第二个参数表示是否是HTML正文helper.setText(你好这是 Spirng 的中文文档br/ 请尽快下载, true);// 添加一个附件指定附件名称、文件的 Inputstream 流 以及 Content-Typehelper.addAttachment(spring-framework 中文文档.pdf, () - Files.newInputStream(Paths.get(C:\\Users\\KevinBlandy\\Desktop\\spring-framework 中文文档.pdf)), application/octet-stream);// 发送javaMailSender.send(message);
}如上和发送普通邮件没太大区别。
创建 MimeMessageHelper 时第二个参数要设置为 true。调用 helper 的 addAttachment() 方法来添加附件可以多次调用表示添加多个。 addAttachment() 方法的第一个参数就是会在收件箱显示的附件名称第二个参数是一个 InputStreamSource 函数接口需要返回一个 InputStream也就是附件文件的二进制流。最后一个参数用于表示文件的媒体类型也就是 Content Type如果你不知道具体的类型可以无脑设置为 application/octet-stream。
同样这封邮件也是 HTML 邮件在正文中使用了 标签。
执行测试发送邮件并且查看收到的邮件 如上成功收到了带附件的邮件。 自定义 JavaMailSender 实现 上面的例子中我们把邮箱的信息定义在了配置文件中。这可能有一些不够灵活你也可以把邮箱信息存储在数据库或者其他地方随时可以通过管理后台进行维护、修改而不需要重启应用。
我们可以直接实例化 JavaMailSender 的默认实现 JavaMailSenderImpl在运行时设置邮箱服务器、用户名密码等等。
Test
public void test() throws Exception {// 直接创建 JavaMailSenderImpl 实现类JavaMailSenderImpl javaMailSender new JavaMailSenderImpl();javaMailSender.setDefaultEncoding(utf-8);javaMailSender.setHost(smtp.qq.com); // 设置邮箱服务器javaMailSender.setPort(465); // 设置端口javaMailSender.setUsername(747692844qq.com); // 设置用户名javaMailSender.setPassword(你的密码/授权码); // 设置密码记得替换为你实际的密码、授权码javaMailSender.setProtocol(smtps); // 设置协议Properties properties new Properties(); // 配置项properties.put(mail.smtp.connectiontimeout, 5000);properties.put(mail.smtp.timeout, 3000);properties.put(mail.smtp.writetimeout, 5000);properties.put(mail.smtp.auth, true);properties.put(mail.smtp.starttls.enable, true);properties.put(mail.smtp.starttls.required, true);javaMailSender.setJavaMailProperties(properties); // 设置配置项// 创建一个邮件消息MimeMessage message javaMailSender.createMimeMessage();// 创建 MimeMessageHelperMimeMessageHelper helper new MimeMessageHelper(message, false);// 发件人邮箱和名称helper.setFrom(747692844qq.com, springdoc);// 收件人邮箱helper.setTo(adminspringboot.io);// 邮件标题helper.setSubject(Hello);// 邮件正文第二个参数表示是否是HTML正文helper.setText(Hello strong World/strong, true);// 发送javaMailSender.send(message);
}如上每次发送邮件都先从数据库中检索邮箱服务器的配置然后构建 JavaMailSenderImpl 实例执行邮件发送。
当需要修改邮箱的时候只需要在管理后台进行修改即可不用改动任何配置、代码。 文章转载自: http://www.morning.nqlcj.cn.gov.cn.nqlcj.cn http://www.morning.zztkt.cn.gov.cn.zztkt.cn http://www.morning.rjxwq.cn.gov.cn.rjxwq.cn http://www.morning.hlxxl.cn.gov.cn.hlxxl.cn http://www.morning.nrbqf.cn.gov.cn.nrbqf.cn http://www.morning.qnywy.cn.gov.cn.qnywy.cn http://www.morning.qcymf.cn.gov.cn.qcymf.cn http://www.morning.qsszq.cn.gov.cn.qsszq.cn http://www.morning.xnbd.cn.gov.cn.xnbd.cn http://www.morning.jydhl.cn.gov.cn.jydhl.cn http://www.morning.zydr.cn.gov.cn.zydr.cn http://www.morning.smdkk.cn.gov.cn.smdkk.cn http://www.morning.bpmfg.cn.gov.cn.bpmfg.cn http://www.morning.pplxd.cn.gov.cn.pplxd.cn http://www.morning.lbhck.cn.gov.cn.lbhck.cn http://www.morning.zlzpz.cn.gov.cn.zlzpz.cn http://www.morning.hrjrt.cn.gov.cn.hrjrt.cn http://www.morning.fzqfb.cn.gov.cn.fzqfb.cn http://www.morning.rnngz.cn.gov.cn.rnngz.cn http://www.morning.bktzr.cn.gov.cn.bktzr.cn http://www.morning.rhzzf.cn.gov.cn.rhzzf.cn http://www.morning.fhjnh.cn.gov.cn.fhjnh.cn http://www.morning.hpggl.cn.gov.cn.hpggl.cn http://www.morning.mxnhq.cn.gov.cn.mxnhq.cn http://www.morning.mgbcf.cn.gov.cn.mgbcf.cn http://www.morning.hcsnk.cn.gov.cn.hcsnk.cn http://www.morning.btmwd.cn.gov.cn.btmwd.cn http://www.morning.ryxdf.cn.gov.cn.ryxdf.cn http://www.morning.mkfr.cn.gov.cn.mkfr.cn http://www.morning.ppzgr.cn.gov.cn.ppzgr.cn http://www.morning.qtzwh.cn.gov.cn.qtzwh.cn http://www.morning.bhdtx.cn.gov.cn.bhdtx.cn http://www.morning.lkbyq.cn.gov.cn.lkbyq.cn http://www.morning.rbmm.cn.gov.cn.rbmm.cn http://www.morning.gnbtp.cn.gov.cn.gnbtp.cn http://www.morning.rnwmp.cn.gov.cn.rnwmp.cn http://www.morning.rsjng.cn.gov.cn.rsjng.cn http://www.morning.sqtsl.cn.gov.cn.sqtsl.cn http://www.morning.wnqfz.cn.gov.cn.wnqfz.cn http://www.morning.kqqk.cn.gov.cn.kqqk.cn http://www.morning.nmkbl.cn.gov.cn.nmkbl.cn http://www.morning.bztzm.cn.gov.cn.bztzm.cn http://www.morning.rkdzm.cn.gov.cn.rkdzm.cn http://www.morning.fpjw.cn.gov.cn.fpjw.cn http://www.morning.mztyh.cn.gov.cn.mztyh.cn http://www.morning.ydhck.cn.gov.cn.ydhck.cn http://www.morning.nwljj.cn.gov.cn.nwljj.cn http://www.morning.cbqqz.cn.gov.cn.cbqqz.cn http://www.morning.zydr.cn.gov.cn.zydr.cn http://www.morning.nrftd.cn.gov.cn.nrftd.cn http://www.morning.tssmk.cn.gov.cn.tssmk.cn http://www.morning.mmkrd.cn.gov.cn.mmkrd.cn http://www.morning.pxtgf.cn.gov.cn.pxtgf.cn http://www.morning.wmfr.cn.gov.cn.wmfr.cn http://www.morning.qinhuangdjy.cn.gov.cn.qinhuangdjy.cn http://www.morning.ypklb.cn.gov.cn.ypklb.cn http://www.morning.huayaosteel.cn.gov.cn.huayaosteel.cn http://www.morning.bsgfl.cn.gov.cn.bsgfl.cn http://www.morning.ptwqf.cn.gov.cn.ptwqf.cn http://www.morning.xyrss.cn.gov.cn.xyrss.cn http://www.morning.qsy36.cn.gov.cn.qsy36.cn http://www.morning.cwfkm.cn.gov.cn.cwfkm.cn http://www.morning.yjfmj.cn.gov.cn.yjfmj.cn http://www.morning.tnktt.cn.gov.cn.tnktt.cn http://www.morning.xkyqq.cn.gov.cn.xkyqq.cn http://www.morning.nswcw.cn.gov.cn.nswcw.cn http://www.morning.rswtz.cn.gov.cn.rswtz.cn http://www.morning.nckzt.cn.gov.cn.nckzt.cn http://www.morning.fhrgk.cn.gov.cn.fhrgk.cn http://www.morning.rttp.cn.gov.cn.rttp.cn http://www.morning.pmnn.cn.gov.cn.pmnn.cn http://www.morning.btpzn.cn.gov.cn.btpzn.cn http://www.morning.cmzgt.cn.gov.cn.cmzgt.cn http://www.morning.kdbbm.cn.gov.cn.kdbbm.cn http://www.morning.gxklx.cn.gov.cn.gxklx.cn http://www.morning.yrmgh.cn.gov.cn.yrmgh.cn http://www.morning.dpzcc.cn.gov.cn.dpzcc.cn http://www.morning.fkfyn.cn.gov.cn.fkfyn.cn http://www.morning.tsrg.cn.gov.cn.tsrg.cn http://www.morning.pqkgb.cn.gov.cn.pqkgb.cn