Ruby on rails 有没有办法在heroku上用sendgrid调试邮件程序?或者检查邮件是否已实际发送?

Ruby on rails 有没有办法在heroku上用sendgrid调试邮件程序?或者检查邮件是否已实际发送?,ruby-on-rails,ruby-on-rails-3,heroku,actionmailer,sendgrid,Ruby On Rails,Ruby On Rails 3,Heroku,Actionmailer,Sendgrid,我正试图在rails 3.0.10项目中实现一个“联系我们”表单。按照铁路指南,我创建了一个邮递员 class QuestionMailer < ActionMailer::Base default :to => "%mail@mydomain" #gmail for domains def ask(message) @content = message.content unless message.name.nil? or message.name.em

我正试图在rails 3.0.10项目中实现一个“联系我们”表单。按照铁路指南,我创建了一个邮递员

class QuestionMailer < ActionMailer::Base
  default :to => "%mail@mydomain" #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
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']
}
起初我没有这个配置,但当我没有收到电子邮件时,我添加了它

Heroku日志说,问题是相应的视图已经呈现,但我没有收到电子邮件。因为我使用sendgrid,所以无法在本地进行测试

upd


自我提醒。在为域帐户创建gmail后,不要忘记更改DNS设置。>_ 您仍然可以使用sendgrid在本地进行测试-从命令行do
heroku config
获取heroku为sendgrid用户名设置的值,密码和域,然后在development.rb中设置它们以及actionmailer设置,它将通过本地开发应用程序的sendgrid路由您的邮件

我还发现这个heroku插件对于检查我的消息发送号码非常有用

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