Не удалось отправить сообщение на следующий сервер: smtp.gmail.com:25

Когда я пытаюсь отправить почту из scala Playmework, я получил следующую ошибку:

[ERROR] [10/10/2013 13:31:16.263] [play-akka.actor.default-dispatcher-75] [TaskInvocation] Sending the email to the following server failed : smtp.gmail.com:25
org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.gmail.com:25
    at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1242)
    at org.apache.commons.mail.Email.send(Email.java:1267)
    at com.typesafe.plugin.CommonsMailer.send(MailerPlugin.scala:241)
    at com.typesafe.plugin.MailerBuilder$class.sendHtml(MailerPlugin.scala:204)
    at com.typesafe.plugin.CommonsMailer.sendHtml(MailerPlugin.scala:215)
    at models.SignUpProcess$$anonfun$models$SignUpProcess$$sendEmail$1.apply$mcV$sp(SignUpProcess.scala:261)
    at akka.actor.DefaultScheduler$$anon$8.run(Scheduler.scala:193)
    at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:137)
    at scala.concurrent.forkjoin.ForkJoinTask$AdaptedRunnableAction.exec(ForkJoinTask.java:1417)
    at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:262)
    at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:975)
    at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1478)
    at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:104)
Caused by: javax.mail.AuthenticationFailedException
    at javax.mail.Service.connect(Service.java:319)
    at javax.mail.Service.connect(Service.java:169)
    at javax.mail.Service.connect(Service.java:118)
    at javax.mail.Transport.send0(Transport.java:188)
    at javax.mail.Transport.send(Transport.java:118)
    at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1232)
    ... 12 more

Как решить эту ошибку?

SignUpProcess.scala

private def sendEmail(subject: String, recipient: String, bodyString:Html) {

        import scala.concurrent.duration._
        import play.api.libs.concurrent.Execution.Implicits._

        Akka.system.scheduler.scheduleOnce(1 seconds) {
          val mail = use[MailerPlugin].email
          mail.setSubject(subject)
          mail.addRecipient(recipient)
          mail.addFrom("[email protected]")
          println(bodyString)


          mail.sendHtml(bodyString.toString)
        }
}

application.conf

smtp.host = smtp.gmail.com
smtp.port = 465
smtp.ssl = true
smtp.tls = no
smtp.user = "[email protected]"
smtp.password = "mypassword"

Ответ 1

1. Вот рабочая конфигурация для GMail:

smtp.host=smtp.gmail.com
smtp.port=587
smtp.ssl=yes
smtp.user="[email protected]"
smtp.password="myPassword"

Вы должны использовать порт 587 (и активировать SSL)

2. Также убедитесь, что двухфакторная аутентификация не активирована (в противном случае вы должны создать новый пароль приложения)

3. Другая причина сбоя подключения: это может показаться подозрительным подключением.

Итак, проверьте почту, полученную от google в своей учетной записи, чтобы убедиться, что соединение не было заблокировано Google (происходит, если игра размещена в другой стране, кроме той, которую вы использовали для подключения вручную)

Ответ 2

smtp: port = 587 не работал у меня. но порт 465 работал у меня.

И включите настройку менее защищенного приложения Google введите описание изображения здесь

smtp.host=smtp.gmail.com
smtp.port=465
smtp.ssl=true

Ответ 3

Сначала вы должны включить доступ в Google для менее безопасного приложения, как показано в приведенном выше ответе. Теперь измените порт на 465 и установите ssl = true. Или вы можете установить порт = 587 и tls = true. Это связано с тем, что порт 465 предназначен для SSL, а порт 587 предназначен для TLS в соответствии с официальными документами.

port = 465
ssl = true

** Обратите внимание, что порт = 587 с ssl = true не будет работать

Ответ 4

Если вы чувствуете, что все настройки верны, но все еще получают это сообщение; Я бы предложил посмотреть на приложения. Я отправлял файл .JAR, который серверы gmail не позволят вам подключаться, и, следовательно, он отклоняет мою электронную почту. Мне пришлось переименовать файл в .JARA, чтобы он работал.