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

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

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

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

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

2回答

810閲覧

rails + aws でのメール送信について

begenner

総合スコア79

Ruby

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

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

1クリップ

投稿2018/09/27 00:12

編集2018/09/27 04:21

現在railsで作成したアプリをawsでデプロイして動作確認をしていますが、メール送信ができません。
現状はサンプルアプリなので極力コストがかからないようにするため、Gmailからの送信として送られるようにしたいです(SESを使わない)。
ネットで調べてみましたが、参考になりそうなサイトが見つからず、うまくいきません(m_ m)
わかる方がいらっしゃれば教えていただきますようよろしくお願いいたします(m
_m)

###エラー内容

  • エラー500が表示される(メール送信の設定がおかしいためだと思われる)

###期待する動作

  • 自分のGmailから登録したユーザーにメールが送られるようにしたい

###動作環境
Ruby:2.3.5
Ruby on Rails: 4.2.5
MySQL: 5.7.18
devise(gem):4.4.0

  • AWS上で動かしてます
    -- Nginx
    -- Unicorn

###参考サイト
下記サイトを見つけたのでそれを参考にコードを変更しました

Ruby on Rails | ActionMailerでRailsからメールを送信する

AWS、Nginx、Unicorn、RailsでActionMailerを使用する
###試したこと
上記の参考サイトを元に config/environment/production.rbを変更しましたがうまくいきませんでした

###該当すると思われるソースコード
config/environment/production.rb

ruby

1Rails.application.configure do 2 config.action_mailer.default_url_options = { host: "AWSのEIP" } 3 config.action_mailer.delivery_method = :smtp 4 config.action_mailer.smtp_settings = { 5 address: 'smtp.gmail.com', 6 port: 587, 7 user_name: '自分のメールアドレス', 8 password: '自分のgmailのパスワード', 9 authentication: 'plain' 10 } 11end

###nginxのエラーログ追記(13:13)
nginx.logには下記のエラーが記載されていました

nginx

12018/09/25 21:46:34 [crit] 1686#0: *434 connect() to unix:/var/www/rails/app/tmp/sockets/.unicorn.sock failed (2: No such file or directory) while connecting to upstream, client: 113.158.203.126, server: "EIPアドレス", request: "GET / HTTP/1.1", upstream: "http://unix:/var/www/rails/app/tmp/sockets/.unicorn.sock:/", host: "EIPアドレス" 22018/09/26 23:29:23 [error] 6447#0: *728 open() "/usr/share/nginx/html/favicon.ico" failed (2: No such file or directory), client: 111.239.177.165, server: _, request: "GET /favicon.ico HTTP/1.1", host: "ドメイン", referrer: "ドメイン" 32018/09/27 00:05:40 [error] 7478#0: *815 connect() to unix:/var/www/rails/app/tmp/sockets/.unicorn.sock failed (111: Connection refused) while connecting to upstream, client: 111.239.177.165, server: "EIPアドレス", request: "GET / HTTP/1.1", upstream: "http://unix:/var/www/rails/app/tmp/sockets/.unicorn.sock:/", host: "EIPアドレス", referrer: "http://"EIPアドレス"/users/password"

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

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

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

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

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

h_daido

2018/09/27 03:38

500はgmailサーバー側がはいているんじゃなくて、おそらくrailsアプリケーションが履いているんですよね?エラーメッセージは何か表示されていませんか?
begenner

2018/09/27 03:52

awsにデプロイしたログを確認しようとapp/log/production.logを確認してみましたが、何も記載されていませんでした。ログが書き込まれる場所が違うのでしょうか?
CHERRY

2018/09/27 04:09

nginx のログには、何か出ていますか?
CHERRY

2018/09/27 04:21 編集

あれ? 「connect() to unix:/var/www/rails/app/tmp/sockets/.unicorn.sock failed (111: Connection refused)」 ということは、nginx から rails への接続に失敗していますが、rails の画面が全く出ないで、500 エラーになっているということですか?
begenner

2018/09/27 04:23

railで作成したアプリはメール送信の処理を必要としないところは問題なく表示されています(m_ _m)
guest

回答2

0

少し横道それますが...。

もしrailsアプリケーションを一般的なサービスとしてローンチする予定であれば、gmailをクライアントに使うのはおすすめできません。(勉強目的や個人的な軽いサービスなどであれば読み飛ばしてください)

sendgridなど専用サービスを使うことをおすすめします。SESよりも管理しやすいです。

というのも、
・未達管理やトラップ回避、レピュテーションを守るための作業など運用しなければいけないことがたくさんある
・gmailはたしかdailyでの送信数制限(smtpのリクエスト制限だったかも)がある。決して多くなかった。

ためです。

投稿2018/09/27 03:42

h_daido

総合スコア824

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

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

begenner

2018/09/27 04:20

サンプルアプリのメール送信のため500通/日を超えることはないと思いますが、 制限に関しては意識してやっていこうと思います。ありがとうございます。
guest

0

ベストアンサー

メール以外の rails の画面が表示されているということなので、nginx のエラーも直接は関係なさそうです。

gmail 関係だとすれば、下記のいずれかが原因のことが多いです。

(1) 安全性の低いアプリの許可が、無効になっている。

「有効」にする

参考URL
安全性の低いアプリからのアカウントへのアクセスを許可する - Gmail ヘルプ

(2) gmail で、二段階認証を使っている。

その場合、パスワードは、Webで、gmail にログインするパスワードではなく、アプリパスワードを設定する必要がありますが、rails に設定したパスワードは、アプリパスワードでしょうか?

参考URL
アプリ パスワードでログイン - Gmail ヘルプ

投稿2018/09/27 04:25

編集2018/09/27 04:26
CHERRY

総合スコア25171

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

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

begenner

2018/09/27 05:14

gmailでの二段階認証時に発行されるパスワードを使用することで問題が解決しました!! 原因は パスワードを gmailにログインするパスワード にしていたことが原因でした!! ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問