Cloud9でRailsアプリケーションを開発していますが、私はDevise確認メールを受け取るのにとても簡単な操作をしようとしています。何らかの理由で、彼らは送られていません。Devise確認メールが送信されていない
私は電子メール機能にSendGridを使用しています。私はSendGridが正しく動作していることを知っています。なぜなら、テストメールを送信する簡単なActionMailerを作ることができるからです。しかし何らかの理由で、Deviseの確認メールが送信されていません。私はそれがActionMailer::Base.mail
メソッドで呼び出しを行っているのを見ることができますが、メールは配信されません。
これをデバッグする方法はわかりません。ただ、すでに取り組んでいるものをチェックするための提案を防ぐために
:
- ユーザーオプションが
:confirmable
- が含ま私は
config.action_mailer.perform_deliveries = true
- を設定しています私は
config/initializers/setup_mail.rb
に次の行を持っていますコード:
if Rails.env.development? || Rails.env.production?
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
address: 'smtp.sendgrid.net',
port: '2525',
authentication: :plain,
user_name: ENV['SENDGRID_USERNAME'],
password: ENV['SENDGRID_PASSWORD'],
domain: "sendgrid.com",
enable_starttls_auto: true
}
何が起こっていたのかデバッグしようとして、私はレールコンソール内から 'mail'を呼び出そうとしました。私が見つけたのは、 'ActionMailer :: Base.mail'を直接呼び出してもメールが届かないということでしたが、' ActionMailer'のサブクラスを通して間接的に呼び出すと動作します。なぜ、世界では基本クラスが動作しないのでしょうか? –
なぜ動作するのですか? ActionMailer :: Baseはサブクラス化されています。 – max
しかし、サブクラスは、多くの機能を追加していないよう: 'クラスApplicationMailerから