2013-10-10 4 views
11

जब मैं स्केला Playmework से एक मेल भेजने के लिए प्रयास करते हैं, मैं त्रुटि निम्न कर ली,पाठवणे निम्नलिखित सर्वर से ईमेल विफल: 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 

कैसे इस त्रुटि को हल करने के लिए?

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" 

उत्तर

15

1. यहाँ के लिए एक काम विन्यास जीमेल है:

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

आप का उपयोग करना चाहिए पोर्ट 587 (और इसलिए एसएसएल को सक्रिय)

2. ही सुनिश्चित करें कि दो कारक प्रमाणीकरण सक्रिय (अन्यथा आप एक नया आवेदन पासवर्ड जेनरेट करना होगा) नहीं है

3. कनेक्शन का एक और कारण असफल हो जाता है: यह संदिग्ध कनेक्शन जैसा प्रतीत होता है।

तो जाँच मेल आपके अकाउंट कनेक्शन गूगल द्वारा नहीं अवरुद्ध कर दिया गया सुनिश्चित करने के लिए पर गूगल से प्राप्त

+0

कोई भी काम नहीं करता है। अब मेरे प्ले फ्रेमवर्क एप्लिकेशन को मेरे वीपीएस (वर्चुअल प्राइवेट सर्वर) पर चलाया गया है। जब तक मेरे पास मेरे वीपीएस के लिए एसएसएल प्रमाणपत्र नहीं था। क्या मैं एसएसएल के साथ जीमेल एसएमटीपी तक पहुंचने के लिए एसएसएल प्रमाणपत्र जोड़ना चाहता हूं? या मेरे वीपीएस में कुछ भी कॉन्फ़िगर करने की आवश्यकता है? – Ramprasad

+1

@ राम smtp.gmail का उपयोग करने के लिए एक कामकाज है।एसएसएल ([लिंक Google समूह विषय] (http://productforums.google.com/forum/#!topic/gmail/G6rE7PFX4rM)) लेकिन सर्वर पर SSL जोड़ने से अधिक जटिल लगता है। –

5

smtp (होता है, तो खेलने की तुलना में किसी अन्य देश में होस्ट किया गया है आप मैन्युअल रूप से कनेक्ट करने के लिए उपयोग किया जाता है): पोर्ट = 587 मेरे लिए काम नहीं किया। लेकिन बंदरगाह 465 मेरे लिए काम किया।

और गूगल कम सुरक्षित स्थापित करने enter image description here

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

आप पहली बार कम सुरक्षित ऐप के लिए गूगल में पहुँच के रूप में ऊपर जवाब में दिखाया गया है सक्षम होना चाहिए एप्लिकेशन खोलें। अब पोर्ट को 465 पर बदलें और एसएसएल = सत्य सेट करें। या आप पोर्ट = 587 और टीएलएस = सच सेट कर सकते हैं। ऐसा इसलिए है क्योंकि पोर्ट 465 एसएसएल के लिए है और पोर्ट 587 आधिकारिक दस्तावेज के अनुसार टीएलएस के लिए है।

बंदरगाह = 465
ssl = सच

** ध्यान दें कि बंदरगाह = SSL = सच

0

यदि आपको लगता है सभी सेटिंग्स सही हैं, लेकिन अभी भी यह हो रही है काम नहीं करेगा साथ 587 संदेश; मैं अनुलग्नकों को देखने का सुझाव दूंगा। मैं भेज रहा था। जेएआर फ़ाइल जो जीमेल सर्वर आपको संलग्न करने की अनुमति नहीं देगी और इसलिए यह मेरे ईमेल को अस्वीकार कर रही थी। मुझे फ़ाइल को पर पुनर्नामित करना पड़ा। JARA इसे काम करने के लिए।

संबंधित मुद्दे