次のサイトを参考に、問い合わせフォームを作成しました。
― Ruby on Rails 4 でお問い合わせフォーム(確認画面つき)を作成する
参考ページ通りに作成し、フォームの挙動は確認できたのですが、実際にメールが送られてきません。
管理者のアドレスはどこにどうやって書くのでしょうか
上記参考ページ通りに書くと、以下のようにして自分(管理者)のアドレスを設定すれば良さそうなのですが、、、
app/mailers/inquiry_mailer.rb
class InquiryMailer < ApplicationMailer default from: "example@example.com" default to: "---------@gmail.com" #自分(管理者)のアドレス def received_email(inquiry) @inquiry = inquiry mail(:subject => 'お問い合わせを承りました') end end
これだけでは一切送られてきません。
何が足りないのでしょうか。
config/environments/development.rb に何か追記するのでしょうか?
あと、上記コード内の
default from: "example@example.com"
の部分はこのままでいいのでしょうか?
初心者です。よろしくお願いいたします。
以下、追記。
InquiryMailerの使用箇所。
inquiry_controller.rb
class InquiryController < ApplicationController def thanks @inquiry = Inquiry.new(inquiry_params) InquiryMailer.received_email(@inquiry).deliver render :action => 'thanks' end
InquiryMailerの使用箇所のコードも追記していただけないでしょうか?
t_tonchimさん、追記・修正依頼ありがとうございます。「InquiryMailerの使用箇所のコード」とはコントローラーの記述のことですか? 初心者でして、すみません。
今回の場合はそうですね。リンク先の記事ではコントローラーで使用しているのでその部分のコードを載せていただきたいです。
他にも追記が必要でしたら言ってください。よろしくお願いいたします。
んー問題なさそうですね。rails console で InquiryMailer.received_email(Inquiry.new).deliver と入力するとどうなるでしょうか?エラーが発生した場合はその内容を追記していただけると助かります。
consoleって正直あんまり使ったことがないのですが、入れてみました。 日付とかの情報とともに<From: example@example.com>, <To:自分のアドレス>,あと、<Subject: お問い合わせを承りました>とかが出て、エラーの文字は見当たりません。
となると送信は成功しているようですね。メール届いてないですか?もしくはメールアドレスを間違えて入力してないでしょうか?
うんともすんとも言いません。ちなみに from: "example@example.com" の部分はこのままで問題ないのでしょうか。あと、config/environments/development.rb に何か追記する必要はないでしょうか。繰り返しすみません。
consoleで動作しているなら動いてるはずですが・・メールアドレスは見直して見ましたか? fromはそのままでも動作します。config/environments/development.rb にも特に追記は不要のはずですね。
アドレスは合ってました。ちなみにGmailですが、Yahooメールに変えてみてもダメでした。
なんと、そうですか。うーん・・すみません、手元で再現できないのでこれ以上はお力になれそうにないです・・。
十分助けていただきました。consoleで動作確認できただけでも前進できたので、たいへん助かりました。ありがとうございました!
あなたの回答
tips
プレビュー