2013-04-25 11 views
8

Ich habe eine einfache Rails 3.2.7 App mit Devise hinzugefügt, die mit Sendgrid zu Heroku bereitgestellt wird. Es funktioniert gut auf Heroku für alles, außer wenn es ein Passwort abrufen muss, was das Senden einer E-Mail erfordert. Von all den Posts, die ich gelesen habe, vermute ich, dass ich irgendwie die Mail-Parameter falsch einrichte. Irgendwelche Vorschläge werden geschätzt.Wie konfiguriere ich Devise Email mit Heroku und Sendgrid in Rails?

Für config/Umgebungen/production.rb hinzugefügt i

config.action_mailer.default_url_options = { :host => 'smtp.sendgrid.net'} 

für config/initializers/devise.rb i

config.mailer_sender = "[email protected]" 

und für config/environments.rb hinzugefügt i hinzugefügt

ActionMailer::Base.smtp_settings = { 
:address  => 'smtp.sendgrid.net', 
:port   => '587', 
:authentication => :plain, 
:user_name  => ENV['SENDGRID_USERNAME'], 
:password  => ENV['SENDGRID_PASSWORD'], 
:domain   => 'heroku.com', 
:enable_starttls_auto => true 
} 

Antwort

8

Ihr Problem ist also, dass Sie die falschen Umgebungsvariablen referenziert haben. Heroku speichert Ihre SendGrid-Anmeldeinformationen in ENV['SENDGRID_USERNAME'] und ENV['SENDGRID_PASSWORD']. Sie haben Ihren tatsächlichen Benutzernamen und Ihr Passwort als Schlüsselnamen verwendet.

Dies funktioniert:

ActionMailer::Base.smtp_settings = { 
    :address  => 'smtp.sendgrid.net', 
    :port   => '587', 
    :authentication => :plain, 
    :user_name  => ENV['SENDGRID_USERNAME'], 
    :password  => ENV['SENDGRID_PASSWORD'], 
    :domain   => 'heroku.com', 
    :enable_starttls_auto => true 
} 
+1

Dank Swift-es funktioniert !! – user2284821

Verwandte Themen