环境:SpringBoot2.3.9.RELEASE + QQ邮箱 + JDK8
- QQ邮箱开启SMTP
进入设置—》帐户
开启功能
生成授权码
这里的授权码用于配置邮件服务的密码。
- 应用配置
spring:
mail:
host: smtp.qq.com
port: 465
default-encoding: UTF-8
username: xxxx@qq.com
password: xxxxx #这里是上一步生成的授权码
properties:
mail.smtp.ssl.enable: true #开启SSl
mail.smtp.connectiontimeout: 5000
mail.debug: true #调试模式,这样在发送邮件时会输出详细信息
这里properties支持如下属性(smtp)
- 简单邮件
@Resource
private JavaMailSender sender ;
@Test
public void testSimpleMailSend() {
// 构建一个邮件对象
SimpleMailMessage message = new SimpleMailMessage();
// 设置邮件主题
message.setSubject("测试邮件");
// 设置邮件发送者,这个跟application.yml中设置的要一致
message.setFrom("123456@qq.com");
// 设置邮件接收者,可以有多个接收者,中间用逗号隔开,以下类似
message.setTo("123456@qq.com");
// 设置邮件抄送人,可以有多个抄送人
message.setCc("76007509@qq.com");
// 设置隐秘抄送人,可以有多个
message.setBcc("123456@qq.com");
// 设置邮件发送日期
message.setSentDate(new Date());
// 设置邮件的正文
message.setText("这是简单的邮件");
// 发送邮件
sender.send(message);
}
测试:
控制台输出了详细信息,同时收到了邮件。
- 带附件的邮件
@Test
public void testSendAttachMail() throws Exception {
MimeMessage mimeMessage = sender.createMimeMessage();
// true表示构建一个可以带附件的邮件对象
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
helper.setSubject("有附件的邮件");
helper.setFrom("123456@qq.com");
helper.setTo("123456@qq.com");
helper.setSentDate(new Date());
helper.setText("我有附件");
helper.addAttachment("JavaMail规范文档", new File("D:\\java\\opensource\\javamail\\JavaMail-1.6.pdf"));
sender.send(mimeMessage);
}
控制台
带附件的邮件发送时,最好吧debug关闭,不然控制台一直输出内容,比较慢。
- 带图片的邮件
@Test
public void testSendImageMail() throws Exception {
MimeMessage mimeMessage = sender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
helper.setSubject("带图片的邮件");
helper.setFrom("348792955@qq.com");
helper.setTo("348792955@qq.com");
helper.setSentDate(new Date());
// src='cid:p01' 占位符写法 ,第二个参数true表示这是一个html文本
helper.setText("<p>这封邮件包含两种图片,"
+ "分别如下</p><p>第一张图片:</p><img src='cid:p01'/><p>第二张图片:</p><img src='cid:p02'/>", true);
// 第一个参数指的是html中占位符的名字,第二个参数就是文件的位置
helper.addInline("p01",new FileSystemResource(new File("D:\\images\\1.jpg")));
helper.addInline("p02",new FileSystemResource(new File("D:\\images\\2.jpg")));
sender.send(mimeMessage);
}
完毕!!!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/80064.html