2013-10-10 19 views
11

,aşağıdaki sunucuya eposta Gönderme başarısız: Ben scala Playmework bir posta göndermeye çalıştığımda, hata aşağıdaki var smtp.gmail.com:25

[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 

Nasıl bu hatayı çözmek için?

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) 
     } 
} 

dosyasına koyarak

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

cevap

15

1.için bir çalışma yapılandırması GMail geçerli:

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

Sen

2. Ayrıca İki faktörlü kimlik doğrulama (aksi takdirde yeni bir uygulama şifresi oluşturmak olmalıdır) aktive olmadığından emin olun portu 587 (ve böylece SSL aktive) kullanmalıdır

3. Bağlantının başka bir nedeni başarısız: şüpheli bağlantı gibi görünebilir.

Yani kontrol postaları

+0

Hayır, bu da işe yaramaz. Şimdi benim çerçeve uygulaması benim VPS (Sanal özel sunucu) üzerinde çalışır.Ve benim VPS.Shall için SSL sertifikası yoktu. SSL ile gmail SMTP erişmek için SSL sertifikası eklemek istiyorum? veya VPS'imde herhangi bir şey yapılandırmanız mı gerekiyor? – Ramprasad

+1

@Ram smtp.gmail'i kullanmak için bir geçici çözüm var.SSL olmadan com ([link google grup konu] (http://productforums.google.com/forum/#!topic/gmail/G6rE7PFX4rM)) Ama bir sunucuda SSL eklemek daha karmaşık görünüyor. –

5

smtp (çalma olandan başka bir ülkede barındırılan eğer elle bağlamak için kullanılır olmuyorsa) google tarafından bloke edilmemiş bağlantıyı sağlamak için hesabınızda google alınan: port = 587 benim için çalışmadı. ama 465 numaralı kapı benim için çalıştı.

Ve yukarıdaki cevap gösterildiği gibi enter image description here

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

Önce az güvenli App Google erişimini imkan vermelidir ayarı google az güvenli uygulamasını açın. Şimdi portu 465 olarak değiştirin ve ssl = true değerini ayarlayın. Ya da port = 587 ve tls = true değerini ayarlayabilirsiniz. Bunun nedeni, 465 numaralı bağlantı noktasının SSL ve 587 numaralı bağlantı noktasının resmi belgelere göre TLS için olmasıdır.

portu = 465
ssl = true

** o portu =

0

Eğer hissediyorsanız tüm ayarların doğru olduğunu, ama yine de bu oluyor işe yaramaz = true SSL ile 587 Not mesaj; Eklere bakmayı öneririm. Ben gmail sunucuları Eklemek izin vermez ve dolayısıyla bu benim email reddeden bir .JAR'dır dosyayı gönderiyordu. Çalışması için dosyayı .JARA olarak yeniden adlandırmak zorunda kaldım.

İlgili konular