Net :: SMTPAuthenticationError beim Senden von E-Mails von der Rails-App (in einer Staging-Umgebung)


95

Ich sende eine E-Mail von meiner Rails-Anwendung. Es funktioniert gut in der Entwicklungsumgebung, schlägt jedoch beim Staging fehl. Ich erhalte folgende Fehlermeldung:

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

Beachten Sie, dass ich keinen Domainnamen für meine Bereitstellung habe.

Hier sind meine Einstellungen in 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'
}

Bitte helfen Sie.

Bearbeiten.

Nach dem Hinzufügen der :tls => trueOption bekomme ich

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

Und dann habe ich den Port auf 25 geändert und jetzt bekomme ich diesen (mit 30 Sekunden Verzögerung):

Timeout::Error (execution expired)

1
Ich habe die fehlerhafte URL (Google hat wahrscheinlich im Voraus für uns gedacht) in den Browser kopiert. Ich habe mein Passwort eingegeben und in dem Bereich, den ich gesehen habe, die Möglichkeit gewechselt, Anfragen nicht nur von vertrauenswürdigen Sites zu stellen.
Zmii

Antworten:


249

Ich hatte das gleiche Problem: E-Mails wurden von der Entwicklung gesendet, aber nicht von der Produktion (wo ich sie bekam Net::SMTPAuthenticationError). Dies führte mich zu dem Schluss, dass das Problem nicht bei der Konfiguration meiner App lag, sondern bei Google.

Grund : Google hat den Zugriff von einem unbekannten Ort blockiert (App in Produktion).

Lösung : Gehen Sie zu http://www.google.com/accounts/DisplayUnlockCaptcha und klicken Sie auf Weiter (dies gewährt 10 Minuten Zugriff für die Registrierung neuer Apps). Danach begann meine App in der Produktion E-Mails zu senden;)


3
Das ist eigentlich der richtige Weg, um es zu lösen (obwohl es Ihr Konto gefährden kann). Aber es funktioniert.
Zakelfassi

40
Vergessen Sie auch nicht, den
Kontozugriff

Ich konnte die lesssecureappsEinstellung vermeiden , indem ich die Multifaktorauthentifizierung verwendete und ein app-spezifisches Kennwort für meinen Rails-Server aktivierte.
Chris Beck

1
Wahrscheinlich ist es besser, einen Dienst wie Mandrill zum Senden von E-Mails in einer Produktionsumgebung zu verwenden
Codebling

Ich habe die Kontoeinstellung von lesssecureapps aktiviert und bin zur Seite DisplayUnlockCaptcha gegangen und habe auf OK geklickt , E-Mails über Schienen gesendet, aber den gleichen Fehler erhalten Net::SMTPAuthenticationError ...ContinueSignIn.... Dann habe ich nach 10 Minuten versucht, dasselbe zu tun, und es fing an zu funktionieren.
Lev Lukomsky

25

Diese Lösung funktioniert für mich:

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 blockiert zwar Ihren Anmeldeversuch, Sie können Ihre Einstellungen jedoch unter https://www.google.com/settings/security/lesssecureapps ändern, sodass Ihr Konto nicht mehr durch moderne Sicherheitsstandards geschützt ist.


Gibt es einen Weg, dies zu tun? Ist es beispielsweise möglich, Ihre App bei Google zu registrieren?
jphager2

24

Gelöst! Ich habe einfach das Passwort für mein Google Mail-Konto geändert und irgendwie sind Fehler verschwunden.

Nach Dutzenden von Änderungen habe ich folgende Einstellungen vorgenommen:

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
Danke dir! Dieses Problem bereitete mir große Kopfschmerzen. Am Ende musste ich mein Google-Kontokennwort ändern, nachdem ich diese Einstellungen verwendet und die Option "Weniger sichere Apps zulassen" in den Google-Kontoeinstellungen festgelegt hatte.
Corey

Nachdem Sie "Weniger sichere Apps zulassen" festgelegt und Google angewiesen haben, meinem Gerät (Server-IP) zu vertrauen und mehr als 24 Stunden zu warten, wurden meine Probleme mit der Google Mail-Authentifizierung durch eine einfache Änderung des Kennworts behoben. Jemand bei Google sollte das wahrscheinlich beheben. ;)
Jason R

Ich stand vor dem gleichen Problem. Ich hatte bereits lessecureapps aktiviert, aber es wird nicht behoben. Ich habe einfach mein Passwort geändert und es hat wie ein Zauber funktioniert. :)
Nikhil Sahu


13

Die obige Lösung lieferte die richtigen Einstellungen (die ich bereits hatte), löste das Problem jedoch nicht. Nach weiteren Versuchen bekam ich immer wieder den gleichen Fehler. Es stellte sich heraus, dass ich "CAPTCHA löschen" musste. Weitere Informationen finden Sie in der Google Mail-Dokumentation .

Sie können auch direkt auf die „deaktivieren Sie das CAPTCHA“ Seite springen hier .


1
Direkter Link zur Seite "CAPTCHA löschen": accounts.google.com/DisplayUnlockCaptcha
tmr08c

2

Viel später, aber nur für den Fall, dass es jemandem hilft. Sie haben gerade das Google Apps-Hilfezentrum angerufen und angewiesen, die Einstellung für weniger sichere Anwendungen (wie alle anderen auch) zu ändern, aber auch den Port auf 465 zu ändern.

In meinem Fall hat das den Trick getan!



0

Hallo, das hat auch bei mir funktioniert. Wenn also noch jemand ein Problem hat, probieren Sie es aus.

Stellen Sie sicher, dass Sie Figaro in Ihrer Gemfile haben. Speichern vertraulicher Informationen wie Benutzername und Kennwort als Umgebungsvariablen

gem 'figaro'

Fügen Sie in Ihrer Datei config / environment / development.rb die folgenden Codes mit smtp als Methodenübermittlung ein

 config.action_mailer.delivery_method = :smtp

SMTP-Einstellungen für Google Mail

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

Erstellen Sie in Ihrem Konfigurationsverzeichnis eine Datei mit dem Namen application.yml und fügen Sie die folgenden Codes hinzu.

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

Sie müssen Ihre E-Mail-Adresse und Ihr Passwort für die Authentifizierung in der Datei verwenden.


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

0

Ich war auch mit dem Problem konfrontiert und fand nach einigen Recherchen in der Google Mail-Umgebung die Lösung:

  1. Gehen Sie in Google Mail zu den Einstellungen.

  2. Wählen Sie die Registerkarte "Weiterleitung und POP / IMAP".

  3. Wählen Sie im Abschnitt IMAP-Zugriff "IMAP aktivieren".


0

Die akzeptierte Antwort scheint sehr alt zu sein, ich weiß nicht, ob zu diesem Zeitpunkt die folgende (bessere) Lösung existierte:

Jetzt funktioniert das Versenden von E-Mails perfekt!


0

So beheben Sie dieses Problem:

  • Wenn Folgendes angezeigt wird : Net :: SMTPAuthenticationError (535-5.7.8 Benutzername und Kennwort werden nicht akzeptiert.) , Müssen Sie weniger sicheren Apps erlauben, sich in Ihrem Google-Konto anzumelden . Um die Anmeldung für weniger sichere Apps zu aktivieren, gehen Sie wie folgt vor: https://myaccount.google.com/lesssecureapps? . Erlaubt aber allen Apps, sich anzumelden. Wenn Sie es anpassen möchten, lesen Sie: https://support.google.com/a/answer/6260879?hl=de

  • Dann erhalten Sie möglicherweise Net :: SMTPAuthenticationError (534-5.7.14). Um dies zu beheben, lesen Sie bitte : pli = 1http: //www.google.com/accounts/DisplayUnlockCaptcha. Klicken Sie anschließend auf der Seite, auf die Sie umgeleitet werden, auf Weiter. Es überprüft Ihr Captcha und Ihre App wird überprüft, ob Sie Ihr Google-Konto zum Senden von E-Mails verwenden.

HINWEIS: Bitte stellen Sie sicher, dass Sie die korrekten Anmeldeinformationen Ihres Google Mail-Kontos verwenden.

Wenn Sie nicht bereit sind, alle Apps zuzulassen, lesen Sie bitte: https://support.google.com/a/answer/6260879?hl=de . Über den Link gehen Sie zu Alternativen zu weniger sicheren Apps verwenden . Dies führt Sie zu einer alternativen Möglichkeit, weniger sicheren Apps den Zugriff auf Ihr Google-Konto zu ermöglichen.


-1

Ich hatte das gleiche Problem und bin nach einigen Versuchen und Irrtümern zu dieser Auflösung gekommen, die eine Option ist, die in Google aktiviert werden kann:

Klicken Sie auf https://www.google.com/settings/u/0/security/lesssecureapps

Aktivieren Sie hier "Zugriff für weniger sichere Apps", indem Sie sich mit der E-Mail-Adresse anmelden, die Sie in der SMTP-Konfiguration angegeben haben.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.