📧

TeamsチャネルのメールアドレスにAmazon SESからのメール投稿が反映されない時に確認すること

2023/11/29に公開

Teams側

「誰でもこのメールアドレスに電子メールを送信できます」を設定しているか

メールアドレスを取得
Microsoft Teams でチャネルにメールを送信できるユーザーを管理する - Microsoft サポート

Amazon SES側

「カスタムMAIL FROMドメイン」を設定しているか

カスタムMAIL FROMドメイン

おまけ(Node.js 20.xでLambdaからメール配信する設定)

SES

前提:Route53で管理されているドメインのメールアドレス

IDの作成

  • 検証済みID => IDの作成
    • IDタイプ:ドメイン

IDの検証

  • IDを作成するとステータスが「検証保留中」になり、自動で「検証済み」になりました
    • Route53にCNAMEが勝手に登録されてました

アカウント用に本番アクセスをリクエスト

Lambda

ソース

import { SESClient, SendEmailCommand } from "@aws-sdk/client-ses";
const ses = new SESClient({ region: "ap-northeast-1" });

export const handler = async (event) => {
  const command = new SendEmailCommand({
    Destination: {
      ToAddresses: ['to@hoge.com'],
    },
    Message: {
      Body: {
        Text: { Data: 'body' },
      },
      Subject: { Data: 'subject' },
    },
    Source: 'from@sub.hoge.com',
  });

  try {
    let response = await ses.send(command);
    return response;
  }
  catch (error) {
    console.log(error);
    // error handling.
  }
  finally {
    // finally.
  }
};

ロール

  • SES用のロールを設定

IAM

ロール

  • SES用のロールを作成

ポリシー

  • 以下のポリシーを新規作成し、ロールにアタッチする
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Statement1",
            "Effect": "Allow",
            "Action": [
                "ses:SendEmail",
                "ses:SendRawEmail"
            ],
            "Resource": "*"
        }
    ]
}

Discussion