Настройте Spring Boot для использования моего Gmail SMTP - PullRequest
0 голосов
/ 16 ноября 2018

Можно ли заменить следующий код записью в файле application.properties:

Свойства props = this.mailSender.getJavaMailProperties ();props.put ("mail.smtp.starttls.enable", "true");

С уважением

1 Ответ

0 голосов
/ 16 ноября 2018

Просто поместите их в application.properties. Остальные вещи как есть.

#SMTP configuration
    spring.mail.host=smtp.gmail.com
    spring.mail.port=587
    spring.mail.username=klklk@gmail.com
    spring.mail.password=lkkl
    spring.mail.properties.mail.smtp.starttls.enable=true
    spring.mail.properties.mail.smtp.ssl.trust=smtp.gmail.com
    spring.mail.properties.mail.smtp.starttls.required=true
    spring.mail.properties.mail.smtp.auth=true
    spring.mail.properties.mail.smtp.connectiontimeout=5000
    spring.mail.properties.mail.smtp.timeout=5000
    spring.mail.properties.mail.smtp.writetimeout=5000

Напишите класс отправителя почты как этот

@Service
public class EmailServiceImpl implements EmailService {
    @Autowired
    public JavaMailSender emailSender;
    private final String imageLink = "images/teddy.jpeg";
    private final String imageNameToSend = "teddy.jpeg";

    @Override
    public void sendSimpleMessage(String to, String subject, String text) throws IOException, MessagingException {
        MimeMessage message = emailSender.createMimeMessage();
        MimeMessageHelper helper = null;
        try {
            helper = new MimeMessageHelper(message, true);


            helper.setTo(to);
            helper.setSubject(subject);

            FileSystemResource file
                    = new FileSystemResource(new ClassPathResource(imageLink).getFile());
            helper.addAttachment(imageNameToSend, file);

            MimeBodyPart messageBodyPart = new MimeBodyPart();
            messageBodyPart.setContent(text, "text/html");


            Multipart multipart = new MimeMultipart();
            multipart.addBodyPart(messageBodyPart);

            message.setContent(multipart);
            emailSender.send(message);
        } catch (MessagingException | IOException e ) {
            log.info("Exception catched {}",e);
            throw e;
        }
    }
}

Служба электронной почты будет выглядеть так

public interface EmailService {
    void sendSimpleMessage(
            String to, String subject, String text) throws IOException, MessagingException;
}

Добавить следующую библиотеку в файл build.gradle или, если вы используете другой инструмент сборки, добавить эту библиотеку в соответствующий файл

compile('org.springframework.boot:spring-boot-starter-mail:1.5.9.RELEASE')
...