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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby on Rails 6

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

Q&A

解決済

1回答

4142閲覧

Action Mailerでメールを送信できない

sabasashi

総合スコア2

Ruby on Rails 6

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

0グッド

0クリップ

投稿2021/07/08 03:51

編集2021/07/08 04:30

Rails6でこちらを参考にして問い合わせ機能を実装しています。

ローカル環境で実行しているのですが、メールが送信できません(送り先にメールが届かない)。ログを見てもエラーらしいエラーが発生していないため、どこを修正すれば良いか分かりません。

ご教授いただければ幸いです。

app/controllers/inquiry_controller.rb

Ruby

1class InquiryController < ApplicationController 2 def index 3 @inquiry = Inquiry.new 4 render :action => 'index' 5 end 6 7 def confirm 8 # 入力値のチェック 9 @inquiry = Inquiry.new(params[:inquiry].permit(:name, :email, :message)) 10 if @inquiry.valid? 11 # OK。確認画面を表示 12 render :action => 'confirm' 13 else 14 # NG。入力画面を再表示 15 render :action => 'index' 16 end 17 end 18 19 def thanks 20 # メール送信 21 @inquiry = Inquiry.new(params[:inquiry].permit(:name, :email, :message)) 22 InquiryMailer.received_email(@inquiry).deliver 23 24 # 完了画面を表示 25 render :action => 'thanks' 26 end 27end 28

config/environments/development.rb

Ruby

1# Don't care if the mailer can't send. 2 config.action_mailer.raise_delivery_errors = true 3 config.action_mailer.delivery_method = :smtp 4 config.action_mailer.smtp_settings = { 5 address: 'smtp.gmail.com', 6 port: 587, 7 domain: 'gmail.com', 8 user_name: 'xxxxx@gmail.com', #gmailのアカウント 9 password: 'xxxxxx', #アプリパスワード 10 authentication: 'plain', 11 enable_starttls_auto: true 12 } 13 config.action_mailer.perform_caching = false

app/mailers/inquiry_mailer.rb

Ruby

1class InquiryMailer < ApplicationMailer 2 3 default from: "xxxxxx@gmail.com" # 送信元アドレス 4 5 def received_email(inquiry) 6 @inquiry = inquiry 7 #mail(:to => inquiry.email, :subject => 'お問い合わせを承りました') 8 # 自分のGmailアドレス宛に送付 9 mail(:to => 'xxxxx@gmail.com', :subject => 'お問い合わせを承りました') 10 end 11end

ログを見ても特にエラーが発生していません。

Started POST "/inquiry/thanks" for 127.0.0.1 at 2021-07-08 10:00:10 +0700 Processing by InquiryController#thanks as HTML Parameters: {"authenticity_token"=>"[FILTERED]", "inquiry"=>{"name"=>"test", "email"=>"yyyyyyy@gmail.com", "message"=>"test"}, "commit"=>"送信"} =============================== Rendering layout layouts/mailer.text.erb Rendering inquiry_mailer/received_email.text.erb within layouts/mailer Rendered inquiry_mailer/received_email.text.erb within layouts/mailer (Duration: 0.1ms | Allocations: 35) Rendered layout layouts/mailer.text.erb (Duration: 0.4ms | Allocations: 129) InquiryMailer#received_email: processed outbound mail in 2.2ms Delivered mail 60e66a3ab32ff_2a2c1589a37636c359b3@LAPTOP-L2KQGLJS.mail (4068.0ms) Date: Thu, 08 Jul 2021 10:00:10 +0700 From: xxxxx@gmail.com To: xxxxxx@gmail.com Message-ID: <60e66a3ab32ff_2a2c1589a37636c359b3@LAPTOP-L2KQGLJS.mail> Subject: =?UTF-8?Q?=E3=81=8A=E5=95=8F=E3=81=84=E5=90=88=E3=82=8F=E3=81=9B=E3=82=92=E6=89=BF=E3=82=8A=E3=81=BE=E3=81=97=E3=81=9F?= Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 V2Vi44K144Kk44OI44GL44KJ44GK5ZWP44GE5ZCI44KP44Gb44GM44GC44KK 44G+44GX44Gf44CCDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpO YW1lOiB0ZXN0DQpFbWFpbDogc2FiYXNhc2hpQGdtYWlsLmNvbQ0KTWVzc2Fn ZToNCnRlc3QNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCg== =============================== Rendering layout layouts/application.html.erb Rendering inquiry/thanks.html.erb within layouts/application Rendered inquiry/thanks.html.erb within layouts/application (Duration: 0.3ms | Allocations: 35) [Webpacker] Everything's up-to-date. Nothing to do Rendered layout layouts/application.html.erb (Duration: 75.6ms | Allocat

追記
以下のコマンドをコンソールから実行するとメールを受信できました。
ActionMailer::Base.mail(from: "sample@sample.com", to: "xxx@gmail.com", subject: "Title", body: "contetns").deliver_now

gmailの認証は通っているようです。しかし、お問い合わせ画面から送信するとやはりメールが届きません。

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

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

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

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

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

guest

回答1

0

自己解決

凡ミスでした。サーバーを再起動したら正しく動作しまた。

投稿2021/07/09 03:24

sabasashi

総合スコア2

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問