为设计发送邮件

时间:2017-01-19 00:41:24

标签: ruby-on-rails heroku devise sendgrid

我正在尝试从我的rails应用程序通过sendgrid发送邮件。我先前已经设置了sendgrid。我能够通过heroku在开发和生产中发送和接收邮件。一切都工作了一天。几天后我回来了,没有任何效果。

没有错误。在开发中,它表示邮件已发送,但电子邮件不发送,生成相同。

这是我的设置:

development.rb

config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }
config.action_mailer.delivery_method = :smtp
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true

production.rb

config.action_mailer.default_url_options = { host: 'herokuapp.com' }
Rails.application.routes.default_url_options[:host] = 'herokuapp.com' 
config.action_mailer.delivery_method = :smtp
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = false
config.action_mailer.default :charset => "utf-8"

为setup_mail.rb

ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
    address:                'smtp.sendgrid.net',
    port:                   '587',
    :authentication         => :plain,
    user_name:              'user',
    password:               'pass',
    domain:                 'herokuapp.com',
    enable_starttls_auto: true
}

我已经尝试将我的传递重置为sendgrid并删除然后重新添加它然后我遇到错误说"用户被禁止"我无法重新添加它。

我也尝试过切换到邮戳,但邮件从未收到但是已发送。

1 个答案:

答案 0 :(得分:1)

如果他们收到您的电子邮件请求,您应该检查Sendgrid。

来自documentation

  

在“电子邮件活动”中搜索电子邮件。如果我们成功发送了消息,您将看到已交付的事件与交付时间。如果您没有看到电子邮件,则可以单击搜索选项并确保已选中已处理和已延期。处理过的事件表明我们确实收到了您的请求。延迟事件显示接收服务器是否接收该消息时出现问题或延迟。