1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS SES (Amazon Simple Email Service) を用いて外部で取得した独自ドメインでのメール送受信をやってみる

1
Last updated at Posted at 2025-12-16

はじめに

AWSでメール機能を実装する際におなじみの Amazon Simple Email Service (Amazon SES)。 今回は、外部のドメイン取得サービス(MuuMuu Domain)で取得した独自ドメインを使って、AWS上でメールの「送信」と「受信」の両方を行う手順をまとめました。

特に受信に関しては、既存のメール環境を壊さないように「受信用サブドメイン」を切ってS3で受け取る構成にします。

前提条件

  • AWSアカウントを持っていること
  • (今回は)ムームードメインのレジストラでドメインを取得済みであること(例: muzzumuzu.com)
  • SESの受信機能が対応している 大阪リージョン (ap-northeast-3) を使用します。

1. SESでドメインの身元確認 (ID作成)

まず、AWS SESに対し「このドメインの持ち主は私です」という証明(ID作成)を行います。
AWSマネジメントコンソールで Amazon SES のページを開きます。
左メニューの [設定] > [ID] を選択します。
[ID の作成] をクリックします。

以下の設定で作成します。

ID タイプ: ドメイン
ドメイン: 取得したドメイン名(例: muzzumuzu.com)
カスタム MAIL FROM ドメイン: (今回は設定なし)
ドメインの検証: Easy DKIM
DKIM 署名キーの長さ: RSA_2048_BIT

image.png

その他はデフォルトのまま [ID の作成] をクリック。

2. DNSレコードの設定(ムームードメイン側での設定)

IDを作成すると、[認証]から、認証に必要な CNAMEレコード が3つ発行されます(画像下部のCNAMEの部分に表示されます)。

image.png

これをドメイン管理画面に登録します。SESの画面に表示されている「DNSレコード」の 名前 と 値 を控えます。ムームードメインのコントロールパネルへ移動し、[ムームーDNS] > [設定2] を開きます。以下のようにレコードを追加します。

ムームーDNS設定 (CNAMEレコード)
サブドメイン 種別 内容
xxxxx._domainkey CNAME xxxxx.dkim.amazonses.com
xxxxx._domainkey CNAME xxxxx.dkim.amazonses.com
xxxxx._domainkey CNAME xxxxx.dkim.amazonses.com

注意点: ムームードメインでは、サブドメイン欄にドメイン名自体を含める必要はないようです。
SES側での表示が

abcde._domainkey.muzzumuzu.com

となっていた場合、ムームードメイン側では

abcde._domainkey

とします。
設定後、数分~数十分待つと、SESコンソールのIDステータスが 「検証済み (Verified)」 に変わります。これで送信の準備は完了です。

3. メール送信を試してみる (サンドボックス制限)

AWS SESはアカウント作成直後、不正利用防止のための 「サンドボックス (Sandbox)」 環境下にあります。この状態では、以下の制限があります。

  • 送信元: 検証済みのドメイン/アドレスのみ可
  • 送信先: 検証済みのメールアドレスのみ可 (ここが重要!)

そのため、テストメールを自分のGmail等に送るには、まずその宛先アドレスもSESに登録する必要があります

宛先アドレスの検証*

  • [ID の作成] > [Eメールアドレス] を選択。
  • 自分の普段使いのアドレス(Gmailなど)を入力して作成(下記はテキトウなGmailのアドレスです)。
  • 届いた確認メールのリンクをクリックして検証を完了させます。

image.png

テスト送信の実行
送信元にしたいIDを選択し、SESコンソールの右上にある [テスト E メールの送信] をクリックします。

  • 送信元: 好きなユーザー名(例: test@muzzumuzu.com
  • シナリオ: カスタム
  • カスタム受信者: 先ほど検証した自分のGmailアドレス
  • 件名・本文: 適当に入力して [送信]

受信ボックスにメールが届けば、送信機能の実装は成功です。
注意点: 本番運用の際は、AWSサポートへ申請してサンドボックス制限を解除することで、誰にでも送れるようになります。

4. メール受信を試してみる (S3への保存)

次に、このドメイン宛のメールを受信して、S3バケットに保存する設定を行います。
今回は、メインのドメイン環境(Webサーバ等)に影響を与えないよう、受信専用のサブドメイン mail.muzzumuzu.com を作成して運用します。

MXレコードの設定

ムームードメイン側でメールの配送先をAWSに向ける設定を行います。
ムームードメイン側での設定は 2. DNSレコードの設定を参照してください。mxレコードを以下の情報をもとに追加します。10は優先度です。

mail	MX	inbound-smtp.ap-northeast-3.amazonaws.com	10

これにより、receiver@mail.muzzumuzu.com のようなアドレス宛のメールがAWSに届くようになります。

受信ルールの作成

「誰宛のメールをS3に保存するか」というルールを作ります。

  1. SESコンソールの [Eメール受信] を開く。
  2. [ルールセットを作成] (例:default-rule-set)。
  3. ルールを作成し、以下を設定します。
    • 条件 (受信者): receiver@mail.muzzumuzu.com
    • アクション: S3 を選択すると、バケット名を聞かれますので、適当に新しいバケットを作成すればOKです。

(余談)IAMロールのARNを指定しなくてもよいです。上記で作ったバケットは、SESからの書き込みを許可するバケットポリシーが適用されています。以下、SESの受信ルール作成時に作ったバケットポリシーです。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowSESPuts-**************",
            "Effect": "Allow",
            "Principal": {
                "Service": "ses.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::上記のバケット名/*",
            "Condition": {
                "StringEquals": {
                    "AWS:SourceAccount": "************"
                },
                "StringLike": {
                    "AWS:SourceArn": "arn:aws:ses:*"
                }
            }
        }
    ]
}

最後に、作ったEメール受信ルールに対して、必ず「有効として設定」を押しておくこと(ステータスを有効にすること)。

受信テスト

自分のGmailなどから receiver@mail.muzzumuzu.com 宛にメールを送ります。 数分後、指定したS3バケットにファイルが生成されていれば成功です!

まとめ

これで、独自ドメインを使ってAWS SESで「送信」も「受信(S3保存)」もできるようになりました。 あとはLambda等をトリガーにしてS3のメールを解析すれば、お問い合わせフォームの自動処理や、メールシステムへの組み込みが可能になります。次は他のメール処理系SaaS(例:blastengine)で試してみたいと思います。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?