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 => "[email protected]",
      :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)
eagor
quelle
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;)

Gee-Bee
quelle
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 => "[email protected]",
      :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.

AHK
quelle
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 => "[email protected]",
      :password => "my_email_password",
      :authentication => :plain,
      :enable_starttls_auto => true
}
eagor
quelle
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 .

Sorry-Im-a-N00b
quelle
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!

Alejandro Sherwell
quelle
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: '[email protected]' 
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.

cooxy
quelle
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".

Shrinivas
quelle
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!

Ubugnu
quelle
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.

Yash Dubey
quelle
-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.

Mirza Vu
quelle