我正在尝试使用mailtrap在我的spring boot应用程序中发送邮件来测试它,这是我的代码:
pom.xml:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
application.properties:我从我在 mailtrap.io 上的帐户中获取了此凭据:
spring.mail.host=smtp.mailtrap.io
spring.mail.port=2525
spring.mail.username=2d9a7d89fcc8f8
spring.mail.password=9bb8e9090abd96
电子邮件配置:
@Component
public class EmailCfg {
@Value("${spring.mail.host}")
private String host;
@Value("${spring.mail.port}")
private int port;
@Value("${spring.mail.username}")
private String username;
@Value("${spring.mail.password}")
private String password;
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
public int getPort() {
return port;
}
public void setPort(int port) {
this.port = port;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
电子邮件消息:
public class EmailMsg {
@NotNull
private String name;
@NotNull
@Email
private String email;
@NotNull
@Min(10)
private String feedback;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getFeedback() {
return feedback;
}
public void setFeedback(String feedback) {
this.feedback = feedback;
}
}
控制器 :
@CrossOrigin(origins = StringsConstants.FRONT_BASE_URL, maxAge = 3600)
@Api("Events Controller")
@RestController
@RequestMapping(StringsConstants.EVENTS_URL)
public class EventsController {
@Autowired
private EmailCfg emailCfg;
@PostMapping(value = "/sendMail")
@PreAuthorize("hasRole('USER')")
public void sendFeedback(@RequestBody EmailMsg feedback,
BindingResult bindingResult){
if(bindingResult.hasErrors()){
throw new ValidationException("Feedback is not valid");
}
// Create a mail sender
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
mailSender.setHost(this.emailCfg.getHost());
mailSender.setPort(this.emailCfg.getPort());
mailSender.setUsername(this.emailCfg.getUsername());
mailSender.setPassword(this.emailCfg.getPassword());
// Create an email instance
SimpleMailMessage mailMessage = new SimpleMailMessage();
mailMessage.setFrom(feedback.getEmail());
mailMessage.setTo("rc@feedback.com");
mailMessage.setSubject("New feedback from " + feedback.getName());
mailMessage.setText(feedback.getFeedback());
// Send mail
mailSender.send(mailMessage);
}
}
它不工作,我没有收到任何错误!关于邮递员,我得到了这个
{
"timestamp": "2021-04-11T09:52:43.286+0000",
"status": 404,
"error": "Not Found",
"message": "No message available",
"path": "/api/events/sendEmail"
}
有任何想法吗?请 !