Иногда обязательного параметра нет, поэтому он выдает ошибку. В вашем вопросе дан не весь код или ошибка, поэтому я опишу на своем пути.
Сначала проверьте следующие два пункта,
- Предоставлены все необходимые данные конфигурации.
- У вашего идентификатора электронной почты должно быть разрешение на отправку почты с использованием вашего приложения (если вы используете «Разрешить менее безопасное приложение» в своей учетной записи Gmail.
Файл свойств Yml
mail:
host: smtp.gmail.com // Take based on your mail provider
port: 587
username: *@gmail.com
password: ****
transport:
protocol: smtp
properties:
test-connection: true
debug: true
smtp:
auth: true
starttls:
enable: true
required: true
ssl:
enable: true
Фрагмент кода
@Autowired
JavaMailSender mailSender;
public void sendMail(String to, String subject, String content, boolean
isMultipart, boolean isHtml){
MimeMessage mimeMessage = mailSender.createMimeMessage();
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
mailSender.setHost(EMAIL_HOST);
mailSender.setPort(EMAIL_PORT);
mailSender.setUsername(EMAIL_USERNAME);
mailSender.setPassword(EMAIL_PASSWORD);
Properties properties = mailSender.getJavaMailProperties();
properties.put("mail.smtp.starttls.enable", Boolean.TRUE);
properties.put("mail.transport.protocol", "smtp");
properties.put("mail.smtp.auth", Boolean.TRUE);
properties.put("mail.smtp.starttls.required", Boolean.TRUE);
properties.put("mail.smtp.ssl.enable", Boolean.FALSE);
properties.put("mail.test-connection", Boolean.TRUE);
properties.put("mail.debug", Boolean.TRUE);
mailSender.setJavaMailProperties(properties);
try {
MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, isMultipart, "UTF-8");
messageHelper.setFrom(USER_EMAIL);
messageHelper.setTo(to);
messageHelper.setSubject(subject);
messageHelper.setText(content, isHtml);
mailSender.send(mimeMessage);
} catch (Exception ex) {
log.warn("Email could not be sent to user '{}': {}", to, ex.getMessage());
}
}
Для вызовов
@Async
public void sendTestingMail(String mail) {
String subject = "Test mail from Project Management System";
String content = "<h1>Be happy, Enjoy Life...!!!</h1>";
sendMail(mail, subject, content, false, true);
}
Тип конфигурации электронной почты, которую вы настроили один раз и используете несколько мест, поэтому попробуйте сделать одну полную настройку.
Хорошего дня ... !!!