отправка электронной почты из SpringBoot 2.1.3.RELEASE - PullRequest
1 голос
/ 27 марта 2019

Я хочу отправить электронное письмо от SpringBoot 2.1.3.RELEASE; Я определил эти свойства:

spring.mail.host=smtp.gmail.com
spring.mail.username=nunito.calzada@gmail.com
spring.mail.password=aMdwd3cded2@
spring.mail.properties.mail.smtp.auth = true
spring.mail.properties.mail.smtp.socketFactory.port = 465
spring.mail.properties.mail.smtp.socketFactory.class = javax.net.ssl.SSLSocketFactory
spring.mail.properties.mail.smtp.socketFactory.fallback = false
spring.mail.propertirs.mail.smtp.ssl.enable = true
and using org.springframework.mail.MailSender

Я отправляю письмо, используя org.springframework.mail.MailSender

    mailSender.send(mailMessage);

Все вроде бы нормально, я не вижу никаких исключений, никаких ошибок, но я не получаю электронное письмо, даже в спаме

Я тоже пытался

spring.mail.properties.mail.smtp.socketFactory.port = 587

с тем же результатом

Ответы [ 2 ]

1 голос
/ 28 марта 2019

для Spring Boot добавьте зависимость

 <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-mail</artifactId>
        <version>2.1.3.RELEASE</version>
 </dependency>

Как только зависимость установлена, следующим шагом является определение свойств почтового сервера в файле application.propertiesиспользуя пространство имен spring.mail. *.

Например, свойства SMTP-сервера Gmail могут быть указаны как:

spring.mail.protocol=smtp
spring.mail.host: smtp.gmail.com
spring.mail.port: 465
spring.mail.username: <user name>
spring.mail.password: <password>
spring.mail.properties.mail.smtp.auth: true
spring.mail.properties.mail.smtp.starttls.enable: true
mail.smtp.starttls.enable=false
spring.mail.properties.mail.smtp.starttls.required: true
spring.mail.properties.mail.smtp.ssl.enable = true
spring.mail.test-connection=

КОД:

@Autowired
private JavaMailSender 
private void setMailDetailsForSend( final String payload, final String email ) throws MessagingException
{

    final MimeMessage mail = mailSender.createMimeMessage();
    final MimeMessageHelper helper = new MimeMessageHelper( mail, true );
    helper.setTo( email );
    helper.setSubject( "Notification" );
    helper.setText( "text/html", payload );
    mailSender.send( mail );

}

Некоторым SMTP-серверам требуется соединение TLS, поэтому свойство spring.mail.properties.mail.smtp.starttls.enable используется для включения соединения, защищенного TLS.

0 голосов
/ 27 марта 2019

файл вашей собственности, содержащий

spring.mail.properties.mail.smtp.socketFactory.port = 465

Gmail работает с TSL / SSL

Port for TLS/STARTTLS: 587
    Port for SSL: 465

Я предлагаю вам использовать

spring.mail.properties.mail.smtp.socketFactory.port = 587

вместо 465

...