我正在尝试从Rails应用程序使用SendGrid发送邮件(使用Hartl的教程)。仅使用Heroku上的插件无法正常工作,因为它需要我的信用卡。然后,我注册了SendGrid并使用了如上所述的凭据,但仍然没有邮件。上面是我的production.rb文件。请帮忙吗?
config.action_mailer.delivery_method = :smtp
host = '<https://nameless-sierra-13544>.herokuapp.com'
config.action_mailer.default_url_options = { host: host }
ActionMailer::Base.smtp_settings = {
:address => 'smtp.sendgrid.net',
:port => '587',
:authentication => :plain,
:user_name => ENV['myusername'],
:password => ENV['mypass#'],
:domain => 'heroku.com',
:enable_starttls_auto => true
}
Merci,
答案 0 :(得分:0)
与上面的评论一致,我相信您的价值观有些偏离。我也认为您需要设置一个from
地址。这是我在生产中使用的副本,其中包含您的价值观,因此希望能对您有所帮助。我确实认为缺少有效的from
地址以及您的域值中的字符是无法正常工作的原因。当然,还要确保在heroku上设置了ENV
变量。
production.rb
config.action_mailer.delivery_method = :smtp
config.action_mailer.default_url_options = { host:'https://nameless-sierra-13544.herokuapp.com' }
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
config.action_mailer.default :charset => "utf-8"
ActionMailer::Base.smtp_settings = {
:from => 'your_email_here@email.com',
:user_name => ENV['myusername'],
:password => ENV['mypass#'],
:domain => 'https://obscure-chamber-73850.herokuapp.com',
:address => 'smtp.sendgrid.net',
:port => 587,
:authentication => :plain,
:enable_starttls_auto => true
}