问题遇到的现象和发生背景
用户注册邮箱验证时,如果用户所给邮箱为无效邮箱,JavaMailSender不能捕获错误。
问题相关代码,请勿粘贴截图
@Service
public class MailService {
@Value("${spring.mail.username}")
String fromUser;
@Resource
JavaMailSender javaMailSender;
public boolean sendSimpleMail() {
try {
SimpleMailMessage message = new SimpleMailMessage();
-
message.setFrom(fromUser);
message.setTo({"abc@abc.abc"});
-
javaMailSender.send(message);
return true;
} catch (Exception e) {
System.out.println("邮件发送异常!");
return false;
}
}
}
运行结果及报错内容
这里只要给出的接收邮箱格式正确,即使这个邮箱abc@abc.abc实际不存在,也会返回true,不会出现“邮件发送异常”。
我的解答思路和尝试过的方法
我查看过JavaMailSenderImpl,其中send方法设定是抛异常的,但我尝试过好几个原本不存在的邮箱,都没有抛出异常。
我想要达到的结果
当用户给出的注册邮箱不存在时,在尝试发送验证码时能够捕获这种异常。