详解使用JavaMailSender给曾经心爱的她再中秋发送一封特别的邮件

2023-02-23 0 3,819

目录

1、邮箱设置

启用客户端POP3/SMTP服务
首先我们需要一个邮箱账号,我这里选择的是新浪邮箱,注册并登录,这里比较简单,只需打开设置,找到客户端,然后开启POP3/SMTP服务即可。
详解使用JavaMailSender给曾经心爱的她再中秋发送一封特别的邮件

2、Spring Email

2.1 导入jar包

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
<version>2.7.2</version>
</dependency>

2.2 邮箱参数设置

导入包之后,我们还需要在程序当中给邮箱做一些参数的配置,我们要想在程序中用这个邮箱,那就需要把邮箱的账号、密码、访问链接以及协议等等都需要配置好。如果之后想换邮箱,只需要改配置文件就好了,切记不要把邮箱在Java程序中写死,下面就来配置一下参数。

spring:
  # MailProperties 邮箱设置
  mail:
    host: smtp.sina.com   # 声明邮箱域名
    port: 465             # 邮箱端口
    username: xxxxxx@sina.com    # 邮箱账号
    password: be157646ac7d3754   # 邮箱授权码
    protocol: smtps       # 协议
    # 发送邮件时采用ssl安全连接
    properties:
      mail:
        smtp:
          ssl:
            enable: true

2.3 使用 JavaMailSender 发送邮件

接下来我们就可以写代码来发送邮件了,Spring Email 发送邮件的核心是JavaMailSender ,我们通过调用这个接口来发送邮件。我们这里写一个工具类,然后把发送邮件的整个逻辑流程封装起来,可以反复使用。
@Component
public class MailClient {
// 声明一个logger,用来记录日志
private static final Logger logger = LoggerFactory.getLogger(MailClient.class);
@Autowired
private JavaMailSender mailSender;
// 发件人
@Value(\"${spring.mail.username}\")
private String from;
// to:收件人 subject:邮件标题 content:邮件内容
public void sendMail(String to,String subject,String content) {
try {
MimeMessage message = mailSender.createMimeMessage();
// 构建 MimeMessage 的内容
MimeMessageHelper helper = new MimeMessageHelper(message);
helper.setFrom(from);
helper.setTo(to);
helper.setSubject(subject);
helper.setText(content, true); // true表示支持html文本
mailSender.send(helper.getMimeMessage());
} catch (MessagingException e) {
logger.error(\"发送邮件失败:\" + e.getMessage());
}
}
}

发送一份邮件需要发件人、收件人、邮件标题。邮件内容,而通过服务器发邮件,发件人是固定的,所以我们通过@Value将其注入进来。

2.4 简单测试

配置好之后我们就可以编写一个测试类来测试一下是否能够发送邮件吧
@SpringBootTest
public class MailTests {
@Autowired
private MailClient mailClient;
@Test
public void testTextMail() {
mailClient.sendMail(\"1973707416@qq.com\",\"测试邮件\",\"Welcome!!!\");
}
}

详解使用JavaMailSender给曾经心爱的她再中秋发送一封特别的邮件

3、模板引擎

使用 Thymeleaf 发送HTML邮件
最后,我们来看一下如何使用Thymeleaf 模板引擎来发送HTML格式邮件,这样就邮件可以包含更加丰富的内容了。
首先,我们编写一个简单的邮件模板demo.html
<!DOCTYPE html>
<html lang=\"en\" xmlns:th=\"http://www.thymeleaf.org\">
<head>
<meta charset=\"UTF-8\">
<title>邮件示例</title>
</head>
<body>
<p>亲爱的, <span style=\"color:red;\" th:text=\"${username}\"></span>!</p>
<p>最近怎么样?我希望你的生活有点变化,至少是每当你歇班的时候不要一个人呆在宿舍里睡大觉,应该有一个帅哥哥陪着你逛商场,当你看到一件你想买又一直不舍得买的东西时,刚好他的兜里有足够的钱,逛完商场陪你吃晚饭,然后为你买一大包零食再把你送回宿舍。这种待遇如果恋爱的时候不好好享受一下,结婚后恐怕就很难再找到感觉了。</p>
<p>XX,一定要嫁给一个真心实意爱你的男人,嫁给一个品行好的男人,或许他会与你心中的白马王子有一定的差距,但在今后的生活中,你会感觉到,他对你的感情是你无穷无尽的幸福宝藏,有这座宝藏在心中,你会比任何一个女人都幸福。</p>
<p>...</p>
<p>爱你的男孩</p>
</body>
</html>

接着同样写一个测试方法
@SpringBootTest
public class MailTests {
@Autowired
private MailClient mailClient;
@Autowired
private TemplateEngine templateEngine;
@Test
public void testHtmlMail() {
Context context = new Context();
context.setVariable(\"username\",\"XX\");
// 调用templateEngine的process方法生成动态网页
// 并且需要将模板文件的位置以及数据传给他
String content = templateEngine.process(\"/mail/demo\", context);
// 这里可以将生成的网页打印在控制台查看一下
System.out.println(content);
// 发送邮件
mailClient.sendMail(\"1973707416@qq.com\",\"写给心爱女孩的一封信\",content);
}
}

控制台输出结果:
详解使用JavaMailSender给曾经心爱的她再中秋发送一封特别的邮件
邮件发送成功页面
详解使用JavaMailSender给曾经心爱的她再中秋发送一封特别的邮件
总的来说,发送邮件是一个比较简单的技术。但她不是!!!

资源下载此资源下载价格为1小猪币,终身VIP免费,请先
由于本站资源来源于互联网,以研究交流为目的,所有仅供大家参考、学习,不存在任何商业目的与商业用途,如资源存在BUG以及其他任何问题,请自行解决,本站不提供技术服务! 由于资源为虚拟可复制性,下载后不予退积分和退款,谢谢您的支持!如遇到失效或错误的下载链接请联系客服QQ:442469558

:本文采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可, 转载请附上原文出处链接。
1、本站提供的源码不保证资源的完整性以及安全性,不附带任何技术服务!
2、本站提供的模板、软件工具等其他资源,均不包含技术服务,请大家谅解!
3、本站提供的资源仅供下载者参考学习,请勿用于任何商业用途,请24小时内删除!
4、如需商用,请购买正版,由于未及时购买正版发生的侵权行为,与本站无关。
5、本站部分资源存放于百度网盘或其他网盘中,请提前注册好百度网盘账号,下载安装百度网盘客户端或其他网盘客户端进行下载;
6、本站部分资源文件是经压缩后的,请下载后安装解压软件,推荐使用WinRAR和7-Zip解压软件。
7、如果本站提供的资源侵犯到了您的权益,请邮件联系: 442469558@qq.com 进行处理!

猪小侠源码-最新源码下载平台 PHP教程 详解使用JavaMailSender给曾经心爱的她再中秋发送一封特别的邮件 http://www.20zxx.cn/585560/xuexijiaocheng/qes.html

猪小侠源码,优质资源分享网

常见问题
  • 本站所有资源版权均属于原作者所有,均只能用于参考学习,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,建议提前注册好百度网盘账号,使用百度网盘客户端下载
查看详情

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务