2016-06-21 4 views
0

Entschuldigung, wenn die Antwort da draußen ist, aber in den vielen ähnlichen Posts, die ich gesucht habe, habe ich nicht die Antwort gefunden, die ich suche.Ruby on Rails Ende der Datei mit SMTP

Ich habe eine Ruby on Rails-Anwendung geerbt, und es begann vor kurzem versäumt, E-Mails zu senden. Von dem, was ich sammeln kann, ist dies auf einen SMTP-Fehler zurückzuführen.

Ich möchte E-Mails von "[email protected]" mit "[email protected]" für die SMTP-Einstellungen senden.

In .../config/Umgebungen/production.rb Ich habe

ActionMailer::Base.smtp_settings = {       
    :enable_starttls_auto => true, 
    :address      => 'smtp.gmail.com', 
    :port       => 587,    
    :authentication   => :plain,     
    :user_name      => '<[email protected]>' 
    :password      => '<mygmailpassword>'  
} 

und in .../app/models/ Ich habe eine Datei user_notifier.rb aufgerufen, enthält

class UserNotifier < ActionMailer::Base 
    def signup_notification(user) 
     setup_email(user) 
     @subject += 'Please activate your new account' 
     @body[:url] = "<mydomain.com>:8080/activate/#{user.activation_code}" 
    end 

    def activation(user) 
     setup_email(user) 
     @subject += 'Your account has been activated' 
     @body[:url] = "<mydomain.com>:8080" 
    end 

    def reset_notification(user) 
     setup_email(user) 
     @subject += 'Link to reset your password' 
     @body[:url] = "<mydomain.com>:8080/reset_password/#{user.reset_password_code}" 
    end 

    def login_reminder(user) 
     setup_email(user) 
     @subject += 'Login Reminder' 
     @body[:url] = "<mydomain.com>:8080" 
    end 

    protected 

    def setup_email(user) 
     @recipients = "#{user.email}" 
     @from = "<[email protected]>" 
     @subject = "<subject>" 
     @sent_on = Time.now 
     @body[:user] = user 
     bcc ["<[email protected]>"] 
    end 
end 

All dieser Code einmal funktioniert, so dass ich nicht sicher bin, was sich geändert hat. Während ich dies schreibe, merke ich, dass der plötzliche Ausfall einer Wartung im Netzwerk entsprach, also weiß ich nicht, wie sich das auf die Dinge auswirken könnte.

EDIT: Hinzugefügt wurde die gesamte UserNotifier Klasse wie in den Kommentaren angefordert

+0

Sie Ihre vollständige 'UserNotifier' Klasse – oreoluwa

+0

sicher schreiben können. Ich habe es einfach hinzugefügt. – Will

Antwort

0

Nun, ich es tatsächlich geschafft, dieses selbst einer zu lösen.

Ich brauchte die :domain Option in .../config/Umgebungen/production.rb

Warum es einmal ohne :domain gearbeitet hinzufügen Ich weiß immer noch nicht, aber ich werde mit nehmen Sie nur die funktionales Produkt.

Die Arbeits Setup war

ActionMailer::Base.smtp_settings = {       
    :enable_starttls_auto => true, 
    :address      => 'smtp.gmail.com', 
    :port       => 587,    
    :authentication     => :plain,  
    :domain       => "gmail.com", 
    :user_name      => '<[email protected]>' 
    :password      => '<mygmailpassword>'  
}