「設定を始める」はいまいち使いづらいのでスキップする。
「検証済みID」から始める。
「検証済みID」に、Fromに出現させたいドメインとして 57tyh68f.click を追加する。
Route 53 にゾーンがある場合は「Route 53 にCNAMEを追加する」みたいなボタンが出現するので、それを押して Route 53 のゾーン 57tyh68f.click に3つのCNAMEを追加する。
Route 53 に3つのCNAMEレコードが追加されてから10分~20分ほど経過するとSESのダッシュボードで検証済みになる。
「検証済みID」に、Toに使いたいメアドを追加する。(例: tadashi.oya@digitalhearts.com)
tadashi.oya@digitalhearts.com に実在検証のメールが着信するので、クリックしてSESのダッシュボードでの表示を検証済みとする。
SESダッシュボードから「Fromに使いたいドメイン」として 57tyh68f.click にチェックを入れ「テストEメールの送信」を押下する。
Fromに適当なアドレスを入れる。(例: no-reply)(no-replyと選択したドメインから no-reply@57tyh68f.click がFromに出現する)
シナリオとして「カスタム」を選択する。
出現する「カスタム受信者」にSESダッシュボードで検証済みとしたメアド tadashi.oya@digitalhearts.com を入力する。
適当に「件名」と「本文」を書いて「テストEメールの送信」を押下する。(例: 件名を test 本文を This is a test などとする)
tadashi.oya@digitalhearts.com にSESからのメールが着信しているのを確認する。
Route 53にMXレコードを追加する。
https://docs.aws.amazon.com/ses/latest/dg/receiving-email-mx-record.html を参考にする。
「ルートドメインのレコードを作成するには、空白のままにします。」に従い空白のままとして、「57tyh68f.click」に対するMXレコードを作成する。(「mail.57tyh68f.click」みたいにはしない)
10 inbound-smtp.ap-northeast-1.amazonaws.com
SESの「Eメール受信」でルールセットを作成する。
名前しか指定する項目が無い。(例: receive-mail という名前にする)
作成したら「有効」にしておく。
ルールセットの中に受信ルールを作成する。受信ルールの作成がめんどうくさい。
- ルール名: misc
- ステータス: 有効化(デフォルトでチェックが入っている)
- TLS: チェック無し(デフォルトでチェック無しなのでそのまま使う)
- スパムとウィルススキャン: チェック有り(デフォルトでチェック有りなのでそのまま使う)
- 受信者の条件: misc@57tyh68f.click
- 新しいアクションの追加: S3バケットへの配信 <<<「SNSトピックへの発行」というのも選べるが今回は関係なかった
下記の選択肢が生えてくる。
- S3バケット: 57tyh68f-ses-bucket (先回りして作っておく)
- オブジェクトキープレフィクス: misc
- メッセージの暗号化: チェック無し(デフォルト)
- SNSトピック: 選択せず
ここでS3バケットを指定しないといけないのでS3バケットを先回りして作っておく。
「receipt-rule」の箇所に、まだ作っていない・これから作る、受信ルールの名前を書かないといけないので注意する。
- AWSリージョン: ap-northeast-1
- バケットタイプ: 汎用
- バケット名: 57tyh68f-ses-bucket
- オブジェクト所有者: ACL無効
- パブリックアクセスをすべてブロック: チェック入り(デフォルト)
- バケットのバージョニング: 無効にする(デフォルト)
- タグ: 無し
- デフォルトの暗号化-暗号化タイプ: SSE-S3(デフォルト)
- デフォルトの暗号化-バケットキー: 有効にする(デフォルト)
- 詳細設定: 触らない
バケット作成後に https://docs.aws.amazon.com/ja_jp/ses/latest/dg/receiving-email-permissions.html を参考にしてバケットの「アクセス許可」の「バケットポリシー」(最初は空欄)に以下のJSONを登録する。
{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"AllowSESPuts",
"Effect":"Allow",
"Principal":{
"Service":"ses.amazonaws.com"
},
"Action":"s3:PutObject",
"Resource":"arn:aws:s3:::57tyh68f-ses-bucket/*",
"Condition":{
"StringEquals":{
"AWS:SourceAccount":"062149130045",
"AWS:SourceArn": "arn:aws:ses:ap-northeast-1:062149130045:receipt-rule-set/receive-mail:receipt-rule/misc"
}
}
}
]
}
ここまでの設定で「misc@57tyh68f.click」へのメールがS3バケットの中に入るようになる。
- SESのダッシュボードで「検証済みID」を表示する。
- 57tyh68f.click にチェックを入れ「テストEメールの送信」を押下する。
- テストメールを作成する。
- Eメール形式: RAW
- FROMアドレス: no-reply@57tyh68f.click
- シナリオ: カスタム
- カスタム受信者: tadashi.oya@digitalhearts.com
- メッセージ: MIME形式の最低限のヘッダ+本文(以下に記載)
- 追加設定: なし
テストメールのメッセージ
MIME-Version: 1.0
From: no-reply <no-reply@57tyh68f.click>
Subject: HTML mail TEST
To: tadashi.oya@digitalhearts.com
Content-Type: multipart/alternative; boundary="000000000000762ee5060bac7aec"
--000000000000762ee5060bac7aec
Content-Type: text/plain; charset="UTF-8"
HTML mail TEST
https://www.google.com/
--000000000000762ee5060bac7aec
Content-Type: text/html; charset="UTF-8"
<div dir="ltr">HTML mail TEST<div><br></div><div><a href="https://www.google.com/">https://www.google.com/</a></div><div><br></div><div><br></div></div>
--000000000000762ee5060bac7aec--
SESのダッシュボードから「設定セット」を表示して「セットの作成」を開始する。
- 設定セット名: 57tyh68f-click-detect
- IPプールを送信する: default(デフォルトでdefaultになっている)
- カスタムリダイレクトドメインの使用: チェック無し(デフォルト)
- 高度な配信オプション: 触らず
- 評判メトリクス: チェック無し(デフォルト)
- アカウントレベル設定を上書きする: チェック無し(デフォルト)
- タグ: 追加せず
作成した「設定セット」を選択して「イベント送信先」を表示して「送信先の追加」を実施する。
その前にSNSトピックを作成する必要があり、SNSトピックを作成する(作成してサブスクリプションでメール受信設定を使う)ためにはS3のバケットの許可を追加する必要がある。
S3バケットの「アクセス許可」を以下のように変更する。
{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"ReceiveMisc", <<<一意になるように
"Effect":"Allow",
"Principal":{
"Service":"ses.amazonaws.com"
},
"Action":"s3:PutObject",
"Resource":"arn:aws:s3:::57tyh68f-ses-bucket/*",
"Condition":{
"StringEquals":{
"AWS:SourceAccount":"062149130045",
"AWS:SourceArn": "arn:aws:ses:ap-northeast-1:062149130045:receipt-rule-set/receive-mail:receipt-rule/misc" <<<受信ルールmisc
}
}
},
{
"Sid":"ReceiveDetect", <<<一意になるように
"Effect":"Allow",
"Principal":{
"Service":"ses.amazonaws.com"
},
"Action":"s3:PutObject",
"Resource":"arn:aws:s3:::57tyh68f-ses-bucket/*",
"Condition":{
"StringEquals":{
"AWS:SourceAccount":"062149130045",
"AWS:SourceArn": "arn:aws:ses:ap-northeast-1:062149130045:receipt-rule-set/receive-mail:receipt-rule/detect" <<<受信ルールdetect
}
}
}
]
}
SESの「Eメール受信」からルールセット receive-mail を選択して、受信ルールのリスト表示のところでルールの作成を押下する。
-
ルール名: detect
-
ステータス: 有効化(デフォルトでチェックが入っている)
-
TLS: チェック無し(デフォルトでチェック無しなのでそのまま使う)
-
スパムとウィルススキャン: チェック有り(デフォルトでチェック有りなのでそのまま使う)
-
受信者の条件: detect@57tyh68f.click
-
新しいアクションの追加: S3バケットへの配信 <<<「SNSトピックへの発行」というのも選べるが今回は関係なかった
下記の選択肢が生えてくる。
- S3バケット: 57tyh68f-ses-bucket
- オブジェクトキープレフィクス: detect
- メッセージの暗号化: チェック無し(デフォルト)
- SNSトピック: 選択せず
SNSトピックを作成してサブスクリプションを関連付ける。
- タイプ: スタンダード
- 名前: 57tyh68f-click-detect
- 表示名: 空欄(デフォルト)
- 暗号化: 触らず
- アクセスポリシー: 触らず
- データ保護ポリシー: 触らず
- 配信ポリシー(HTTP/S): 触らず
- 配信ステータスのログ記録: 触らず
- タグ: 触らず
- アクティブトレース: 触らず
- トピックARN: arn:aws:sns:ap-northeast-1:062149130045:57tyh68f-click-detect
- プロトコル: JSON形式のメール
- エンドポイント: detect@57tyh68f.click
- サブスクリプションフィルターポリシー: 触らず
- Redriveポリシー: 触らず
事前にSNSトピックを作成する必要あり
「設定セット」として 57tyh68f-click-detect を選択して「イベント送信先」を表示して「送信先の追加」を実施する。
- イベントタイプ
- 開封数: チェックを入れる(デフォルトはチェック無し状態)
- クリック数: チェックを入れる(デフォルトはチェック無し状態)
- 送信先オプション
- 送信先タイプ: Amazon SNS
- 名前: 57tyh68f-click-detect
- イベント発行: 有効化にチェックあり(デフォルト)
- Amazon Simple Notification Service (SNS) トピック
- SNSトピック: 57tyh68f-click-detect
- SESのダッシュボードで「検証済みID」を表示する。
- 57tyh68f.click にチェックを入れ「テストEメールの送信」を押下する。
- テストメールを作成する。
- Eメール形式: RAW
- FROMアドレス: no-reply@57tyh68f.click
- シナリオ: カスタム
- カスタム受信者: tadashi.oya@digitalhearts.com
- メッセージ: MIME形式の最低限のヘッダに X-SES-CONFIGURATION-SET ヘッダを追加する+本文(以下に記載)
- 追加設定: なし
テストメールのメッセージ
MIME-Version: 1.0
X-SES-CONFIGURATION-SET: 57tyh68f-click-detect <<<追加したヘッダ
From: no-reply <no-reply@57tyh68f.click>
Subject: HTML mail TEST
To: tadashi.oya@digitalhearts.com
Content-Type: multipart/alternative; boundary="000000000000762ee5060bac7aec"
--000000000000762ee5060bac7aec
Content-Type: text/plain; charset="UTF-8"
HTML mail TEST
https://www.yahoo.co.jp/
--000000000000762ee5060bac7aec
Content-Type: text/html; charset="UTF-8"
<div dir="ltr">HTML mail TEST<div><br></div><div><a href="https://www.yahoo.co.jp/">https://www.yahoo.co.jp/</a></div><div><br></div><div><br></div></div>
--000000000000762ee5060bac7aec--
tadashi.oya@digitalhearts.com にメールが着信する。
この時、https://www.yahoo.co.jp へのリンクの実体が awstrack.me へのリンクに置き換わっていることを確認する。
tadashi.oya@digitalhearts.com がリンクをクリックすると、SES側でリンククリックの検知がJSONメールとして detect@57tyh68f.click 宛てに飛び、S3バケットに格納される。
以下のようなメールが detect@57tyh68f.click のS3バケットに格納される。
Return-Path: <0101018c3dc60b96-6cebeed0-1f19-4ede-a9b3-baf4033ecfa5-000000@us-west-2.amazonses.com>
Received: from a27-165.smtp-out.us-west-2.amazonses.com (a27-165.smtp-out.us-west-2.amazonses.com [54.240.27.165])
by inbound-smtp.ap-northeast-1.amazonaws.com with SMTP id dru53kh8eip9pahdc5qjej1v3jukrvviuckbj1o1
for detect@57tyh68f.click;
Wed, 06 Dec 2023 06:17:20 +0000 (UTC)
X-SES-Spam-Verdict: PASS
X-SES-Virus-Verdict: PASS
Received-SPF: pass (spfCheck: domain of us-west-2.amazonses.com designates 54.240.27.165 as permitted sender) client-ip=54.240.27.165; envelope-from=0101018c3dc60b96-6cebeed0-1f19-4ede-a9b3-baf4033ecfa5-000000@us-west-2.amazonses.com; helo=a27-165.smtp-out.us-west-2.amazonses.com;
Authentication-Results: amazonses.com;
spf=pass (spfCheck: domain of us-west-2.amazonses.com designates 54.240.27.165 as permitted sender) client-ip=54.240.27.165; envelope-from=0101018c3dc60b96-6cebeed0-1f19-4ede-a9b3-baf4033ecfa5-000000@us-west-2.amazonses.com; helo=a27-165.smtp-out.us-west-2.amazonses.com;
dkim=pass header.i=@amazonses.com;
dkim=pass header.i=@sns.amazonaws.com;
dmarc=pass header.from=sns.amazonaws.com;
X-SES-RECEIPT: AEFBQUFBQUFBQUFHRVR1OUFQcHlsKzVJWGN4dnZmdTdaTnRveUpJUTJ5REREclVZQ0pMaGpoMzRtR3BQTnE0eGlZQm42a3dyb0MveGtzRDl6ZmhteG13MlZpeCtRY01WSTZnWnVDN1J0WkdXdGtvVEl0Vk8wMzgwUDc4QjBFWXVtMTEwNnpaTnB6UFNSZERhZEFwZ0cvb0xMeHU1WTViVTcwS1YxYWpwbUQ5ZnlrdHlkeUJaaWRTYUdHSXFhOEY5K1RqcWpkcm5ReGJXNDBxMm1EUmNEdnpyaXp4MjgycEV6OWJaTGdMbVZmRGYzL1Z5WmhrWVJoc0tpMklSNVZJSzBpZUZjSWZ0M0psMUV2OXpJR21RU0ErdVZjbzRQSk5LcDFQV0VxT2VFSFBVaTRLVzBRTndxaHd0M1NzdTZWYytRVjBsZzQrRWliWFFzUFVhNDNlUzNUSEtYQ0pHT2JYYWJmdkxJVi9hSWpFNmpKWWhEd1hvQ2pjeFFNQy9WUmVjbmdhTXdVMjYzcm00PQ==
X-SES-DKIM-SIGNATURE: a=rsa-sha256; q=dns/txt; b=H5Kzr4kQtTYx9ykWPNCX5WFSE7OaAAZSPThxnbVDw8ORecY3qgmXamTxq4MozbNfjDa4Ue1Kyc5KplRpopd1eGR8y5igxwq52kGhL7bjBGz55tbRS8rxBqu+/6/YM0kA8Y3O05W18IRxFkAScxPXuLeeCGDe+22bYryDNgSFj8w=; c=relaxed/simple; s=zh4gjftm6etwoq6afzugpky45synznly; d=amazonses.com; t=1701843440; v=1; bh=BKV+4ZmztYbQeXc6tVeHZ0BT+QzrEPc2hCjwkZX3Vq0=; h=From:To:Cc:Bcc:Subject:Date:Message-ID:MIME-Version:Content-Type:X-SES-RECEIPT;
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple;
s=bvzpohlt7pj3iqbjuzpvcn4i3spdvank; d=sns.amazonaws.com;
t=1701843438;
h=Date:From:To:Message-ID:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding;
bh=BKV+4ZmztYbQeXc6tVeHZ0BT+QzrEPc2hCjwkZX3Vq0=;
b=U0yF59SU4K4y3+odJV9mNb0uDb/eiWRRHrsTKK43goXIDMoI71yv+V3wC0aS67pF
1cXecmv1z2l7TbEsYUFM3PG4tFp0h+ZnYf6VVpwySJ1r8QjUD+uJFglGBYseDOKzo09
okWdGISnlznDOH7VGxQB85YltRkJhNRxFkP7ClT4=
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple;
s=hsbnp7p3ensaochzwyq5wwmceodymuwv; d=amazonses.com; t=1701843438;
h=Date:From:To:Message-ID:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding:Feedback-ID;
bh=BKV+4ZmztYbQeXc6tVeHZ0BT+QzrEPc2hCjwkZX3Vq0=;
b=h54tWTd4WbawATow5OH6/G5p8EGtJhaPS12BBWH0VokcRWgC2ET2fme0yhyp3/rx
n33CyHpyR7LbvB+OFAAlvgEJ/8784Q8e0wyKYk5frBVuJsxUfbWOY+FAvtTHXV5ItaZ
+wd6XoN/RN3crqRGTYrSeBeZSHPcFwDyrlgZdY1E=
Date: Wed, 6 Dec 2023 06:17:18 +0000
From: AWS Notifications <no-reply@sns.amazonaws.com>
To: detect@57tyh68f.click
Message-ID: <0101018c3dc60b96-6cebeed0-1f19-4ede-a9b3-baf4033ecfa5-000000@us-west-2.amazonses.com>
Subject: Amazon SES Email Event Notification
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
x-amz-sns-message-id: e152f19a-4119-518c-96bb-ac705537c402
x-amz-sns-subscription-arn: arn:aws:sns:ap-northeast-1:062149130045:57tyh68f-click-detect:e30c4038-6324-4cda-97cc-acb512902166
Feedback-ID: 1.us-west-2.c55J8LO2Yl1R0Ht+ysI6VjzUH6Cvo3dHPF80AUVC/G8=:AmazonSES
X-SES-Outgoing: 2023.12.06-54.240.27.165
{
"Type" : "Notification",
"MessageId" : "e152f19a-4119-518c-96bb-ac705537c402",
"TopicArn" : "arn:aws:sns:ap-northeast-1:062149130045:57tyh68f-click-detect",
"Subject" : "Amazon SES Email Event Notification",
"Message" : "{\"eventType\":\"Click\",\"mail\":{\"timestamp\":\"2023-12-06T06:16:31.428Z\",\"source\":\"no-reply@57tyh68f.click\",\"sendingAccountId\":\"062149130045\",\"messageId\":\"0106018c3dc553c4-36ba9cc7-16b6-458a-96d2-613e6758f340-000000\",\"destination\":[\"tadashi.oya@digitalhearts.com\"],\"headersTruncated\":false,\"headers\":[{\"name\":\"MIME-Version\",\"value\":\"1.0\"},{\"name\":\"X-SES-CONFIGURATION-SET\",\"value\":\"57tyh68f-click-detect\"},{\"name\":\"From\",\"value\":\"no-reply@57tyh68f.click\"},{\"name\":\"Subject\",\"value\":\"HTML mail TEST\"},{\"name\":\"To\",\"value\":\"tadashi.oya@digitalhearts.com\"},{\"name\":\"Content-Type\",\"value\":\"multipart/alternative; boundary=\\\"000000000000762ee5060bac7aec\\\"\"}],\"commonHeaders\":{\"from\":[\"no-reply@57tyh68f.click\"],\"to\":[\"tadashi.oya@digitalhearts.com\"],\"messageId\":\"0106018c3dc553c4-36ba9cc7-16b6-458a-96d2-613e6758f340-000000\",\"subject\":\"HTML mail TEST\"},\"tags\":{\"ses:source-tls-version\":[\"TLSv1.3\"],\"ses:operation\":[\"SendRawEmail\"],\"ses:configuration-set\":[\"57tyh68f-click-detect\"],\"ses:source-ip\":[\"138.64.69.204\"],\"ses:from-domain\":[\"57tyh68f.click\"],\"ses:caller-identity\":[\"hytdsh\"]}},\"click\":{\"timestamp\":\"2023-12-06T06:17:18.323Z\",\"ipAddress\":\"138.64.69.204\",\"userAgent\":\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0\",\"link\":\"https://www.yahoo.co.jp/\",\"linkTags\":null}}\n",
"Timestamp" : "2023-12-06T06:17:18.406Z",
"SignatureVersion" : "1",
"Signature" : "pTny8jlHFO+ed+K6VCIqJFgryOvWPMVZaUxD3EFfXA1tsQqqFggVYcJL0su7gNWKqVgGDyYCn+4IWVKFA+Vug/vKdLMCTqEOCMPEfO2jezKRU2Z8PTCPQUric+i437UJHuAPmsif8JB3Yp2GsTS9F/TTEEcm6vCXMDa5rAltbmHTQdl0UnL0lZ3A9eBRo7+bwKLoglphfG38JAM44HGxnPkbcaf6mPwgcGff0SFZk3xevg9B6tFrBumDNLc23vcXW8ayUn2gDSGM+7W7ySFayorErniMRzfyIpWKM/eKyj9qiNFKawIoLtXJjXFZqK4xghe4JnJQs5TZZ62F0b4cpA==",
"SigningCertURL" : "https://sns.ap-northeast-1.amazonaws.com/SimpleNotificationService-01d088a6f77103d0fe307c0069e40ed6.pem",
"UnsubscribeURL" : "https://sns.ap-northeast-1.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:ap-northeast-1:062149130045:57tyh68f-click-detect:e30c4038-6324-4cda-97cc-acb512902166"
}