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

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

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

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Ruby on Rails

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

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

Amazon Route 53

Amazon Route 53 はAmazonが提供する、 可用性と拡張性に優れた ドメインネームシステム(DNS)サービスです。

Q&A

0回答

581閲覧

WEBアプリ(Docker)からメールを送信できない

donut4

総合スコア170

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Ruby on Rails

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

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

Amazon Route 53

Amazon Route 53 はAmazonが提供する、 可用性と拡張性に優れた ドメインネームシステム(DNS)サービスです。

0グッド

0クリップ

投稿2023/03/15 17:42

編集2023/03/23 04:01

事象・問題

WEBアプリ(Docker)からAmazon SESでメールを飛ばす構築をしていますが、うまくメールを送信できないのでご教授の程お願いいたします。

・Route53で取得したドメインを使ってAmazon SESの検証済みIDを作りました。
公式サイトを見て、コンテナ内の設定ファイル(/etc/gitlab/gitlab.rb)に、 SMTP 認証情報 や ドメインを記述しました。
・EC2のセキュリティグループのイン(アウト)バウンド、ネットワークACLなど必要だと思う設定は行いました。
思い当たる上記の設定を致しましたがそれでも送信できません。

インフラ、サーバー運用にお詳しい方、ご教授のほどお願いいたします。

※必要だと思う情報は載せてるつもりですが知りたい設定情報などがございましたら仰ってください。

docker-compose.yml

インターネットへの公開はできています。

version: '3.6' services: web: image: 'gitlab/gitlab-ce:latest'![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-03-16/18f3ba8a-aac6-4728-a6bc-b597d2ff86da.jpeg) restart: always hostname: 'XXXX-dev-1.com' #Route53で取得したドメイン environment: GITLAB_OMNIBUS_CONFIG: | external_url 'http://XXXX-dev-1.com:8082' gitlab_rails['gitlab_shell_ssh_port'] = 2224 nginx['listen_port'] = 80 ports: - '8082:80' - '2224:2224' volumes: - '$GITLAB_HOME/config:/etc/gitlab' - '$GITLAB_HOME/logs:/var/log/gitlab' - '$GITLAB_HOME/data:/var/opt/gitlab' shm_size: '256m'

/etc/gitlab/gitlab.rb

公式のメール設定の欄(AWS SESのポート587の方)を参考に編集しました。
( 更新:2023/03/16 22:06)
イメージ説明

EC2・SES・Route53側の設定など

観点としてアウトバウンドルールに587ポートを許可しています。
・セキュリティグループ:インバウンドルール
イメージ説明
・セキュリティグループ:アウトバウンドルール
イメージ説明
・ネットワーク ACL :インバウンドルール
イメージ説明
・ネットワーク ACL :アウトバウンドルール
イメージ説明
・SES:SMTPの設定
イメージ説明
・SES:設定: 検証済み ID画面
イメージ説明
・SES:XXXX-dev-1.com画面
イメージ説明
・Route53:ドメインのレコードなどの設定(赤い塗りつぶしはXXXX-dev-1.com)
イメージ説明

試したこと・前提

・ドメインの逆引きは成功しています。
・EC2にアタッチしているIAM ロールは「AmazonSESFullAccess」です。
・SES上のテスト送信によるバウンスメールは届きますが、WEBアプリ上からのメール(GitLabのサインアップ確認メール等)ば送信されず、その時に送信される(?)バウンスメールも届かない状況です

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

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

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

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

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

mike2mike4

2023/03/16 00:19

気になった点を SG:インバウンド ポート25は使いません   アウトバウンド ポート587は他であけているのでわざわざ空ける必要はありません。 ACLは587指定する必要ありません。 TLSをtrueにしてください
tabuu

2023/03/16 01:14

>公式のメール設定の欄(AWS SESのポート587の方)を参考に編集しました。 SESを登録したリージョンはどこでしょうか?リージョンによって設定が若干変わります。
donut4

2023/03/16 05:03

@mike2mike4さん ありがとうございます。現在は時間に余裕がないためまた後程結果をご連携いたします。 @tabuuさん 登録したリージョンというのは、 SESのSMTP設定画面のSMTP エンドポイントのことでしょうか?(画像を追記しました。) gitlab_rails['smtp_address'] には、この値を設定しないといけないのでしょうか?
tabuu

2023/03/16 05:42

>gitlab_rails['smtp_address'] には、この値を設定しないといけないのでしょうか? Dockerは使っていませんがEC2からダイレクトに送信する場合はAWSの管理画面の通りに設定する必要がありました。 リージョンによってポートも異なっていたと思いますので見直してみてください。
donut4

2023/03/16 12:45

@mike2mike4さん ポート587の設定は不要なんですね。 SGも修正しました。 @tabuuさん そうだったんですね。 gitlab_rails['smtp_address'] を "email-smtp.ap-northeast-1.amazonaws.com" に修正しました。
mike2mike4

2023/03/16 12:55

私が以前書いた技術ブログを参考にしようとしたら、会社が倒産してて無くなってましたw gitlabは使ったことないですが、 gitlab_rails['smtp_tls'] = true こちらも入れるべきかと。(現在コメントアウトしてfalseにしてますよね)
donut4

2023/03/16 12:57

mike2mike4さん、tabuuさんの指摘を取り込みました。 ですが、依然として送信ができていません。 Route53:ドメインのレコードの画像を追加いたしました。
donut4

2023/03/16 13:17

mike2mike4さん gitlab_rails['smtp_tls'] になっていますね。 ありがとうございます。falseに修正しました!
donut4

2023/03/16 13:32

mike2mike4さん すみません、書き間違えました! trueにしています!
donut4

2023/03/16 14:37

mike2mike4さん ありがとうございます!そのサイトは過去に参考にしています。 そちらのサイト内に「SESポリシーをアタッチ」する必要があると記載があり、 既にEC2には「AmazonSESFullAccess」をアッタチしています。 アタッチされているものは正しいでしょうか?
mike2mike4

2023/03/16 15:07

はい、OKです。 私の記憶だと、テストメールに不備があった場合何度か送るとバウンスメールがS3に格納されるはずです。確認してください。有った場合、メールを対象アドレスに送信できませんのでクリアする必要があります(コンパネでできます。私がやったときはバグっててクリアできなかったのでCLIでやりました)
donut4

2023/03/16 15:19

mike2mike4さん 「4.SESバウンス動作確認」の通りに入力して送信ボタンを押したら 「正常に送信されました テスト E メール bounce@simulator.amazonses.com」と緑のメッセージが表示されるのですがどのアドレスにも届いていないように見えます。送信先はAWSアカウントを登録時のメアドでしょうか? S3はバケットを一つも作っていないのですがS3の事前設定は必須でしょうか?
donut4

2023/03/16 15:39

mike2mike4さん ありがとうございます。確認してみます! それと、https://qiita.com/y-okuhira/items/e0a393dc3b6cec653c76 のサイトの 「次に、DMARC情報を手動でRoute53に登録します。」で、値の<メールアドレス>を設定しますが、 メアドに指定はありますか?普段使っている適当なgmailメアドを設定しているのですが、大丈夫でしょうか? 現在のレコードの情報 レコード名:_dmarc.XXXX-dev-1.com タイプ:TXT 値:"v=DMARC1; p=none; rua=mailto:tekitou@gmail.com"
mike2mike4

2023/03/16 16:01

なるほど、思い出しました。S3指定していたのはドメイン指定していたためか>自分 だとすると、管理者として登録したメールアドレスにバウンスメールが来るはずですが、ドメインで検証したって書いてますよね? ドメインで作ったメールアドレスに確認メールが来るはずですがどうなってますでしょうか? SNSへ通知するようにすればS3作らなくて良いですよ。
donut4

2023/03/16 16:24

mike2mike4さん バウンスメールが届いていない理由わかりました。 AWS SNSでトピック内の「サブスクリプションの作成」した後、AWSアカウント登録したメアドに確認メールが届く承認メールのリンクをクリックしていなかった為でした。 サブスクリプションのステータスが確認済みになった後、 SESのバウンスメールのテストをしてみたら想定通りAWSアカウント登録したメアドに届きました。
mike2mike4

2023/03/16 16:51

バウンスメールに理由が書いていると思うので対処してください。
donut4

2023/03/16 18:32

mike2mike4さん >>ドメインで検証したって書いてますよね? そうですね。Amazon SES > 設定: 検証済み ID 画面で作成したIDは、Route53で登録したドメイン(XXXX-dev-1.com)の値と同じです。 また、Amazon SES > 設定: 検証済み ID > yone-dev-1.com > テスト E メールの送信 画面で バウンスメールの受信はできましたが、肝心のGitLabからメールが送れません。 他にすることはございますか?
donut4

2023/03/17 05:36

mike2mike4さん すみません。言い方が間違っていました。 SES上でバウンスメールのテスト送信ではちゃんと送られてきます。 ですが、WEBアプリ上からのメール(GitLabのサインアップ確認メール等)ば送信されず、その時に送信される(?)バウンスメールも届かない状況です。 SES上のテスト送信によるバウンスメールは届きますが、WEBアプリからの送信失敗によるバウンスメールは届いていないといった状況です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問