2015-11-25 8 views
9

Ich erstelle ein Ruby-Skript, das den Antwortstatus einer URL überprüft und wenn es gleich 504 ist, sendet es eine Mail an eine andere E-Mail-Adresse. Aus irgendeinem Grund bekomme ich das: /usr/lib/ruby/1.9.1/net/smtp.rb:960:in 'check_auth_response': 534-5.7.14 <https://accounts.google.com/ContinueSignIn?sarp=1&scc=1&plt=AKgnsbv9z (Net::SMTPAuthenticationError) I Quadra überprüft die Authentifizierungsdaten und sie sind gültig. Vielleicht kann es etwas falsch im Code sein:Ruby sending mail über Google Mail smtp

require 'mail' 

options = { :address    => "smtp.gmail.com", 
      :port     => 587, 
      :user_name   => '<myusername>', 
      :password    => '<mypassword>', 
      :authentication  => 'plain', 
      :enable_starttls_auto => true } 

Mail.defaults do 
    delivery_method :smtp, options 
end 

Mail.deliver do 
     to '[email protected]' 
    from '[email protected]' 
    subject 'Test' 
    body 'Hurray!!! Test email!' 
end 

Oh auch, bekam ich die Mitteilung von Google, dass eine weniger sichere App versucht, auf mein Konto zuzugreifen, so dass ich eingerichtet, dass weniger sichere Apps mein Konto verwenden können.

+0

Ich hoffe, dass Sie dieses Problem lösen und eine gute Antwort schreiben! Ich hatte auch in der Vergangenheit Probleme damit, löste es durch ein Wunder oder durch Google Devilry und vergaß sofort alles. – jphager2

Antwort

14

Wenn Sie nicht unter Verwendung von 2-Faktor-Authentifizierung

Gehe zu dieser Verbindung sind:

https://www.google.com/settings/security/lesssecureapps

Und wählen:

"Zugang für weniger sichere Apps"

gemäß:

https://support.google.com/accounts/answer/6010255?hl=en

In diesem Fall würden Sie Ihre normale E-Mail-Adresse und Ihr Passwort verwenden, um eine Verbindung herzustellen.

Wenn Sie sind unter Verwendung von 2-Faktor-Authentifizierung

Sie benötigen eine App spezifisches Passwort für Ihre Anwendung zu erstellen. Gehen Sie folgendermaßen vor:

  1. Go
  2. in der oberen rechten Ecke klicken Sie auf Ihr Profilsymbol auf gmail und wählen Sie ‚Mein Konto‘
  3. Klicken Sie auf ‚Anmelden & Sicherheit‘
  4. Blättern Sie in der ' Anmelden & Sicherheit 'Seite ein bisschen und es gibt einen Abschnitt namens' App Passwords 'Klicken Sie darauf.
  5. Sie sollten eine Dropdown-Liste mit der Bezeichnung "App auswählen" sehen. Wählen Sie E-Mail.
  6. Wählen Sie für das Dropdown-Menü "auf meinem Gerät" die Option "Andere" und geben Sie die Befehlszeile ein, oder wie immer Sie die App aufrufen möchten.
  7. Klicken Sie auf "Generate". Ein Passwort wird generiert. Kopieren Sie das Passwort ein und ersetzen Sie das Passwort, das Sie wurden in Ihrer Optionen Hash mit dem erzeugten Kennwort:

    options = {: Adresse => "smtp.gmail.com", : port => 587, : user_name => '', : password => '', : authentication => 'Ebene', : enable_starttls_auto => true}

, dass es sein sollte. Ich habe es gerade versucht und es hat für mich funktioniert.

Stellen Sie außerdem sicher, dass Ihr Benutzername Ihre vollständige Google Mail-E-Mail-Adresse ist.

Sie können auch die ‚offizielle Dokumente‘ finden Sie hier: https://support.google.com/accounts/answer/185833?hl=en

+0

Nun, es sieht so aus, als hätte ich kein Glück: "Die von Ihnen gesuchte Einstellung ist für Ihr Konto nicht verfügbar.". –

+0

Sieht so aus, als ob du nicht 2FA benutzt. Ich habe meine Antwort so aktualisiert, dass ich einer "weniger sicheren" Anwendung erlauben kann, eine Verbindung herzustellen. Sie würden in diesem Fall Ihr reguläres Passwort verwenden. – rainkinz

+0

große Antwort, danke! –