设置用户确认时,设计中的Net :: SMTPAuthenticationError

时间:2014-12-05 09:59:00

标签: email devise sendgrid confirmation

当我尝试在我的Rails应用程序中设置用户混淆时,我收到以下错误。

Net::SMTPAuthenticationError in Devise::ConfirmationsController#create
535 Authentication failed: Bad username / password

我查看了终端,并设置了电子邮件和所有内容,但电子邮件未收到。 小号 不确定我需要发布哪些代码部分,但这里是我的config / environments / developer文件和setup_mail.file中的代码。

有什么想法吗?我不确定这里发生了什么。

development:

Rails.application.configure do
  config.cache_classes = false

  config.eager_load = false
  config.consider_all_requests_local       = true
  config.action_controller.perform_caching = false

  config.active_support.deprecation = :log

  # Raise an error on page load if there are pending migrations.
  config.active_record.migration_error = :page_load
  config.assets.debug = true
  config.assets.raise_runtime_errors = true

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

setup_mail

if Rails.env.development?
 ActionMailer::Base.delivery_method = :smtp
 ActionMailer::Base.smtp_settings = {
 address:         'smtp.sendgrid.net',
 port:            '587',
 authentication:   :plain,
 user_name:           ENV['SENDGRID_USERNAME'],
 password:        ENV['SENDGRID_PASSWORD'],
 domain:              'heroku.com',
 enable_starttls_auto: true
 }
end

1 个答案:

答案 0 :(得分:0)

Heroku默认使用rails生产环境。您仅为开发环境定义了邮件程序设置。将配置移至config/environment.rbconfig/environments/production.rb可以解决您的问题。

您可以参考https://sendgrid.com/docs/Integrate/Frameworks/rubyonrails.html#-Configure-ActionMailer-to-Use-SendGrid了解更多信息。