更新: 私は実際にherokuのウェブサイトから私のアプリケーションにアクセスしてメールを送ってきましたが、私のプロダクションサーバcloud9 ide。それは普通ですか?チュートリアルではそれが私にそれを望んでいるのですか?Hartl Ruby on Railsチュートリアル - SendGridは生産現場でメールを送信しません
Michael HartlのRuby on Railsチュートリアルの第11章では、配備モードでサンプルアプリケーションに登録し、管理する電子メールでアカウントのアクティベーションメールを確認するよう求められます。私は電子メールを受信せず、herokuのsendgridアドオンは電子メール要求が送信されていないことを報告します。しかし、クラウド9 ide pumaサーバーコンソールでは、電子メールが正しい形式で正しいアドレスに送信されたことが報告され、コンソールからアクティベーショントークンと電子メールアドレスを取得できます。私は何が間違っているのか分かりません。うまくいけば、すべての関連するコードが以下に含まれています。助けてください。
実際にサンプルアプリのウェブサイトにアクセスして申し込みをクリックし、メールを待っていました。これは、Hartlが「プロダクションの新しいアカウントにサインアップする」という意味ではありませんか?
のconfig/environment.rbに:
# Load the Rails application.
require_relative 'application'
# Initialize the Rails application.
Rails.application.initialize!
#Sendgrid configurations from their website
ActionMailer::Base.smtp_settings = {
:user_name =>ENV['SENDGRID_USERNAME'],
:password =>ENV['SENDGRID_PASSWORD'],
:domain => 'heroku.com',
:address => 'smtp.sendgrid.net',
:port => 587,
:authentication => :plain,
:enable_starttls_auto => true
}
メーラー/ application_mailer:
class ApplicationMailer < ActionMailer::Base
default from: '[email protected]'
layout 'mailer'
end
環境/ production.rb:
config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :smtp
host = 'gentle-lake-88943.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
}
users_controller.rb:
def create
@user = User.new(user_params)
if @user.save
@user.send_activation_email
flash[:info] = "Please check your email to activate your account"
redirect_to root_url
else
render 'new'
end
end
user.rb:
def activate
update_columns(activated: true, activated_at: Time.zone.now)
end
def send_activation_email
UserMailer.account_activation(self).deliver_now
end
routes.rbを:私はちょうどこのチュートリアルの問題を解決し
resources :account_activations, only: [:edit]
あなたがアクティブ[Sendgrid](https://sendgrid.com/)のアカウントを持っているのですか? –
私はそうです。これは私が展開のためのチュートリアルと一緒に使用している英雄アプリへの "アドオン"です。ダッシュボードにアクセスすると、電子メールのリクエストは0件と表示されます。 –
コンソール(または別の方法)から 'SENDGRID_USERNAME'と 'SENDGRID_PASSWORD'を 'Heroku'に入れましたか? –