> ## Documentation Index
> Fetch the complete documentation index at: https://supastack.dev/llms.txt
> Use this file to discover all available pages before exploring further.
> For the full documentation corpus in one file, fetch: https://supastack.dev/llms-full.txt

# Amazon SES のメール設定

AWS SDK または IAM SMTP の認証情報でウェブ、モバイル、デスクトップの Amazon SES を設定し、送信者を確認して不要な Mail Manager 料金を避けます。

## 1. AWS リージョンで送信者を確認する

Amazon SES を US East (N. Virginia)、us-east-1 で開きます。Configuration → Identities → Create identity を選び、ドメインまたはメールアドレスの DNS またはメール確認を完了します。以下でも同じリージョンと確認済み送信者を使います。

新しい SES アカウントはサンドボックスから開始します。宛先も確認するか、SES メールボックスシミュレーターを使います。一般の顧客へ送る前に Account dashboard で本番アクセスを申請してください。[Amazon SES を開く](https://us-east-1.console.aws.amazon.com/ses/home?region=us-east-1)


## 2. SMTP では IAM SMTP credentials を選ぶ

SES の SMTP settings → Create SMTP credentials を開きます。Recommended の Mail Manager ではなく IAM SMTP credentials を選びます。IAM カードには Manual credential management. No traffic policies or rule sets. と表示されます。Create IAM credentials を押し、送信用ユーザーに名前を付け、ページを閉じる前に SMTP 認証情報をダウンロードします。

[IAM 認証情報を作成](https://us-east-1.console.aws.amazon.com/iam/home?SESRegion=us-east-1#/users/smtp/create) · [既存の認証情報を管理](https://us-east-1.console.aws.amazon.com/iam/home#/users)

リンク先は従来の IAM SMTP が使える us-east-1 です。別の対応リージョンでは、そのリージョン用の認証情報と SMTP エンドポイントを使います。ダウンロードした SMTP パスワードは AWS シークレットアクセスキーとは異なり、手順 5 でのみ使います。[AWS の SMTP 認証情報の説明](https://docs.aws.amazon.com/ses/latest/dg/smtp-credentials.html)


## 3. 不要な Mail Manager 料金を避ける

IAM SMTP と SES SDK は Mail Manager のトラフィックポリシーやルールセットなしで SES から直接送信します。任意のオープンまたは mTLS 受信エンドポイントは作成しないでください。AWS の従量料金では 1 エンドポイント月額 50 米ドルです。認証付きエンドポイントは現在無料なので、Recommended が必ず 50 米ドルを追加するわけではありません。通常の送信料金と選択したプランの料金は適用されます。[AWS の最新料金](https://aws.amazon.com/ses/pricing/)


## 4. AWS SDK で送信する

この方式は HTTPS で SES API を使います。IAM でバックエンドロールまたは送信用ユーザーに、確認済み SES ID に対する ses:SendEmail 権限を付けます。ユーザーの場合は Security credentials → Create access key を開き、アクセスキー ID と元のシークレットアクセスキーを保存します。SMTP パスワードで SDK リクエストは署名できません。

開発では apps/web/.env.local、本番ではホストのシークレット設定に例を保存し、送信者と仮の値を置き換えます。IAM ロールや設定済みのローカル AWS プロファイルを使う場合、両方のキーフィールドと AWS_SESSION_TOKEN は空にします。SDK が既定の認証情報チェーンを使います。明示するキーは必ずペアで指定します。

一時的な認証情報を明示する場合は、対応する AWS_SESSION_TOKEN も指定し、有効期限が切れたら 3 つの値を更新します。ロールの認証情報は SDK が更新します。[AWS SDK の認証情報チェーン](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-credentials-node.html)

```
EMAIL_PROVIDER=ses
EMAIL_FROM=Your App <hello@yourdomain.com>
AWS_REGION=us-east-1
AWS_ACCESS_KEY_ID=<IAM-access-key-id>
AWS_SECRET_ACCESS_KEY=<original-IAM-secret-access-key>
# Temporary explicit credentials only:
AWS_SESSION_TOKEN=
```


## 5. または従来の IAM SMTP を使う

代わりの設定として、手順 2 の SMTP ユーザー名と SMTP パスワードを使います。ポート 587 は STARTTLS、SMTP_SECURE=false はその接続方式を選びます。エンドポイント、認証情報、確認済み送信者のリージョンを一致させてください。

購入者向けキットのこの設定は 3 プラットフォーム共通です。メール方式は 1 つ選びます。EMAIL_PROVIDER=smtp は SMTP 認証情報、EMAIL_PROVIDER=ses は SDK API 認証情報を使います。

```
EMAIL_PROVIDER=smtp
EMAIL_FROM=Your App <hello@yourdomain.com>
SMTP_HOST=email-smtp.us-east-1.amazonaws.com
SMTP_PORT=587
SMTP_SECURE=false
SMTP_USER=<downloaded-SMTP-username>
SMTP_PASSWORD=<downloaded-SMTP-password>
```


## 6. ウェブ、モバイル、デスクトップ共通の設定を行う

変更後はバックエンドを再起動します。移行済みデータベースで /auth から許可された宛先にログインコードを 1 通要求し、受信箱と迷惑メールを確認します。モバイルは同じバックエンドを呼び、デスクトップはウェブアプリを表示します。どちらのクライアントにも AWS キーや SMTP パスワードは不要です。

認証情報はバックエンドだけに置き、NEXT_PUBLIC_、EXPO_PUBLIC_、デスクトップの配布物には入れません。失敗時は送信者確認、サンドボックスの宛先制限、リージョン、IAM 権限、認証情報の種類を確認します。queued は SES の受付を示すだけで、受信箱への到達を保証しません。[メール設定の概要](https://supastack.dev/ja/docs/web/setup-email.md)


設定を続けるには、[残りのプロバイダーキーを集める](https://supastack.dev/ja/docs/web/provider-keys.md)をご覧ください。


## 次へ

[残りのプロバイダーキーを集める](https://supastack.dev/ja/docs/web/provider-keys.md)
