如何使用JavaMailSender给曾经心爱的她发送一封特别的邮件

这篇具有很好参考价值的文章主要介绍了如何使用JavaMailSender给曾经心爱的她发送一封特别的邮件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

如何使用JavaMailSender给曾经心爱的她发送一封特别的邮件

网站的服务端向用户发邮件时,邮件中往往需要携带图片,链接等内容。所以为了方便起见,我们一般发送HTML格式的邮件,那么怎么去拼一个HTML格式的邮件呢?——Thymeleaf。
开始之前,先新建一个SpringBoot项目,并添加需要用到的依赖。然后就可以继续往下了。

1、邮箱设置

1.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、模板引擎

3.1 使用 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给曾经心爱的她发送一封特别的邮件

总的来说,发送邮件是一个比较简单的技术。但她不是!!!文章来源地址https://www.toymoban.com/news/detail-417035.html

到了这里,关于如何使用JavaMailSender给曾经心爱的她发送一封特别的邮件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用shell快速查看电脑曾经连接过的WiFi密码

    此方法只能查看以前连接过的wifi名称和对应的密码 查看连接过的WiFi名称 查看具体的WiFi名称

    2024年02月02日
    浏览(34)
  • 准备我们心爱的IDEA写Jsp

    JSP学习 new一个项目:New Project -- Next --Next --Finsh 1. 在WEB-INF下创建一个Lib包 将jsp-api.jar复制进去,并使其生效 未生效前: 生效过程: 2. 用锤子配置汤姆猫TomCat 点击+ 号 选择本地的汤姆猫 在Deployment中的 + 号 选择Artifat 将多余的名称删去,为了方便找到 1. 在web包下创建以.jsp为

    2024年02月07日
    浏览(39)
  • 前端如何使用WebSocket发送消息

    WebSocket是一种在Web应用程序中实现实时双向通信的协议。相比传统的HTTP协议,WebSocket提供了更高效、更快速的双向通信方式,可以在客户端和服务器之间实时交换数据。本文将详细介绍前端如何使用WebSocket发送消息,包括创建WebSocket对象、监听WebSocket事件、发送消息以及关闭

    2024年02月11日
    浏览(40)
  • 如何使用RabbitMQ发送和接收消息

    本文介绍了如何使用RabbitMQ的Python客户端库pika来发送和接收消息,并提供了示例代码。读者可以根据自己的需求修改代码,例如修改队列名称、发送不同的消息等。 RabbitMQ 是一个开源的消息队列软件,可以用于在应用程序之间传递消息。下面是一个使用 RabbitMQ 的流程和代码

    2024年02月15日
    浏览(46)
  • 如何使用 Postman 发送 JSON 数据

    Postman  的很好用的接口调试工具。在接口开发过程中,我们有常常使用 JSON 格式来传输接口数据。 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。在初始的项目开发中人们更倾向于使用 XML 来进行数据的传输。当 JSON 出现后,开发者更倾向于使用 JSON 来进行数据的传

    2024年02月04日
    浏览(41)
  • 【前端系列】前端如何使用websocket发送消息

    今天来学习一下前端如何使用websocket发送消息 WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议,它可以让客户端和服务器之间进行实时的双向通信。与传统的 HTTP 请求不同,WebSocket 使用了一个长连接,在客户端和服务器之间保持持久的连接,从而可以实时地发送和接

    2024年02月11日
    浏览(47)
  • # 如何使用 GitHub Copilot 发送 Tweet(译)

    这个月,我学习了如何使用 Github Copilot 发送 tweet。这太酷了!我猜你可能会想: 什么是 GitHub Copilot? 为什么我想要使用 GitHub Copilot 发送 tweet? 它对你来说有什么价值? 如何通过 Copilot 发送 tweet? 幸运的是,我将在这篇文章中回答所有这些问题! Copilot 是一款 AI 结对程序员,

    2024年02月09日
    浏览(42)
  • 如何使用 RabbitMQ 进行消息的发送和接收

    1、创建连接工厂: 2、创建交换器和队列: 3、发送消息: 4、接收消息: 在上述示例中,我们创建了一个连接工厂,并通过它建立与 RabbitMQ 服务器的连接和通道。然后,我们声明了一个直连型交换器和一个队列,并将它们绑定在一起。接下来,我们使用basicPublish方法发送消

    2024年04月22日
    浏览(50)
  • 黑客动态播报 | 一封假offer,盗取6.25亿美元

    网络钓鱼作为最常见的网络攻击方式,钓鱼手法层出不穷,黑客们有时伪装成银行客服,有时又变成律师。而现在,他们也许是正在物色人才的招聘人员,用一封假offer,造成史上最大的加密货币黑客事件。 黑客动态播报 网络安全态势愈演愈烈,如何确保数据安全已成为CIO、IT管理员们

    2023年04月13日
    浏览(34)
  • Postman如何使用(一):导入导出和发送请求查看响应

    在Postman中导入导出我们的 测试数据包 和 工作环境 非常的方便: 导出数据包的方法如下: 如果你想学习自动化测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:

    2024年02月03日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包