Настройка почты в проекте JHipster (Spring)

Я знаю, что это должен быть, наверное, очень простой вопрос, но я застрял на нем в течение многих часов. Я не нашел проблемы после многих исследований в Интернете.

Я начал проект jhipster и теперь пытаюсь настроить почтовый сервер для отправки регистрационных писем новым пользователям. Итак, я отредактировал 2 файла конфигурации, которые существуют в проекте:

../src/test/resources/config/application.yml

../src/main/resources/config/application.yml

В каждом из них я добавил следующие строки под «Spring: mail:»

    host: smtp.gmail.com
    port: 25
    user: [email protected]
    password: xxx
    protocol: smtp
    tls: true
    auth: true
    from: [email protected]

Затем я попытался сделать новую регистрацию и не сработало подтверждение по почте, я также попытался запустить тест, явно вызвав функцию sendEmail из «mailService», это тоже не сработало. Кто-нибудь знает почему? Я делаю ошибку в конфигурации? Есть что-то еще, что я должен сделать?

Добавление запрошенной информации о журналах:

Обычно это журнал, который я получаю, когда запускаю тест, вызывающий функцию sendMail:

[DEBUG] org.portotech.perdigao.config.AsyncConfiguration - Creating Async Task Executor<br>
[DEBUG] org.portotech.perdigao.config.MetricsConfiguration - Registering JVM gauges<br>
[DEBUG] org.portotech.perdigao.config.CacheConfiguration - No cache<br>
[WARN] org.portotech.perdigao.Application - No Spring profile configured, running with default configuration<br>
[DEBUG] org.portotech.perdigao.config.MailConfiguration - Configuring mail server<br>
[INFO] org.portotech.perdigao.config.ThymeleafConfiguration - loading non-reloadable mail messages resources<br>
[DEBUG] org.portotech.perdigao.config.DatabaseConfiguration - Configuring Mongeez<br>
[DEBUG] org.portotech.perdigao.service.MailService - Send e-mail[multipart 'false' and html 'false'] to '[email protected]' with subject 'test' and content=test<br>
[INFO] org.portotech.perdigao.config.CacheConfiguration - Remove Cache Manager metrics<br>
[INFO] org.portotech.perdigao.config.CacheConfiguration - Closing Cache Manager<br>
Disconnected from the target VM, address: '127.0.0.1:51831', transport: 'socket'<br>
Process finished with exit code 0

Итак, письмо не было отправлено, но я не получил сообщения об ошибке. После того, как вы разместили комментарий, я снова открыл свою среду IDE (Intellij), чтобы скопировать журнал для публикации здесь, и получил следующий журнал:

[DEBUG] org.portotech.perdigao.config.AsyncConfiguration - Creating Async Task Executor<br>
[DEBUG] org.portotech.perdigao.config.MetricsConfiguration - Registering JVM gauges<br>
[DEBUG] org.portotech.perdigao.config.CacheConfiguration - No cache<br>
[WARN] org.portotech.perdigao.Application - No Spring profile configured, running with default configuration<br>
[DEBUG] org.portotech.perdigao.config.MailConfiguration - Configuring mail server<br>
[INFO] org.portotech.perdigao.config.ThymeleafConfiguration - loading non-reloadable mail messages resources<br>
[DEBUG] org.portotech.perdigao.config.DatabaseConfiguration - Configuring Mongeez<br>
[DEBUG] org.portotech.perdigao.service.MailService - Send e-mail[multipart 'false' and html 'false'] to '[email protected]' with subject 'test' and content=test<br>
[WARN] org.portotech.perdigao.service.MailService - E-mail could not be sent to user '[email protected]', exception is: Mail server connection failed; nested exception is javax.mail.MessagingException: Connection error (java.net.NoRouteToHostException: No route to host). Failed messages: javax.mail.MessagingException: Connection error (java.net.NoRouteToHostException: No route to host)<br>
[INFO] org.portotech.perdigao.config.CacheConfiguration - Remove Cache Manager metrics<br>
[INFO] org.portotech.perdigao.config.CacheConfiguration - Closing Cache Manager

Затем я снова выполнил и больше никогда не получал этого сообщения об исключении NoRouteToHostException, журнал похож на первый, который я опубликовал. Это действительно странно = /. В любом случае, я выполнил пинг на smtp.gmail.com, и все в порядке.


person trufrgs    schedule 27.10.2014    source источник
comment
Если это не удается, у вас должна быть трассировка стека в журнале, вы можете опубликовать ее?   -  person Julien Dubois    schedule 27.10.2014
comment
Просто добавил информацию, надеюсь, вы мне поможете :)   -  person trufrgs    schedule 28.10.2014


Ответы (1)


Вы используете порт 25 и TLS, а TLS использует порт 587.

person Julien Dubois    schedule 27.10.2014
comment
Спасибо, Жюльен, но я также попробовал порт 587, но он все еще не работал. - person trufrgs; 28.10.2014
comment
Когда я пытаюсь зарегистрировать пользователя с помощью приложения, использующего порт 587, я получаю следующий журнал: [ПРЕДУПРЕЖДЕНИЕ] org.portotech.perdigao.service.MailService - электронная почта не может быть отправлена ​​пользователю'[email protected] ', исключение: сбой подключения к почтовому серверу; вложенное исключение - javax.mail.MessagingException: ошибка при получении приветственного сообщения. Неудачные сообщения: javax.mail.MessagingException: Ошибка при получении приветствия msg [DEBUG] org.portotech.perdigao.aop.logging.LoggingAspect - Выход: org.portotech.perdigao.service.MailService.sendActivationEmail () с результатом = null - person trufrgs; 28.10.2014
comment
После нескольких попыток (также попытался порт 465) я обнаружил, что необходимо изменить конфигурацию, чтобы разрешить доступ к менее безопасным приложениям в учетной записи Gmail, используемой для отправки электронной почты. В любом случае, это помогло убедиться, что правильный порт - 587. Спасибо за помощь. - person trufrgs; 28.10.2014
comment
Спасибо за помощь, ребята! Чтобы добавить, это ссылка, по которой можно изменить доступ к менее безопасным приложениям в Gmail: support.google.com/accounts/answer/6010255?hl=en - person Syed Waqas; 28.04.2015