2010-10-18 7 views
8

ich SendGrid bin mit E-Mails auf Heroku senden ...Rails Action mit SendGrid

Das Problem ist so weit, während er es auf Heroku, auf meinem lokalen Host ausfällt funktioniert gut.

Im Moment habe ich SendGrig hier installieren, config/setup_mail.rb:

ActionMailer::Base.smtp_settings = { 
    :address  => "smtp.sendgrid.net", 
    :port   => "25", 
    :authentication => :plain, 
    :user_name  => ENV['SENDGRID_USERNAME'], 
    :password  => ENV['SENDGRID_PASSWORD'], 
    :domain   => ENV['SENDGRID_DOMAIN'] 
} 

Was eine Heroku/SendGrid Weg, mir zu erlauben, meine Mailer arbeiten in DEV, um sicherzustellen. Ist diese Datei setup_mail.rb eine gute Sache? Sollte es in der env-Datei sein? Irgendwelche anderen Gedanken?

Dank

Antwort

11

Verwenden von config/environments/[development.rb | production.rb] wie oben erwähnt klingt wie es der Weg zu gehen ist. Fügen Sie einfach die ActionMailer-Konfiguration in eine dieser Dateien ein und ändern Sie sie entsprechend der | Entwicklungsumgebung.

Sie auch Ihre SendGrid Anmeldeinformationen von Heroku, indem Sie den folgenden Befehl finden:

Heroku Config --long

Diese Anmeldeinformationen verwendet werden, für alle SendGrid Authentifizierung (SMTP-Auth, Website anmelden Statistiken anzuzeigen, usw., API-Zugriff)

- Joe

SendGrid

+2

Es scheint, dass 'Heroku config --long' nicht mehr funktioniert. 'heroku config: get SENDGRID_USERNAME' und' heroku config: get SENDGRID_PASSWORD' erhalten Sie die gleichen Informationen. –

+5

oder einfach 'heroku config' ohne die params –

4

Gerade Umgebungsvariablen auf Ihre Entwicklungsumgebung für SENDGRID_USERNAME, SENDGRID_PASSWORD und SENDGRID_DOMAIN. Dann wird es funktionieren.

Sie können die richtigen Werte für diese von Ihrer Heroku App erhalten. Öffne die heroku-Konsole und erhalte die Werte ENV['SENDGRID_USERNAME'] und so weiter.

Oder verwenden Sie einfach einen anderen Satz von SMTP-Einstellungen lokal. Oder benutze sendmail oder so etwas.

+0

Danke, "verwenden Sie einen anderen Satz von SMTP-Einstellungen lokal" das ist genau das, was ich versuche zu lernen, wie zu tun ist. Was ist der richtige Weg in Rails, um diese Einstellung über Envs zu machen? – AnApprentice

+0

Ich glaube, Sie können nur die 'ActionMailer :: Base.smtp_settings' in jeder Ihrer Umgebung Initialisierungsdateien (' config/environments/foo.rb') setzen. Ich bin mir hier auf dem Rails Way nicht ganz sicher; Ich habe die Mail auf diese Weise seit einiger Zeit nicht mehr konfiguriert. – tfe

+1

Ich starte mit SendGrid mehrere Apps auf Heroku, aber ich stieß auf das gleiche Problem (ich wollte sowohl lokal als auch auf Heroku Mail senden). Was ich getan habe, war, einfach selbst zu SendGrid zu gehen und mich für ein Konto anzumelden. Dann hatte ich den Benutzernamen und das Passwort, die ich in der App für alle Umgebungen einstellen konnte, und diese Zugangsdaten waren nicht in der "ENV" der Heroku App eingeschlossen. – tfe