📜  Spring Boot – 通过 SMTP 发送电子邮件(1)

📅  最后修改于: 2023-12-03 14:47:33.005000             🧑  作者: Mango

Spring Boot – 通过 SMTP 发送电子邮件

在 Spring Boot 中,我们可以使用 JavaMail API 和 SMTP 服务器来发送电子邮件。在本文中,我们将介绍如何通过 Spring Boot 发送电子邮件。

添加依赖项

首先,我们需要在 pom.xml 文件中添加以下依赖项:

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

这将为我们提供支持发送邮件的特定库。

编写代码

在添加依赖项后,我们可以编写我们的代码来发送电子邮件。以下是一个示例:

@Service
public class EmailService {

  @Autowired
  private JavaMailSender javaMailSender;

  public void sendEmail(String to, String subject, String text) throws MessagingException {
    MimeMessage message = javaMailSender.createMimeMessage();
    MimeMessageHelper helper = new MimeMessageHelper(message, true);

    helper.setTo(to);
    helper.setSubject(subject);
    helper.setText(text, true);

    javaMailSender.send(message);
  }
}

此代码使用 @Autowired 注释将 JavaMailSender 自动注入,从而允许我们使用其功能来创建电子邮件并将其发送。我们使用 MimeMessage 类创建电子邮件消息,然后使用 MimeMessageHelper 类将消息设置为其属性。我们还将使用 true 参数将电子邮件正文设置为 HTML 格式。最后,我们调用 javaMailSender.send(message) 发送电子邮件。

配置应用程序

在使用电子邮件服务之前,我们需要使用以下属性进行应用程序配置:

spring:
  mail:
    host: smtp.gmail.com
    port: 587
    username: your-email@gmail.com
    password: your-password
    protocol: smtp
    properties:
      mail:
        smtp:
          auth: true
          starttls:
            enable: true

在上述配置中,我们指定了 SMTP 主机和端口,以及用于验证的凭据。我们还将启用 starttls,这是一种用于加密电子邮件内容的安全协议。

发送电子邮件

现在我们已经准备好向应用程序添加电子邮件发送功能。在我们的应用程序中创建一个控制器,这样我们就可以使用以下代码发送邮件:

@RestController
public class EmailController {

  @Autowired
  private EmailService emailService;

  @PostMapping("/send-email")
  public ResponseEntity<String> sendEmail(@RequestParam String to, @RequestParam String subject, @RequestParam String text) {
    try {
      emailService.sendEmail(to, subject, text);
      return ResponseEntity.ok("Email sent successfully!");
    } catch (MessagingException e) {
      e.printStackTrace();
      return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to send email");
    }
  }
}

现在,我们可以使用 Postman 或其他 HTTP 客户端测试我们的电子邮件发送功能。

结论

在本文中,我们已经学习了如何使用 Spring Boot 发送电子邮件。我们已经配置了我们的应用程序并编写了代码,以便我们能够从应用程序中发送电子邮件。使用此功能,我们可以轻松地将电子邮件集成到我们的应用程序中,从而向用户发送通知和其他相关信息。

以上是本文的全部内容。

请注意markdown格式。