2011-08-24 13 views
7

Próbuję zaimplementować formularz "skontaktuj się z nami" w moim projekcie rails 3.0.10. Po RailsGuides stworzyłem program pocztowy.Czy istnieje sposób debugowania mailera za pomocą sendgrid na heroku? Lub, aby sprawdzić, czy poczta rzeczywiście zostanie wysłana?

class QuestionMailer < ActionMailer::Base 
    default :to => "%[email protected]" #gmail for domains 

    def ask(message) 
    @content = message.content 

    unless message.name.nil? or message.name.empty? 
     from = "#{message.name} <#{message.email}>" 
    else 
     from = message.email 
    end 

    mail(:subject => message.subject, :from => from) 
    end 
end 

W moim kontroler mam te linie:

if @question.valid? 
    QuestionMailer.ask(@question).deliver 
    redirect_to root_url, :notice => "Сообщение отправлено" 
else 

production.rb:

config.action_mailer.delivery_method = :smtp 
config.action_mailer.default_url_options = { :host => '%mydomain%' } 

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'] 
} 

nie mam tego config na początku, ale kiedy nie otrzyma e-mail, dodałem go.

Problem polega na tym, że dziennik Heroku mówi, że odpowiedni widok został wyrenderowany, ale nie otrzymałem wiadomości e-mail. A ponieważ używam sendgrid, nie mogę go przetestować lokalnie.

UPD

Uwaga do siebie. Po utworzeniu konta Gmail dla domeny nie zapomnij o ustawieniach DNS. > _ <

Odpowiedz

11

Możesz testować lokalnie nadal używając sendgrid - z linii poleceń do heroku config i możesz pobrać wartości ustawione przez Heroku dla nazwy użytkownika, hasła i domeny sendgrid, a następnie ustawić je w pliku development.rb wraz z ustawienia actionmailer i przekieruje wiadomość przez sendgrid z lokalnej aplikacji deweloperskiej.

Również znajduję tę plugin heroku https://github.com/hone/heroku-sendgrid-stats bardzo przydatny do sprawdzania moich wiadomości wysyłania numerów.