springboot 发送邮件
时间: 2023-09-25 21:16:59 浏览: 112
Springboot发送邮件
在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
```
以上是一个简单的示例,你可以根据你的实际需求进行修改和扩展。希望对你有帮助!
阅读全文