Amazon SES コンソールの新機能「Mail Manager SMTP のガイド付きセットアップ」を試してみた

Amazon SES コンソールの新機能「Mail Manager SMTP のガイド付きセットアップ」を試してみた

Amazon SES のコンソールに Mail Manager SMTP のガイド付きセットアップが追加されました。イングレスエンドポイント・トラフィックポリシー・ルールセット・IAM ロールが自動作成され、発行された認証情報で送信できます。Python の `smtplib` からの送信と、Gmail で受信したメールの認証結果まで確認しました。
2026.07.26

はじめに

2026年7月24日、Amazon SES のコンソールに Mail Manager SMTP のガイド付きセットアップが追加されました。ウィザードに従うだけで、SMTP 送信に必要なトラフィックポリシー・ルールセット・IAM ロール・イングレスエンドポイントが一式作成されます。このガイド付きセットアップは、SES が利用可能な全リージョンで提供されています。

https://aws.amazon.com/jp/about-aws/whats-new/2026/07/amazon-ses-simplified-smtp-mail-manager/

SES の SMTP 設定画面には、従来からある IAM SMTP 認証情報と、今回ガイド付きセットアップの対象になった Mail Manager SMTP が並んでいます。両者の主な違いは次のとおりです。

観点 Mail Manager SMTP IAM SMTP
認証情報の作成 独自に設定または自動生成した SMTP パスワード、または Secrets Manager のシークレットを指定 IAM ユーザーを作成し、そのアクセスキーから導出した SMTP 認証情報を使用
IAM ユーザー作成 不要(コンソールが IAM ロールを作成) 必要(iam:CreateUseriam:PutGroupPolicy などの IAM 権限が必要)
トラフィックポリシー・ルールセット セットアップで自動作成 Mail Manager のトラフィックポリシー・ルールセットは使用しない
認証情報の変更 イングレスエンドポイントの詳細画面でパスワードまたはシークレットを変更 ドキュメントでは、SMTP ユーザーを削除して作り直す手順が案内されている
認証情報を作成できるリージョン SES 提供の全リージョン 一部リージョンのみ

出典: Creating SMTP credentials using Mail Manager / Obtaining Amazon SES SMTP credentials

同ドキュメントでは、Mail Manager の使用を推奨すると記載されています。

セットアップからリソース確認、Python での送信、受信メールの認証結果確認までを順に見ていきます。検証環境は次のとおりです。なお本記事では、送信ドメインを例示用の example.com に置き換え、リソースIDとエンドポイントのホスト名は後半をマスクして掲載します。

項目
リージョン us-east-1
送信ドメイン example.com(SES で検証済み、DKIM/SPF/DMARC 設定済み)
送信先 Gmail
SES送信制限 サンドボックス解除済み

コンソールでのセットアップ

Mail Manager SMTP 側の「SMTP 認証情報の作成」からガイド付きセットアップを開始します。

SMTP 設定画面

ステップ1: 認証情報

イングレスエンドポイント名を入力し、認証タイプを選びます。今回は「パスワード」を選択し、パスワードはコンソールの「自動生成」で作成しました。

ステップ1: 認証情報

ステップ2: 詳細設定

トラフィックポリシーとルールセットは「新しく作成する」を選び、IAM ロールは「新しいロールの作成」で作成します。あわせて、イングレスエンドポイントのネットワークタイプ・IP アドレスタイプ・TLS ポリシーを指定します。

ステップ2: 詳細設定

今回のセットアップで適用された設定値は次のとおりです。ネットワークタイプ・TLS ポリシー・IP アドレスタイプの説明は、画面に表示される文言です。

設定項目 説明
ネットワークタイプ パブリック ドメインに送信されたメールは、パブリックネットワークを経由します
TLS ポリシー 必須 TLS 暗号化のメールのみを受け付ける
IP アドレスタイプ IPv4 IPv4 アドレスのみを許可
認証タイプ パスワード ステップ1で指定したパスワード認証を使用
トラフィックポリシーのデフォルトアクション ALLOW 条件に一致しないトラフィックも許可する

説明文が「ドメインに送信されたメール」と受信目線になっているのは、Mail Manager のイングレスエンドポイントがもともとメール受信の入口だからです。今回の用途では、SMTP クライアントからインターネット経由でこのエンドポイントに接続してメールを渡す構成になります。

ステップ3: レビュー

認証情報と詳細設定の内容を確認し、「認証情報を作成する」を実行します。

ステップ3: レビュー

セットアップ完了

ステータスがアクティブになると、SMTP クライアントに指定するエンドポイントのホスト名(ARecord)とユーザー名が表示されます。パスワードを含む .csv ファイルはこの画面からダウンロードします。画面下部には、ポート 587 で STARTTLS を使う SMTP クライアントの設定手順も案内されます。

完了画面

作成されたリソース確認(CLI)

ウィザードで何が作られたのかを、AWS CLI の Mail Manager API で確認します。

aws mailmanager list-ingress-points --region us-east-1
{
    "IngressPoints": [
        {
            "IngressPointName": "ingressendpoint-20260724-201901",
            "IngressPointId": "inp-4zdtzptathov...",
            "Status": "ACTIVE",
            "Type": "AUTH",
            "ARecord": "cdx6ee******.fips.****.mail-manager-smtp.amazonaws.com"
        }
    ]
}

StatusACTIVETypeAUTH で、SMTP クライアントから認証付きでメールを受け付けるイングレスエンドポイントとして作成されています。ARecord のホスト名が SMTP クライアントに設定する接続先です。

aws mailmanager list-rule-sets --region us-east-1
{
    "RuleSets": [
        {
            "RuleSetId": "rs-5e7xcrj7pw6v...",
            "RuleSetName": "rule-set-20260724-202926",
            "LastModificationDate": "2026-07-25T05:31:01+09:00"
        }
    ]
}
aws mailmanager list-traffic-policies --region us-east-1
{
    "TrafficPolicies": [
        {
            "TrafficPolicyName": "traffic-policy-20260724-202926",
            "TrafficPolicyId": "tp-6woxwxztljlg...",
            "DefaultAction": "ALLOW"
        }
    ]
}

自動作成された3リソースの名前と ID をまとめます。

リソース 名前 ID
イングレスエンドポイント ingressendpoint-20260724-201901 inp-4zdtzptathov...
ルールセット rule-set-20260724-202926 rs-5e7xcrj7pw6v...
トラフィックポリシー traffic-policy-20260724-202926 tp-6woxwxztljlg...

イングレスエンドポイントに加えてルールセットとトラフィックポリシーもウィザード完了時点で作成されており、個別に作成する操作は不要でした。同時に作成される IAM ロールは Mail Manager API の一覧対象ではないため、ここでは扱いません。

SMTP接続・送信テスト

ポート 587 で STARTTLS 暗号化後に認証・送信する、最小構成の Python スクリプトです。ホスト名・ユーザー名・パスワードは、完了画面でダウンロードした .csv の値に置き換えて実行します。

import smtplib
from email.mime.text import MIMEText

SMTP_HOST = "<SMTPエンドポイントのホスト名>"
SMTP_PORT = 587
SMTP_USER = "<SMTPユーザー名>"
SMTP_PASSWORD = "<SMTPパスワード>"
MAIL_FROM = "test@example.com"
MAIL_TO = "<Gmailアドレス>"

msg = MIMEText("SES Mail Manager SMTP からのテスト送信です。")
msg["Subject"] = "SES Mail Manager SMTP Test"
msg["From"] = MAIL_FROM
msg["To"] = MAIL_TO

server = smtplib.SMTP(SMTP_HOST, SMTP_PORT)
server.set_debuglevel(1)
server.ehlo()
server.starttls()
server.ehlo()
server.login(SMTP_USER, SMTP_PASSWORD)
server.sendmail(MAIL_FROM, [MAIL_TO], msg.as_string())
server.quit()

STARTTLS 前の EHLO では STARTTLSAUTH PLAIN LOGIN が提示され、AUTH PLAIN による認証が成功しました。

send: 'STARTTLS\r\n'
reply: b'220 Ready to start TLS\r\n'
...
reply: b'235 Authentication successful.\r\n'
SMTP 通信ログ(認証部分)
send: 'ehlo [<クライアントIP>]\r\n'
reply: b'250-****.mail-manager-smtp.amazonaws.com\r\n'
reply: b'250-8BITMIME\r\n'
reply: b'250-STARTTLS\r\n'
reply: b'250-AUTH PLAIN LOGIN\r\n'
reply: b'250 Ok\r\n'
reply: retcode (250); Msg: b'****.mail-manager-smtp.amazonaws.com\n8BITMIME\nSTARTTLS\nAUTH PLAIN LOGIN\nOk'
send: 'STARTTLS\r\n'
reply: b'220 Ready to start TLS\r\n'
reply: retcode (220); Msg: b'Ready to start TLS'
send: 'ehlo [<クライアントIP>]\r\n'
reply: b'250-****.mail-manager-smtp.amazonaws.com\r\n'
reply: b'250-8BITMIME\r\n'
reply: b'250-AUTH PLAIN LOGIN\r\n'
reply: b'250 Ok\r\n'
reply: retcode (250); Msg: b'****.mail-manager-smtp.amazonaws.com\n8BITMIME\nAUTH PLAIN LOGIN\nOk'
send: 'AUTH PLAIN <認証情報をマスク>\r\n'
reply: b'235 Authentication successful.\r\n'
reply: retcode (235); Msg: b'Authentication successful.'
send: 'quit\r\n'
reply: b'221 Bye\r\n'
reply: retcode (221); Msg: b'Bye'

STARTTLS 後の EHLO では STARTTLS が消え、AUTH PLAIN LOGIN のみが提示されました。メール送信も成功し、Gmail 側で受信を確認しました。

受信メールヘッダ確認

チェック 結果
DKIM (example.com) pass
DKIM (amazonses.com) pass
SPF pass
DMARC pass (p=REJECT sp=REJECT)

今回の検証では、送信元の逆引きは smtp-out.amazonses.com 配下のホストでした。Gmail の受信ヘッダでは、SES から Gmail への配送時の通信は TLS1_3(TLS_AES_128_GCM_SHA256)でした。

まとめ

Mail Manager SMTP のガイド付きセットアップにより、SMTP 送信に必要な設定をまとめて作成できるようになりました。

これから SMTP 送信を構成するなら、従来の IAM SMTP はなるべく採用を避ける事をおすすめします。IAM SMTP は SMTP 認証情報のために IAM ユーザーと期限のないアクセスキーを作る方式で、作成する側にも iam:CreateUseriam:PutGroupPolicy といった権限管理レベルの IAM 権限が必要です。パスワードを変更したいときは IAM ユーザーを削除して作り直す、という運用も残ります。公式ドキュメントでも Mail Manager の利用が推奨されています。

Mail Manager SMTP なら IAM ユーザーとアクセスキーは不要で、管理するのは SMTP パスワードまたは Secrets Manager のシークレットだけです。今回試したパスワード方式なら、変更はイングレスエンドポイントの詳細画面で完結します。すでに IAM SMTP で運用している環境も、Mail Manager SMTP に STARTTLS 接続できる場合は、この機会に見直すことをおすすめします。

SES の料金プランについては、下記記事をご覧ください。

https://dev.classmethod.jp/articles/ses-pricing-plans-price-list-api-sesv2-api/

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事