SendGrid不发送电子邮件Heroku

时间:2018-10-22 15:02:14

标签: ruby-on-rails heroku sendgrid

我正在尝试从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,

1 个答案:

答案 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
  }