नेट :: SMTPAuthenticationError रेल एप्लिकेशन से ईमेल भेजते समय (पर्यावरण का मंचन पर)


95

मैं अपने रेल एप्लिकेशन से ईमेल भेज रहा हूं। यह विकास के माहौल पर अच्छा काम करता है, लेकिन मंचन में विफल रहता है। मुझे निम्नलिखित त्रुटि मिलती है:

Net::SMTPAuthenticationError (534-5.7.14 <https://accounts.google.com/ContinueSignIn?plt=AKgnsbtdF0yjrQccTO2D_6)

ध्यान दें, कि मेरे पास मेरे मंचन के लिए एक डोमेन नाम नहीं है।

यहाँ staging.rb में मेरी सेटिंग्स हैं

config.action_mailer.delivery_method = :smtp
config.action_mailer.default_url_options = { :host => "my.ip.addr.here:80" }
config.action_mailer.smtp_settings = {
      :address => "smtp.gmail.com",
      :port => 587,
      :domain => 'my.ip.addr.here:80'
      :user_name => "my_email_name@gmail.com",
      :password => "my_email_password",
      :authentication => 'login'
}

कृपया सहायता कीजिए।

संपादित करें।

:tls => trueविकल्प जोड़ने के बाद मुझे मिलता है

OpenSSL::SSL::SSLError (Unrecognized SSL message, plaintext connection?)

और फिर मैंने पोर्ट को 25 में बदल दिया और अब मुझे यह मिल गया (30 सेकंड की देरी के साथ):

Timeout::Error (execution expired)

1
मैंने ब्राउज़र में url को कॉपी किया है (Google ने शायद हमारे लिए पहले से सोचा था)। अपना पासवर्ड दर्ज किया है और पैनल में मैंने देखा है कि न केवल विश्वसनीय साइटों से अनुरोध करने की संभावना स्विच की गई है।
zmii

जवाबों:


249

मुझे एक ही समस्या थी: ईमेल विकास से भेजे गए थे, लेकिन उत्पादन से नहीं (जहां मुझे मिल रहा था Net::SMTPAuthenticationError)। इसने मुझे यह निष्कर्ष निकाला कि समस्या मेरे ऐप के कॉन्फ़िगरेशन के साथ नहीं थी, बल्कि Google के साथ थी।

कारण : Google अज्ञात स्थान (उत्पादन में ऐप) से पहुंच को रोक रहा था

समाधान : http://www.google.com/accounts/DisplayUnlockCaptcha पर जाएं और जारी रखें पर क्लिक करें (यह नए ऐप्स को पंजीकृत करने के लिए 10 मिनट तक पहुंच प्रदान करेगा)। इसके बाद प्रोडक्शन में मेरा ऐप ईमेल भेजने लगा;)


3
यह वास्तव में इसे हल करने का सही तरीका है (हालांकि यह आपके खाते को जोखिम में डाल सकता है)। लेकिन यह काम करता है।
zakelfassi

40
इसके अलावा यहां अकाउंट-एक्सेस की अनुमति न भूलें: google.com/settings/security/lesssecureapps
Chauskin Rodion

मैं lesssecureappsमल्टीफ़ॉर्मर प्रमाणीकरण का उपयोग करके सेटिंग से बचने और अपने रेल सर्वर के लिए ऐप-विशिष्ट पासवर्ड को सक्षम करने में सक्षम था ।
क्रिस बेक

1
शायद बेहतर की तरह एक सेवा का उपयोग करने का बंदर उत्पादन परिवेश में ईमेल भेजने के लिए
Codebling

मैं चालू कर दी है lesssecureapps खाता सेट और के पास गया DisplayUnlockCaptcha रेल के माध्यम से पेज और दबाया ठीक है, भेजे गए ईमेल, लेकिन एक ही त्रुटि प्राप्त Net::SMTPAuthenticationError ...ContinueSignIn...। फिर मैंने 10 मिनट के बाद ऐसा ही करने की कोशिश की और यह काम करने लगा।
लेव लुकोम्स्की

25

यह समाधान मेरे लिए काम कर रहा है:

config.action_mailer.delivery_method = :smtp
  config.action_mailer.default_url_options = { host:'localhost', port: '3000' }
  config.action_mailer.perform_deliveries = true
  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.default :charset => "utf-8"
  config.action_mailer.smtp_settings = {
      :address => "smtp.gmail.com",
      :port => 587,
      :domain => 'localhost:3000',
      :user_name => "xyz@gmail.com",
      :password => "password",
      :authentication => :plain,
      :enable_starttls_auto => true
  }

यह सही है कि Google आपके साइन-इन प्रयास को अवरुद्ध कर देगा, लेकिन आप अपनी सेटिंग्स को https://www.google.com/settings/security/lesssecureapps पर बदल सकते हैं ताकि आपका खाता अब आधुनिक सुरक्षा मानकों द्वारा संरक्षित न हो।


क्या ऐसा करने का कोई तरीका है? उदाहरण के लिए, क्या आपको Google के साथ ऐप पंजीकृत करना संभव है?
jphager2

24

हल किया! मैंने बस अपने जीमेल खाते के लिए पासवर्ड बदल दिया और किसी तरह त्रुटियां गायब हो गईं।

दर्जन भर परिवर्तनों के बाद, अंतिम सेटिंग जो मैंने समाप्त की, वे हैं:

config.action_mailer.delivery_method = :smtp
config.action_mailer.default_url_options = { :host => "my.ip.addr.here" }
config.action_mailer.smtp_settings = {
      :address => "smtp.gmail.com",
      :port => 587,
      :domain => 'my.ip.addr.here:80',
      :user_name => "my_email_name@gmail.com",
      :password => "my_email_password",
      :authentication => :plain,
      :enable_starttls_auto => true
}

1
धन्यवाद! इस समस्या के कारण मुझे बहुत सिरदर्द हो रहा था, और अंत में मुझे इन सेटिंग्स का उपयोग करने और Google खाते की सेटिंग में कम सुरक्षित ऐप्स विकल्प की अनुमति देने के बाद अपना Google खाता पासवर्ड बदलने की आवश्यकता थी।
कोरी

'कम सिक्योर ऐप्स की अनुमति दें' सेट करने के बाद और अपने डिवाइस (सर्वर के आईपी) पर भरोसा करने के लिए Google को बताएं और 24 घंटे से अधिक प्रतीक्षा करें ... पासवर्ड का एक सरल परिवर्तन मेरे जीमेल प्रमाणीकरण मुद्दों को तय करता है। गूगल पर किसी को शायद इसे ठीक करना चाहिए। ;)
जेसन आर

मैं उसी मुद्दे का सामना कर रहा था। मैंने पहले से ही कम असुरों को सक्षम किया था, लेकिन यह ठीक नहीं हुआ। मैंने बस अपना पासवर्ड बदल दिया है और यह एक आकर्षण की तरह काम करता है। :)
निखिल साहू


13

उपरोक्त समाधान ने सही सेटिंग्स प्रदान की (जो मेरे पास पहले से थी) लेकिन समस्या का समाधान नहीं किया। लगातार कोशिशों के बाद भी मुझे वही त्रुटि मिलती रही। पता चला, मुझे वेब से "कैप्चा साफ़ करना" पड़ा। जीमेल प्रलेखन देखें जानकारी के लिए।

आप यहाँ "कैप्चा साफ़ करें" पृष्ठ पर भी कूद सकते हैं


1
सीधा लिंक "कैप्चा को खाली करने के लिए" पृष्ठ: accounts.google.com/DisplayUnlockCaptcha
tmr08c

2

बहुत बाद में लेकिन जब यह किसी की मदद करता है तो .. बस Google Apps सहायता केंद्र को कॉल किया जाता है और उन्होंने निर्देश को कम करने के लिए सेटिंग को बदलने का निर्देश दिया (अन्य सभी के रूप में) लेकिन पोर्ट को 465 में बदलने के लिए।

मेरे मामले में, यह चाल चली!



0

हैलो यह मेरे लिए भी काम किया है और इसलिए अगर किसी को अभी भी एक समस्या यह कोशिश कर रहा है।

सुनिश्चित करें कि आपके पास अपने रत्न में अंजीर है। पर्यावरण चर जैसे उपयोगकर्ता नाम और पासवर्ड जैसी संवेदनशील जानकारी को बचाने के लिए

gem 'figaro'

और आपके config / environment / development.rb में, smtp को मेथड डिलीवरी के रूप में उपयोग करके नीचे दिए गए कोड पेस्ट करें

 config.action_mailer.delivery_method = :smtp

Gmail के लिए SMTP सेटिंग्स

  config.action_mailer.smtp_settings =
  {
    :address=> "smtp.gmail.com",
    :port => 587,
    :user_name => ENV['gmail_username'],
    :password=> ENV['gmail_password'],
    :authentication=> "plain",
    :enable_starttls_auto=>true
  }


config.action_mailer.default_url_options = { host: "locahost:3000" }

अपने कॉन्फ़िगरेशन निर्देशिका में application.yml नामक एक फ़ाइल बनाएं और नीचे दिए गए कोड जोड़ें।

gmail_username: 'example@gmail.com' 
gmail_password: "your_example_email_password_here"

फ़ाइल में प्रमाणीकरण के लिए आपको अपने ईमेल और पासवर्ड का उपयोग करना चाहिए।


config.act_mailer.default_url_options = {host: "localhost: 3000"}
cooxy

0

मुझे भी समस्या का सामना करना पड़ा, और जीमेल सेटिंग में कुछ शोध के बाद, मुझे इसका हल मिला:

  1. जीमेल में, सेटिंग्स में जाएं।

  2. "अग्रेषण और POP / IMAP" टैब चुनें।

  3. IMAP पहुंच अनुभाग में, "IMAP सक्षम करें" चुनें।


0

स्वीकृत उत्तर बहुत पुराना लगता है, मुझे नहीं पता कि उस समय अनुवर्ती (बेहतर) समाधान मौजूद था:

  • Https://myaccount.google.com/u/0/apppasswords पर जाएं
  • आप ऐप के लिए एक नया पासवर्ड बनाएं
  • में उत्पन्न पासवर्ड के साथ व्यक्तिगत पासवर्ड बदलें config.action_mailer.smtp_settings

अब, ईमेल भेजना पूरी तरह से काम करता है!


0

इस समस्या को हल करने के लिए:

  • यदि आप देखते हैं: नेट :: SMTPAuthenticationError (535-5.7.8 उपयोगकर्ता नाम और पासवर्ड स्वीकार नहीं किया गया है।) , तो आपको अपने Google खाते को लॉगिन करने के लिए कम सुरक्षित ऐप्स की अनुमति देने की आवश्यकता है। कम सुरक्षित ऐप्स लॉगिन अनुसरण सक्षम करने के लिए: https://myaccount.google.com/lesssecureapps? । लेकिन सभी ऐप्स को लॉगिन करने की अनुमति देगा। यदि आप इसे अनुकूलित करना चाहते हैं तो देखें: https://support.google.com/a/answer/6260879?hl=en

  • तब संभव हो सकता है कि आपको नेट :: SMTPAuthenticationError (534-5.7.14) मिलेगा , इसलिए इस संदर्भ को हल करने के लिए: pli = 1http: //www.google.com/accounts/DisplayUnlockCaptcha। इसके बाद आप जिस पेज पर रिडायरेक्ट होते हैं, वहां से जारी पर क्लिक करें। यह आपके कैप्चा को सत्यापित करेगा और ईमेल भेजने के लिए आपका ऐप आपके Google खाते का उपयोग करने के लिए सत्यापित हो जाएगा।

ध्यान दें: कृपया सुनिश्चित करें कि आप अपने जीमेल खाते की सही साख का उपयोग कर रहे हैं।

यदि आप सभी ऐप्स को अनुमति देने के लिए तैयार नहीं हैं, तो कृपया देखें: https://support.google.com/a/answer/6260879?hl=en । लिंक से लेकर यूज़ विकल्प के लिए कम सुरक्षित ऐप्स तक जाएं , यह आपको वैकल्पिक तरीके से आपके Google खाते में कम सिक्योर ऐप्स की अनुमति देने के लिए मार्गदर्शन करेगा ।


-1

मेरे पास एक ही समस्या थी और कुछ परीक्षण और त्रुटियों के बाद, इस संकल्प पर आए जो कि Google में सक्षम होने का एक विकल्प है:

क्लिक करें Https://www.google.com/settings/u/0/security/lesssecureapps पर करें

आपके द्वारा smtp कॉन्फ़िगरेशन में दिए गए ईमेल पते के साथ लॉग इन करके 'कम सुरक्षित ऐप्स तक पहुंच' सक्षम करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.