我已经寻找解决方案已经有一段时间了,但是到目前为止我还没有工作。
我想设置装置,以便它可以通过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配置中。.你有建议吗?
答案 0 :(得分:0)
检查您的机密。yml的位置没有空格, 检查.env参数是否正确发布,