应用程序不会通过Sendgrid和设计发送确认电子邮件

时间:2018-09-30 21:22:14

标签: ruby-on-rails heroku devise sendgrid

我已经寻找解决方案已经有一段时间了,但是到目前为止我还没有工作。

我想设置装置,以便它可以通过heroku上的sendgrid发送确认邮件。我为我的应用程序以及添加了em403.mydomain.com的sendgrid配置了自定义域。我将使用“ mydomain.com”进行进一步的说明,这些说明将在我的实际应用中替换。

我的设置:

environments / production.rb

config.action_mailer.default_url_options = { :host => 'mydomain.com' }
config.action_mailer.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
  :user_name            => ENV['SENDGRID_USERNAME'],
  :password             => ENV['SENDGRID_PASSWORD'],
  :address              => "smtp.sendgrid.net",
  :port                 => 587,
  :enable_starttls_auto => true,
  :authentication       => :plain,
  :domain               => "em403.mydomain.com"
}

initializers / devise.rb

config.mailer_sender = 'hello@mydomain.com'
config.mailer = 'Devise::Mailer'

config.reconfirmable = true
config.confirmation_keys = [:email]

config / environment.rb

ActionMailer::Base.smtp_settings = {
  :user_name => ENV['SENDGRID_USERNAME'],
  :password => ENV['SENDGRID_PASSWORD'],
  :domain => 'em403.mydomain.com',
  :address => 'smtp.sendgrid.net',
  :port => 587,
  :authentication => :plain,
  :enable_starttls_auto => true
}

我不知道为什么它不起作用,因为我已按照说明进行配置。我也尝试过遵循this tutorial by sendgrid,但并未考虑将devise作为用户身份验证。即使我尝试将控制器设置实现到我的自定义devise/registrations_controller中。在我忘记之前:我也将api密钥添加到了我的heroku配置中。.你有建议吗?

1 个答案:

答案 0 :(得分:0)

检查您的机密。yml的位置没有空格, 检查.env参数是否正确发布,