wake-up-neo.com

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

Ich sende eine E-Mail aus meiner Rails Anwendung. Es funktioniert gut in Entwicklungsumgebungen, schlägt jedoch beim Staging fehl. Ich erhalte folgenden Fehler:

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.

Edit.

Nach dem Hinzufügen der Option :tls => true Erhalte ich

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

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

Timeout::Error (execution expired)
91
eagor

Ich hatte das gleiche Problem: E-Mails wurden von der Entwicklung gesendet, aber nicht von der Produktion (wo ich Net::SMTPAuthenticationError). Dies brachte 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 Zugriff) für 10 Minuten zum Registrieren neuer Apps). Danach begann meine App in der Produktion E-Mails zu versenden;)

237
Gee-Bee

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
  }

Es ist richtig, dass Google Ihren Anmeldeversuch blockiert. Sie können Ihre Einstellungen jedoch unter https://www.google.com/settings/security/lesssecureapps ändern, damit Ihr Konto nicht mehr von modern geschützt wird Sicherheitsstandards.

24
A H K

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

Nach Dutzenden von Änderungen sind die endgültigen Einstellungen, mit denen ich endete,:

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
}
23
eagor

gehen Sie zu folgendem Link und aktivieren Sie https://www.google.com/settings/security/lesssecureapps

14
aashish

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

Sie können auch direkt zur Seite "CAPTCHA löschen" springen hier .

13
Sorry-Im-a-N00b

Sehr viel später, aber nur für den Fall, dass es jemandem hilft. Sie haben gerade das Google Apps-Hilfe-Center angerufen und ihn angewiesen, die Einstellung lesssecureapps (wie alle anderen auch) zu ändern, aber auch den Port auf 465 zu ändern.

In meinem Fall war das der Trick!

2

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

Jetzt funktioniert das Versenden von E-Mails perfekt!

0
ubugnu

Ich hatte das gleiche problem.


Lösung:

0
Benyamin Jafari

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

  1. Wechseln 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 die Option "IMAP aktivieren".

0
Shrinivas

Hallo, das hat auch bei mir geklappt. Wenn also noch jemand ein Problem hat, probiere es aus.

Stelle sicher, dass du figaro in deinem Gemfile hast. Speichern vertraulicher Informationen wie Benutzername und Passwort als Umgebungsvariablen

gem 'figaro'

Fügen Sie in Ihrer config/surroundings/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 Kennwort für die Authentifizierung in der Datei verwenden.

0
cooxy