Разработка электронных писем с подтверждением аккаунта не отправляется, несмотря на то, что в логах heroku говорится, что это так.
Я добавил надстройку для отправки сетки в свое приложение heroku.Я попытался добавить config.action_mailer.perform_deliveries = true в мой файл production.rb и установить config.action_mailer.raise_delivery_errors = true.Но ни один из них, похоже, не работает.
config / environment / production.rb:
config.action_mailer.perform_caching = false
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :smtp
host = 'math-scientist.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['SENDGRID_USERNAME'],
:password => ENV['SENDGRID_PASSWORD'],
:domain => 'heroku.com',
:enable_starttls_auto => true
}
config / initializers / devise.rb
config.mailer_sender = 'noreply@mathscientist.com'
config.reconfirmable = false
Модель пользователя:
class User < ApplicationRecord
devise :database_authenticatable, :registerable, :confirmable,
:recoverable, :rememberable, :validatable
end
Миграция базы данных:
class AddConfirmableToUsers < ActiveRecord::Migration[5.1]
def up
add_column :users, :confirmation_token, :string
add_column :users, :confirmed_at, :datetime
add_column :users, :confirmation_sent_at, :datetime
add_index :users, :confirmation_token, unique: true
User.update_all confirmed_at: DateTime.now
end
def down
remove_columns :users, :confirmation_token, :confirmed_at,
:confirmation_sent_at
end
end
Журналы Heroku:
Sent mail to mathscientistofficial@gmail.com (1210.8ms)
Date: Mon, 22 Apr 2019 15:51:18 +0000
From: noreply@mathscientist.com
Reply-To: noreply@mathscientist.com
To: mathscientistofficial@gmail.com
Subject: Confirmation instructions
<p>Welcome mathscientistofficial@gmail.com!</p>
<p>You can confirm your account email through the link below:</p>
<p><a href="http://math-scientist.herokuapp.com/users/confirmation?confirmation_token=sSbZLC3ytX8dEc2Xv1e2">Confirm my account</a></p>
Редактировать: я проверил свою панель мониторинга sendgrid на heroku, и она говорит, что она не получилазапросы по электронной почте.
Редактировать 2: Heroku установил для меня имя пользователя и пароль для сетки отправки, когда я добавил надстройку для сетки отправки.Но у меня нет ключа API для отправки сетки.Нужно ли отправлять письма с подтверждением разработки?