SpringBoot发送邮件

06.发送邮件

在使用javaSE时,我们会发现发送邮件较为麻烦,而在SpringBoot中,发送邮件就变成一件较为简单的时。

导入mail的maven的启动类。

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

修改application配置文件

spring.mail.username=yume@qq.com
spring.mail.password=自己的密钥
spring.mail.host=smtp.qq.com
#开启加密验证
spring.mail.properties.mail.smtp.ssl.enable=ture

首先username即是我们的邮箱名称,password我们将会详细的讲解如何获取(以qq邮箱为例)。

在我们进入QQ邮箱后,进入设置界面。然后在邮箱设置下选择账户界面

在这里插入图片描述

然后下滑,选择开启POP3/SMTP服务。

在这里插入图片描述

在开启后,QQ邮箱会要求你进行认证,在完成认证后,即可获得密钥。我们将其复制到password的值中即可。

除此之外,QQ邮箱需要开启加密验证。

编写邮件

我们在我们的测试类中进行对邮件发送的代码进行测试。

@SpringBootTest
class SwaggerStudyApplicationTests {
    @Resource
    JavaMailSenderImpl javaMailSender;

    @Test
    void contextLoads() {
        SimpleMailMessage mailMessage = new SimpleMailMessage();

        mailMessage.setSubject("This is a title");
        mailMessage.setText("Diamond ! !");

        mailMessage.setTo("yume@qq.com");
        mailMessage.setFrom("yume@qq.com");

        javaMailSender.send(mailMessage);
    }

    @Test
    void sendMimeMail() throws MessagingException {
        MimeMessage mailMessage = javaMailSender.createMimeMessage();

        MimeMessageHelper helper= new MimeMessageHelper(mailMessage,true);

        helper.setSubject("This anther titer");
        helper.setText("YUME !");

        helper.setTo("yume@qq.com");
        helper.setFrom("yume@qq.com");

        helper.addAttachment("picture.png",new File("图片位置"));

        javaMailSender.send(mailMessage);
    }

}

改些代码都十分的简洁明了,上面是简单的邮件发送,下面的是mime邮件发送,我们可以进行对其进行附件的添加,例如图片等。我们需要使用的类为JavaMailSenderImpl,因此我们需要将其引入,在较为低版本中的JavaMailSenderImpl是使用@Autowired注入的,高版本的mail是使用@Resource。

  • setSubject 为设置标题

  • setText 为设置正文

  • setTo 设置接受邮箱
    ired注入的,高版本的mail是使用@Resource。

  • setSubject 为设置标题

  • setText 为设置正文

  • setTo 设置接受邮箱

  • setFrom 设置发送邮箱

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot发送邮件需要使用JavaMailSender接口来实现。以下是一个简单的示例代码: 首先,确保在你的项目中添加了相关依赖。在pom.xml文件中添加以下代码: ```xml <dependencies> <!-- Spring Boot Starter Mail --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> </dependencies> ``` 然后,在你的应用程序中创建一个类来发送邮件。例如,你可以创建一个名为EmailSender的类: ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.stereotype.Component; @Component public class EmailSender { @Autowired private JavaMailSender javaMailSender; public void sendEmail(String to, String subject, String text) { SimpleMailMessage message = new SimpleMailMessage(); message.setTo(to); message.setSubject(subject); message.setText(text); javaMailSender.send(message); } } ``` 在上述示例中,我们使用了@Autowired注解来自动注入JavaMailSender对象,该对象是由Spring Boot自动配置提供的。 现在,你可以在你的应用程序的任何地方使用EmailSender类来发送邮件。例如,你可以在控制器中使用它: ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; @RestController public class EmailController { @Autowired private EmailSender emailSender; @PostMapping("/sendEmail") public String sendEmail(@RequestBody EmailRequest emailRequest) { emailSender.sendEmail(emailRequest.getTo(), emailRequest.getSubject(), emailRequest.getText()); return "Email sent successfully!"; } } ``` 上述示例中,我们创建了一个名为EmailController的REST控制器,它接收一个包含收件人、主题和内容的EmailRequest对象,并使用EmailSender发送邮件。 请注意,你需要适当配置你的邮件服务器信息。在Spring Boot的application.properties(或application.yml)文件中添加以下配置: ```yaml spring.mail.host=your-mail-server spring.mail.port=your-mail-server-port spring.mail.username=your-username spring.mail.password=your-password spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.starttls.enable=true ``` 以上是一个简单的示例,你可以根据你的实际需求进行修改和扩展。希望对你有帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值