Al enviar un correo electrónico, recibí la siguiente excepción:
org.springframework.mail.MailSendException: Failed messages: com.sun.mail.smtp.SMTPSendFailedException: 530 5.7.0 Must issue a STARTTLS command first. b10sm22671312wmi.34 - gsmtpAquí está el código que estoy usando para enviar correos electrónicos:
MailRequest mailRequest = new MailRequest(); mailRequest.setSubject(messageByLocale.getMessage("mail.subject.forgetpassword")); mailRequest.setTemplateName(messageByLocale.getMessage("mail.template.forgetpassword")); mailRequest.setToEmail(tbNstyleloyalty.getEmail()); Map<String, Object> map = new HashMap<>(); map.put("tbNstyleloyalty", tbNstyleloyalty); mailingConfig.sendEmail(mailRequest, map); Y mi método sendEmail es:
@Async public void sendEmail(MailRequest mailRequest, Map<String, Object> model) { MimeMessagePreparator preparator = new MimeMessagePreparator() { @Override public void prepare(MimeMessage mimeMessage) throws Exception { MimeMessageHelper message = new MimeMessageHelper(mimeMessage); message.setTo(mailRequest.getToEmail()); message.setSubject(mailRequest.getSubject()); message.setText(VelocityEngineUtils.mergeTemplateIntoString(velocityEngine,templatePath + mailRequest.getTemplateName() + ".vm", ApplicationConstants.CHARSET_UTF8, model),true); } }; this.javaMailSender.send(preparator); }Por favor, ayúdame a superar este problema.
¡Gracias!
Gracias chicos por sus respuestas. Todas las respuestas dadas por usted fueron correctas, pero no pude entender dónde debo agregar esta propiedad.
Finalmente agrego:
spring.mail.properties.mail.smtp.starttls.enable = truea mi archivo de propiedad y luego obtuve éxito.
Probablemente te estés perdiendo alguno de los 2 puntos:
props.put("mail.smtp.starttls.enable", "true");
Supongo que su servidor de correo usa STARTSSL para la autenticación (como implica el mensaje de excepción).
Tal vez esta publicación ayude: propiedades smtp de JavaMail (para STARTTLS)