springboot怎么实现网站留言,留下邮箱,有人回复发送邮件提醒对方有人回复了
时间: 2024-01-07 10:03:12 浏览: 22
实现网站留言并发送邮件提醒,可以按照以下步骤:
1. 在Spring Boot项目中添加spring-boot-starter-mail依赖。
2. 在application.properties中配置邮件服务器相关信息,例如:
```
spring.mail.host=smtp.qq.com
spring.mail.username=your_email_address@qq.com
spring.mail.password=your_email_password
spring.mail.port=465
spring.mail.protocol=smtps
spring.mail.properties.mail.smtp.ssl.enable=true
spring.mail.properties.mail.smtp.auth=true
```
3. 创建一个MailService类,使用JavaMailSender实现邮件发送功能。例如:
```java
@Service
public class MailService {
@Autowired
private JavaMailSender mailSender;
public void sendMail(String to, String subject, String content) {
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom("your_email_address@qq.com");
message.setTo(to);
message.setSubject(subject);
message.setText(content);
mailSender.send(message);
}
}
```
4. 创建一个留言实体类,包含留言内容和留言者邮箱等属性。例如:
```java
@Entity
@Table(name = "messages")
public class Message {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String content;
private String email;
private Boolean replied;
// 省略getter和setter方法
}
```
5. 创建一个留言表单页面,用户可以在该页面填写留言内容和邮箱等信息。例如:
```html
<form action="/message" method="post">
<label for="content">留言内容:</label>
<textarea id="content" name="content"></textarea>
<br>
<label for="email">邮箱:</label>
<input id="email" name="email" type="email">
<br>
<button type="submit">提交留言</button>
</form>
```
6. 创建一个留言提交接口,接收留言内容和邮箱等信息,并保存到数据库中。例如:
```java
@PostMapping("/message")
public String postMessage(@RequestParam("content") String content,
@RequestParam("email") String email) {
Message message = new Message();
message.setContent(content);
message.setEmail(email);
message.setReplied(false);
messageRepository.save(message);
return "留言成功";
}
```
7. 创建一个留言回复页面,管理员可以在该页面回复留言。例如:
```html
<form action="/reply" method="post">
<label for="content">回复内容:</label>
<textarea id="content" name="content"></textarea>
<input type="hidden" name="id" value="{{ message.id }}">
<br>
<button type="submit">提交回复</button>
</form>
```
8. 创建一个留言回复接口,接收回复内容和留言ID等信息,并保存到数据库中。同时,调用MailService发送邮件给留言者提醒回复消息。例如:
```java
@PostMapping("/reply")
public String postReply(@RequestParam("id") Long id,
@RequestParam("content") String content) {
Message message = messageRepository.findById(id).orElse(null);
if (message == null) {
return "留言不存在";
}
message.setReplied(true);
messageRepository.save(message);
Reply reply = new Reply();
reply.setMessage(message);
reply.setContent(content);
replyRepository.save(reply);
String to = message.getEmail();
String subject = "您的留言有新的回复";
String mailContent = "回复内容:" + content;
mailService.sendMail(to, subject, mailContent);
return "回复成功";
}
```
这样,当管理员回复留言时,留言者会收到邮件提醒。