Net :: SMTPAuthenticationError عند إرسال بريد إلكتروني من تطبيق ريلز (في بيئة التدريج)

سئل على ٨ أغسطس ٢٠١٣  ·  تمت مشاهدة 71.9k مرة  ·  مصدر

eagor picture
في ٨ أغسطس ٢٠١٣

أنا أرسل بريدًا إلكترونيًا من تطبيق ريلز الخاص بي. إنه يعمل بشكل جيد في بيئة التطوير ، لكنه يفشل في التدريج. أحصل على الخطأ التالية:

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 => "[email protected]",
      :password => "my_email_password",
      :authentication => 'login'
}

الرجاء المساعدة.

يحرر.

بعد إضافة خيار :tls => true أحصل عليه

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

ثم قمت بتغيير المنفذ إلى 25 والآن أحصل على هذا (بتأخير 30 ثانية):

Timeout::Error (execution expired)

الإجابات

Gee-Bee picture
في ٢٨ نوفمبر ٢٠١٣
254

واجهت نفس المشكلة: تم إرسال رسائل البريد الإلكتروني من التطوير ، ولكن ليس من الإنتاج (حيث كنت أتلقى Net::SMTPAuthenticationError ). دفعني هذا إلى الاستنتاج بأن المشكلة لم تكن في تكوين تطبيقي ، ولكن مع Google.

السبب : كان Google يحظر الوصول من موقع غير معروف (التطبيق قيد الإنتاج)

الحل : انتقل إلى http://www.google.com/accounts/DisplayUnlockCaptcha وانقر فوق متابعة (سيمنح هذا الوصول لمدة 10 دقائق لتسجيل تطبيقات جديدة). بعد ذلك ، بدأ تطبيقي في الإنتاج بإرسال رسائل البريد الإلكتروني ؛)

A H K picture
في ١٣ أكتوبر ٢٠١٤
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 => "[email protected]",
      :password => "password",
      :authentication => :plain,
      :enable_starttls_auto => true
  }

صحيح أن Google ستحظر محاولة تسجيل الدخول الخاصة بك ولكن يمكنك تغيير إعداداتك على https://www.google.com/settings/security/lesssecureapps حتى لا يصبح حسابك محميًا بمعايير الأمان الحديثة.

eagor picture
في ٨ أغسطس ٢٠١٣
24

تم حلها! لقد قمت ببساطة بتغيير كلمة المرور لحساب gmail الخاص بي واختفت الأخطاء بطريقة ما.

بعد عشرات التغييرات ، الإعدادات النهائية التي انتهيت بها هي:

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 => "[email protected]",
      :password => "my_email_password",
      :authentication => :plain,
      :enable_starttls_auto => true
}
aashish picture
في ٢٧ فبراير ٢٠١٥
15

انتقل إلى الرابط التالي وقم بتشغيل https://www.google.com/settings/security/lesssecureapps

Sorry-Im-a-N00b picture
في ٩ سبتمبر ٢٠١٣
13

قدم الحل أعلاه الإعدادات الصحيحة (التي كانت لدي بالفعل) ولكن لم يحل المشكلة. بعد محاولات متواصلة ، ظللت أحصل على نفس الخطأ. تبين أنه كان علي "مسح CAPTCHA" من الويب. راجع وثائق gmail للحصول على التفاصيل.

يمكنك أيضًا الانتقال مباشرةً إلى صفحة "مسح CAPTCHA" هنا .

Alejandro Sherwell picture
في ٢ يونيو ٢٠١٦
2

بعد ذلك بوقت طويل ولكن فقط في حالة مساعدة أي شخص .. اتصل للتو بمركز مساعدة تطبيقات Google وأصدروا تعليمات لتغيير إعداد تطبيق أقل أمانًا (مثل أي شخص آخر) ولكن أيضًا لتغيير المنفذ إلى 465.

في حالتي ، هذه هي الحيلة!

Benyamin Jafari picture
في ٩ أبريل ٢٠١٨
2

كان لي نفس المشكلة.


حل:

cooxy picture
في ٨ أغسطس ٢٠١٦
0

مرحبًا ، لقد نجح هذا أيضًا بالنسبة لي ، لذا إذا كان شخص ما لا يزال يواجه مشكلة ، فجرّب ذلك.

تأكد من أن لديك فيجارو في ملف الأحجار الكريمة الخاص بك. لحفظ المعلومات الحساسة مثل اسم المستخدم وكلمة المرور كمتغيرات البيئة

gem 'figaro'

وفي الملف config / environment / development.rb الخاص بك ، الصق الرموز أدناه باستخدام بروتوكول smtp كوسيلة للتسليم

 config.action_mailer.delivery_method = :smtp

إعدادات SMTP لـ gmail

  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: '[email protected]' 
gmail_password: "your_example_email_password_here"

يجب عليك استخدام بريدك الإلكتروني وكلمة المرور للمصادقة في الملف.

Shrinivas picture
في ٥ يوليو ٢٠١٧
0

لقد واجهت المشكلة أيضًا ، وبعد إجراء بعض الأبحاث في إعداد Gmail ، وجدت الحل:

  1. في gmail ، انتقل إلى الإعدادات.

  2. حدد علامة التبويب "إعادة التوجيه و POP / IMAP".

  3. في قسم الوصول عبر IMAP ، حدد "تمكين IMAP".

ubugnu picture
في ١١ يوليو ٢٠١٨
0

تبدو الإجابة المقبولة قديمة جدًا ، ولا أعرف ما إذا كان الحل التالي (الأفضل) موجودًا في ذلك الوقت:

  • انتقل إلى https://myaccount.google.com/u/0/apppasswords
  • أنشئ كلمة مرور جديدة لتطبيقك
  • استبدل كلمة المرور الشخصية بكلمة المرور التي تم إنشاؤها في config.action_mailer.smtp_settings

الآن ، إرسال رسائل البريد الإلكتروني يعمل بشكل مثالي!