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

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

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

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

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

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

Q&A

解決済

1回答

930閲覧

DEVISEのメール送信設定がわかりません。

tomtomtomtom

総合スコア563

Devise

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

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

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

0グッド

0クリップ

投稿2020/07/25 11:31

##DEVISEのメール送信設定がわかりません。どなたかご存知の方がいらっしゃいましたら幸いです。

環境

ruby 2.5.1

rails 6.0.3.2
devise 4.7.2
mac catalina 10.15.5
https://localhost:9292/

deviseのforgot your passwordページからsend me reset passwordを押すと

ArgumentError in Devise::Passwords#create Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true

とerrメッセージが出ます。

そこで、sendgrid(英語)に登録して
config>environments>development.rb
に以下を追記

config.action_mailer.default_url_options = { host: ENV['SG_WEB_HOST'], protocol: ENV['SG_WEB_PROTOCOL']} config.action_mailer.raise_delivery_errors = true config.action_mailer.delivery_method = :https config.action_mailer.https_settings = { :address => ENV['SG_SMTP_ADDRESS'], :domain => ENV['SG_DOMAIN'], :port => ENV['SG_PORT'], :user_name => ENV['SG_USER_NAME'], :password => ENV['SENDGRID_API_KEY'], :authentication => 'login', :enable_starttls_auto => true

.zshrcに以下を追記
SENDGRID_API_KEYは非公開とさせていただきます。
SG_SMTP_ADDRESS,SG_DOMAIN
は何を書けばよいのかわかりません。

export SG_USER_NAME='apikkey' export SENDGRID_API_KEY='' export SG_WEB_HOST='api.sendgrid.com' export SG_WEB_PROTOCOL='HTTPS' export SG_SMTP_ADDRESS='' export SG_DOMAIN='' export SG_PORT='TCP 443'

6時間程あれこれと調べたり試したりしましたが、解決には至りませんでした。
どなたかご存知の方がいらっしゃいましたら、ご解答いただけると幸いです。
何卒よろしくお願いいたします。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

no1knows

2020/07/25 12:00

前提としてローカルサーバーからSendGridを利用したいということでしょうか?
tomtomtomtom

2020/07/25 12:10

ご質問ありがとうございます。 現状、ローカルでテスト中ですので、その環境からメールを可能にしたいです。 ですのでSendGridは必須では有りません。 これで回答になっているでしょうか? SendGridを利用しないとsmtpサーバーがないため、送信出来ないと思っていたのですが違うのでしょうか?^^;
guest

回答1

0

ベストアンサー

現状、ローカルでテスト中ですので、その環境からメールを可能にしたいです。

とのことですので、ひとまず、letter_opener、letter_opener_webでメールの送信を確認する形が望ましいかと思います。
参考:開発中にrailsから送信したメールを確認する

SendGridを利用しないとsmtpサーバーがないため、送信出来ないと思っていたのですが違うのでしょうか?

SendGrid以外でも例えばGmailなどでも送信が可能です。

投稿2020/07/25 13:22

no1knows

総合スコア3365

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tomtomtomtom

2020/07/25 14:22

ご解答いただきありがとうございます。 明日の朝から試してみたいと思います。 今しばらくお待ちくださいますようお願い申し上げます。
tomtomtomtom

2020/07/26 02:26

おはようございます。 ``` RuntimeError in Users::RegistrationsController#create Invalid delivery method :https ``` となってしまいます。調べて思ったことが、httpsにしていることが原因なのか?? ということです。 そこで config.action_mailer.default_url_options = {host:'localhost:9292',protocol:'https'} としてみましたが、やはりだめでした。 これ以上のことはわかりませんでした。別に質問をたてたほうがよろしいでしょうか?
tomtomtomtom

2020/07/26 03:57

config.action_mailer.default_url_options = {host:'localhost:9292',protocol:'smtp'}にしたところ エラーがでなくなりました。 後ほどletter_opener_webで確認してみます。
tomtomtomtom

2020/07/28 10:55

返信が遅くなり申し訳ありません。 letter_opener_webを使いメールの送信を確認することが出来ました。 誠にありがとうございました。 あとはせっかく登録したので local環境でSendGridを利用してメールを送信してみます。 本当にありがとうございました!
no1knows

2020/07/28 11:22

それは良かったです!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問