2010-10-18 17 views
8

Używam SendGrid do wysyłania e-maili na Heroku ...Szyny ActionMailer z SendGrid

Problem do tej pory jest natomiast to działa świetnie na Heroku, na moim lokalnego hosta nie powiedzie.

Teraz mam SendGrig zainstalować tutaj, 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'] 
} 

Co znajduje się Heroku/SendGrid sposób, aby umożliwić mi, aby upewnić się moje koperty pracować w Dev. Czy plik setup_mail.rb jest dobry? Czy powinien znajdować się w pliku env? Jakieś inne myśli?

Dzięki

Odpowiedz

11

Korzystanie z pliku config/environments/[development.rb | production.rb], ponieważ wspomniane wyżej tfe brzmi jak jego droga. Wystarczy, że umieścisz konfigurację ActionMailer w jednym z tych plików i zmienisz ją, aby pasowała do środowiska produkcyjnego.

Można również znaleźć twoi SendGrid poświadczenia używane przez Heroku wydając następującą komendę:

Heroku config --long

Poświadczenia te są używane dla wszystkich uwierzytelniania SendGrid (SMTP Auth, strona internetowa zaloguj aby zobaczyć statystyki itd dostępu API)

- Joe

SendGrid

+2

Wygląda na to, że 'heroku config --long' nie działa. 'heroku config: get SENDGRID_USERNAME' i' heroku config: get SENDGRID_PASSWORD' dostaniesz te same informacje. –

+5

lub po prostu 'heroku config' bez parametrów –

4

Wystarczy ustawić zmienne środowiskowe na środowisko programistyczne dla SENDGRID_USERNAME, SENDGRID_PASSWORD i SENDGRID_DOMAIN. Wtedy to zadziała.

Możesz uzyskać prawidłowe wartości dla nich z aplikacji Heroku. Otwórz konsolę heroku i uzyskaj wartości ENV['SENDGRID_USERNAME'] i tak dalej.

Lub użyj lokalnego zestawu innych ustawień SMTP. Lub użyj sendmaila lub czegoś podobnego.

+0

Dzięki, "używaj innego zestawu ustawień SMTP lokalnie" właśnie to staram się nauczyć. Jaka jest właściwa droga w Railsach do robienia tego ustawienia przez envs? – AnApprentice

+0

Wierzę, że możesz po prostu ustawić "ActionMailer :: Base.smtp_settings" w każdym z plików inicjalizujących środowisko ('config/environments/foo.rb'). Nie jestem pewna na Rails Way; Nie skonfigurowałem poczty w ten sposób od jakiegoś czasu. – tfe

+1

Uruchomiłem kilka aplikacji na Heroku z SendGrid, ale wpadłem na ten sam problem (pragnąc wysłać pocztę lokalnie, jak również na Heroku). To, co zrobiłem, to po prostu samemu przejść do SendGrid i założyć konto. Potem miałem nazwę użytkownika i hasło, które mogłem ustawić w aplikacji dla wszystkich środowisk, a te poświadczenia nie były zamknięte w "ENV" aplikacji Heroku. – tfe

Powiązane problemy