springboot整合发送邮件
时间: 2023-09-02 17:11:13 浏览: 111
在 Spring Boot 中整合发送邮件可以使用 JavaMailSender 接口来实现。下面是一个简单的示例代码:
首先,确保在你的项目的 pom.xml 文件中添加了 Spring Boot 邮件依赖:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
```
然后,在你的 application.properties 或 application.yml 文件中配置邮件相关的属性:
```properties
# 邮件发送服务器主机名
spring.mail.host=your-smtp-server
# 邮件发送服务器端口号
spring.mail.port=your-smtp-port
# 邮件发送服务器用户名
spring.mail.username=your-username
# 邮件发送服务器密码
spring.mail.password=your-password
# 是否启用 SSL/TLS 安全连接
spring.mail.properties.mail.smtp.starttls.enable=true
```
接下来,创建一个邮件服务类,用于发送邮件:
```java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Service;
@Service
public class EmailService {
@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);
}
}
```
最后,在你的控制器或其他地方调用邮件服务类的 sendEmail 方法发送邮件:
```java
import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class EmailController {
@Autowired
private EmailService emailService;
@GetMapping("/send-email")
public String sendEmail() {
String to = "recipient@example.com";
String subject = "Test Email";
String text = "This is a test email sent from Spring Boot.";
emailService.sendEmail(to, subject, text);
return "Email sent successfully";
}
}
```
这样,当你访问 `/send-email` 路径时,就会发送一封测试邮件到指定的收件人邮箱。你可以根据实际需求修改相应的参数和邮件内容。记得将 `your-smtp-server`、`your-smtp-port`、`your-username` 和 `your-password` 替换为你的邮件服务器和账户信息。
阅读全文