【发布时间】:2021-12-08 06:41:22
【问题描述】:
我正在使用 Angular 开发一个 Web 应用程序。当我尝试向用户发送链接以重置密码时,出现此错误:
ERROR 17928 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.mail.MailSendException: Failed messages: javax.mail.SendFailedException: Invalid Addresses;
nested exception is:
com.sun.mail.smtp.SMTPAddressFailedException: 553-5.1.3 The recipient address <bd023813-ecb0-46ab-97b4-91b4ec64ad60> is not a 553 5.1.3 valid RFC-5321 address. u14sm4774711wrw.91 - gsmtp; message exceptions (1) are:
Failed message 1: javax.mail.SendFailedException: Invalid Addresses;
nested exception is:
com.sun.mail.smtp.SMTPAddressFailedException: 553-5.1.3 The recipient address <bd023813-ecb0-46ab-97b4-91b4ec64ad60> is not a 553 5.1.3 valid RFC-5321 address. u14sm4774711wrw.91 - gsmtp] with root cause
我的控制器:
@PostMapping("/checkemail")
public AccountResponse resetPasswordEmail(@RequestBody ResetPassword resetPassword) {
boolean result = this.UserS.ifEmailExist(resetPassword.getEmail());
AccountResponse accountresponse=new AccountResponse();
if (result) {
Mail mail = new Mail(resetPassword.getEmail(),UserCode.getCode());
emailservice.sendCodeByMail(mail);
accountresponse.setResultt(1);
} else {
accountresponse.setResultt(0);
}
return accountresponse;
}
邮件类:
public class Mail {
private String to;
private String code;
public Mail(String to, String code) {
super();
this.to = to;
this.code = code;
}
public String getTo() {
return to;
}
public void setTo(String to) {
this.to = to;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
}
Application.properties:
spring.mail.protocol=smtp
spring.mail.host=smtp.googlemail.com
spring.mail.port=587
spring.mail.username=myemail
spring.mail.password=mypassword
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable= true
spring.mail.properties.mail.smtp.starttls.required=true
电子邮件服务:
public interface EmailService {
public void sendCodeByMail(Mail mail);
}
EmailServiceImpl:
@Service
public class EmailServiceImpl implements EmailService {
private JavaMailSender javaMailSender;
@Autowired
public EmailServiceImpl(JavaMailSender javaMailSender) {
this.javaMailSender = javaMailSender;
}
@Override
@Async
public void sendCodeByMail(Mail mail) {
// TODO Auto-generated method stub
SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
simpleMailMessage.setFrom("example@gmail.com");
simpleMailMessage.setTo(mail.getCode());
simpleMailMessage.setSubject("Code Active");
simpleMailMessage.setText(mail.getCode());
javaMailSender.send(simpleMailMessage);
}
}
【问题讨论】: