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

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 有没有办法在heroku上使用sendgrid调试邮件程序?或者检查邮件是否实际发送?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试在rails 3.0.10项目上实现“联系我们”表单.在RailsGuides之后我创建了一个邮件程序.
  1. class QuestionMailer < ActionMailer::Base
  2. default :to => "%mail@mydomain" #gmail for domains
  3.  
  4. def ask(message)
  5. @content = message.content
  6.  
  7. unless message.name.nil? or message.name.empty?
  8. from = "#{message.name} <#{message.email}>"
  9. else
  10. from = message.email
  11. end
  12.  
  13. mail(:subject => message.subject,:from => from)
  14. end
  15. end

在我的控制器中,我有以下几行:

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

Production.rb:

  1. config.action_mailer.delivery_method = :smtp
  2. config.action_mailer.default_url_options = { :host => '%mydomain%' }
  3.  
  4. ActionMailer::Base.smtp_settings = {
  5. :address => "smtp.sendgrid.net",:port => "25",:authentication => :plain,:user_name => ENV['SENDGRID_USERNAME'],:password => ENV['SENDGRID_PASSWORD'],:domain => ENV['SENDGRID_DOMAIN']
  6. }

我一开始没有这个配置,但是当我没有收到电子邮件时,我添加了它.

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

UPD

注意自我.为域帐户创建Gmail后,请不要忘记您的DNS设置. > _<

解决方法

您仍然可以使用sendgrid在本地进行测试 – 从命令行执行heroku配置,您可以获取Heroku为sendgrid用户名,密码和域设置的值,然后将其设置在您的development.rb以及actionmailer设置中,它将路由来自本地开发应用程序的sendgrid消息.

我也发现这个heroku插件https://github.com/hone/heroku-sendgrid-stats对于检查我的消息发送号码非常有用.

猜你在找的Ruby相关文章