質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.69%
Devise

Deviseとは、Ruby-on-Railsの認証機能を追加するプラグインです。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Gmail

GmailとはGoogleによって提供されているウェブメールのサービスのことです。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Q&A

解決済

2回答

1007閲覧

Herokuでdeviseのメール認証ができない(Missing host to link to)

komattaan

総合スコア20

Devise

Deviseとは、Ruby-on-Railsの認証機能を追加するプラグインです。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Gmail

GmailとはGoogleによって提供されているウェブメールのサービスのことです。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

0グッド

0クリップ

投稿2022/06/05 12:38

前提

自作のSNSを作成しています。
完成したのでHerokuを利用してデプロイしたのですが、deviseのメール認証機能でメール送信ができません。
開発環境下ではメールを送ることができています。
メールが届かなかったため、もう一度新規登録をしようとすると「Eメールはすでに存在します
」とエラーになります。

実現したいこと

メール認証機能が正常に動くようにしたい。

発生している問題・エラーメッセージ

コマンドプロンプトからheroku logs -tでエラー内容を確認すると以下のように表示されていました。

ActionView::Template::Error (Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true)

試したこと

environments/development.rbのdefault urlの設定をlocalhost:3000から自分のサイトの名前に変更しました。

environments/development.rb

1 #default url 2 config.action_mailer.default_url_options = { :host => 'MYAPPNAME.herokuapp.com' } 3 #mail setting 4 config.action_mailer.raise_delivery_errors = true 5 config.action_mailer.delivery_method = :smtp 6 config.action_mailer.smtp_settings = { 7 :address => "smtp.gmail.com", 8 :port => 587, 9 :user_name => "GMAIL ADDRESS", 10 :password => "PASSWORD", 11 :authentication => :plain, 12 :enable_starttls_auto => true 13 }

ホストを変更する以外にしなければならないことがあるのでしょうか。
よければご回答よろしくお願いします。

参考にしたサイト

Rails Missing host to link to! のエラーが出た時

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。

回答2

0

自己解決

SendGridというアドオンを追加する必要がありそうでした。
導入してみて、メール送信ができるようになるか試してみようと思います。

投稿2022/06/07 02:59

komattaan

総合スコア20

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。

0

environments/development.rbのdefault urlの設定をlocalhost:3000から自分のサイトの名前に変更しました。

production.rb の設定はどうなっていますか?

どのように デプロイしたのかわかりませんが、Rails アプリケーションを Puma Web サーバーでデプロイする には

Heroku で ENV['RACK_ENV']​ がデフォルトで 'production'​ に設定されます。

とありますので、Rails が、production で動作しているのではないでしょうか。

投稿2022/06/05 23:21

CHERRY

総合スコア25061

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。

回答へのコメント

komattaan

2022/06/07 02:59

お返事ありがとうございます。 色々調べていたところ、herokuのみではメールを送ることができず、SendGridというアドオンを追加する必要がありそうでした。 こちらのアドオンを追加してみて送信できるか試してみようと思います。 せっかくご回答いただいたのにすみません!!

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.69%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

同じタグがついた質問を見る

Devise

Deviseとは、Ruby-on-Railsの認証機能を追加するプラグインです。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Gmail

GmailとはGoogleによって提供されているウェブメールのサービスのことです。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。