2014-04-17 7 views
10

nahm ich ein Kontaktformular haben und nach der Einreichung ich eine Netto bin immer :: SMTPAuthenticationError 535-5.7.8 Username and Password not accepted535-5.7.8 Benutzername und Kennwort nicht

Es ist zum Erstellen Aktion in der Steuerung ContactMailer.new_contact(@contact).deliver

ich Kontakte zeigen habe den Server neu gestartet. Ich habe versucht https://accounts.google.com/DisplayUnlockCaptcha.

Ich bin in der Entwicklung.

Kontakte Controller:

def new 
     @contact = Contact.new 
    end 

    def create 
     @contact = Contact.new(params[:message]) 
     if @contact.valid? 
     ContactMailer.new_contact(@contact).deliver 
     flash[:notice] = "Message sent! Thank you for contacting us." 
     redirect_to root_url 
     else 
     render :action => 'new' 
     end 
    end 
    end 

Development.rb:

config.action_mailer.raise_delivery_errors = true 
    config.action_mailer.perform_deliveries = true 
    config.action_mailer.delivery_method = :smtp 
    config.action_mailer.smtp_settings = { 
    address:    'smtp.gmail.com', 
    port:     587, 
    domain:    'gmail.com', 
    user_name:   '[email protected]', 
    password:    'password', 
    authentication:  'plain', 
    enable_starttls_auto: true } 

    config.action_mailer.default_url_options = { :host => "localhost:3000" } 
+1

Sie haben ein gültiges Google Mail-Konto zu verwenden, und ihre Anmeldeinformationen verwenden, um Google Mail-Server zu authentifizieren und die E-Mail senden. – MrYoshiji

+0

Ich verwende ein gültiges Google Mail-Konto. Es ist mein persönlicher Account, den ich täglich nutze. – xps15z

+4

Wenn Sie auf Ihrem Google Mail-Konto eine Konfiguration mit zwei Schritten eingerichtet haben, können Sie ** das normale Passwort nicht ** verwenden.In diesem Fall müssten Sie ein * anwendungsspezifisches Passwort * generieren und dieses in Ihrer 'config.action_mailer.smtp_settings' verwenden. –

Antwort

8

Zuerst Sie benötigen ein gültiges Google Mail-Konto mit Ihren Anmeldeinformationen zu verwenden.

Zweitens In meiner app ich nicht versuche, TLS Auto verwenden, ohne diese Linie:

config.action_mailer.smtp_settings = { 
    address:    'smtp.gmail.com', 
    port:     587, 
    domain:    'gmail.com', 
    user_name:   '[email protected]', 
    password:    'YOUR_PASSWORD', 
    authentication:  'plain' 
    # enable_starttls_auto: true 
    #^^ remove this option^^ 
} 
+5

Eigentlich benutze ich 'enable_starttls_auto: true' in smtp_settings die ganze Zeit und es funktioniert perfekt. Dies ist eine gültige Option und wird auch in [Konfiguration des Aktions-Mailers für Google Mail im Rails-Handbuch] (http://guides.rubyonrails.org/action_mailer_basics.html#action-mailer-configuration-for-gmail) angegeben. Möglicherweise war das Problem mit dem Serverzertifikat verbunden: [check: enable_starttls_auto hier] (https://github.com/rails/rails/blob/v4.0.0/guides/source/action_mailer_basics.md#action-mailer-configuration) –

+0

Ich hatte das gleiche Problem - ich benutze auch 'enable_stattls_auto: true' und es funktioniert jetzt. Am Ende hat es angefangen, indem ich den Rails Server neu gestartet habe - meine Einstellungen sind genau die gleichen wie zu dem Zeitpunkt als ich das Problem hatte. –

1

Goto config/initializers/setup_mail.rb Überprüfen Sie, ob die Konfiguration dort die Konfiguration in der development.rb file.It geschrieben Spiele sollten in beiden Dateien wie folgt aussehen:

config.action_mailer.smtp_settings = { 
    :address =>"[email protected]", 
    :port => 587, 
    :domain => "gmail.com", 
    :user_name => "[email protected]", 
    :password => "********", 
    :authentication => 'plain', 
    :enable_starttls_auto => true, 
    :openssl_verify_mode => 'none' 
    } 

Dies wird sicherlich Ihr Problem lösen.

+5

Sie haben gerade Ihre Google Mail-Anmeldedaten veröffentlicht. Aktualisieren Sie Ihr Passwort so schnell wie möglich. – Axxiss

+1

@Axxiss du hast mein Leben gerettet –

+3

@Supertracer Aber dein Passwort ist immer noch verfügbar unter http://stackoverflow.com/posts/32455654/revisions, also musst du es ändern – alhimik45

7

Ich hatte das gleiche Problem. Jetzt funktioniert es gut, nachdem ich Änderungen vorgenommen habe.

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

Sie sollten den „Zugang für weniger sichere Apps“ auf Aktiviert ändern (es aktiviert wurde, änderte ich deaktiviert und als zurück zu aktiviert). Nach einer Weile konnte ich E-Mails senden.

0

Wenn Sie das Problem nach dem Einschalten des less secure apps immer noch nicht lösen können. Der andere mögliche Grund, der diesen Fehler verursachen könnte, ist, dass Sie kein Google Mail-Konto verwenden.

- : user_name => '[email protected]' , # It can not be used since it is not a gmail address 
+ : user_name => '[email protected]' , # since it's a gmail address 

Siehe here.

Beachten Sie auch, dass es einige Zeit dauern kann, um die less secure apps zu aktivieren. Ich muss es mehrmals machen (bevor es funktioniert, jedesmal, wenn ich auf den Link zugreife, zeigt es, dass es off ist) und warte eine Weile, bis es wirklich funktioniert.

0

setzen Ihre raise_delivery_errors auf false statt wahr in Ihrem development.rb

config.action_mailer.raise_delivery_errors = false 
Verwandte Themen