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. > _ <