https://www.yamamanx.com/ses-mail-recieve/
https://docs.aws.amazon.com/ja_jp/ses/latest/dg/receiving-email.html
E メールを受信する Amazon SES のエンドポイントは、IMAP または POP3 E メールサーバーではありません。
これらの URL を E メールクライアントの受信メールサーバーとして使用することはできません。
E メールの受信は下記リージョンでサポート
米国東部(バージニア北部)
米国西部 (オレゴン)
欧州 (アイルランド)
バージニア北部で実施
-- 1. コマンド等のインストール
-- 1.1 aws cli version 2 インストール
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
aws --version
-- 1.2 jqインストール
sudo yum -y install jq
-- 2. Identityの作成
aws ses verify-domain-identity \
--domain example.com
aws ses list-identities
aws ses get-identity-verification-attributes \
--identities example.com
aws ses verify-domain-dkim \
--domain example.com
-- 3. CNAMEレコード作成
aws route53 list-hosted-zones
{
"Comment": "CREATE/DELETE/UPSERT a record ",
"Changes": [
{ "Action": "UPSERT",
"ResourceRecordSet": { "Name": "xxxxxmj2sp4bl5az2ouevtlevmvrz2z5._domainkey.example.com.",
"Type": "CNAME",
"TTL": 10,
"ResourceRecords": [
{ "Value": "xxxxxmj2sp4bl5az2ouevtlevmvrz2z5.dkim.amazonses.com" }
]
}
},
{ "Action": "UPSERT",
"ResourceRecordSet": { "Name": "yyyyycgbwfvlp35zfuw2knqkk7kmlxop._domainkey.example.com.",
"Type": "CNAME",
"TTL": 10,
"ResourceRecords": [
{ "Value": "yyyyycgbwfvlp35zfuw2knqkk7kmlxop.dkim.amazonses.com" }
]
}
},
{ "Action": "UPSERT",
"ResourceRecordSet": { "Name": "zzzzz4muc47hvvjll5b6qsf6ho7dfzqk._domainkey.example.com.",
"Type": "CNAME",
"TTL": 10,
"ResourceRecords": [
{ "Value": "zzzzz4muc47hvvjll5b6qsf6ho7dfzqk.dkim.amazonses.com" }
]
}
}
]
}
aws route53 change-resource-record-sets \
--hosted-zone-id AAAAAAAAAAAAAAAAAAAAA \
--change-batch file://cname.json
aws route53 list-resource-record-sets \
--hosted-zone-id AAAAAAAAAAAAAAAAAAAAA
aws ses get-identity-verification-attributes \
--identities example.com
-- 4. MXレコード作成
aws route53 list-hosted-zones
{
"Comment": "CREATE/DELETE/UPSERT a record ",
"Changes": [
{ "Action": "UPSERT",
"ResourceRecordSet": { "Name": "example.com.",
"Type": "MX",
"TTL": 10,
"ResourceRecords": [
{ "Value": "10 inbound-smtp.us-east-1.amazonaws.com" }
]
}
}
]
}
aws route53 change-resource-record-sets \
--hosted-zone-id AAAAAAAAAAAAAAAAAAAAA \
--change-batch file://mx.json
aws route53 list-resource-record-sets \
--hosted-zone-id AAAAAAAAAAAAAAAAAAAAA
-- 5. S3 バケットを作成する
aws s3 mb s3://bucket123
aws s3 ls
-- 6. バケットポリシーの追加
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowSESPuts-0000000000000",
"Effect": "Allow",
"Principal": {
"Service": "ses.amazonaws.com"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::bucket123/*",
"Condition": {
"StringEquals": {
"AWS:SourceAccount": "999999999999"
},
"StringLike": {
"AWS:SourceArn": "arn:aws:ses:*"
}
}
}
]
}
aws s3api put-bucket-policy \
--bucket bucket123 \
--policy file://s3_policy.json
aws s3api get-bucket-policy \
--bucket bucket123
-- 7. 受信ルールセット作成
aws ses list-receipt-rule-sets
aws ses create-receipt-rule-set \
--rule-set-name ruleset01
aws ses describe-receipt-rule-set \
--rule-set-name ruleset01
aws ses set-active-receipt-rule-set \
--rule-set-name ruleset01
-- 8. 受信ルール作成
aws ses create-receipt-rule \
--rule-set-name ruleset01 \
--rule '{
"Name": "rule01",
"Enabled": true,
"TlsPolicy": "Optional",
"Recipients": ["example.com"],
"Actions": [
{
"S3Action": {
"BucketName": "bucket123"
}
}
],
"ScanEnabled": true
}'
aws ses describe-receipt-rule \
--rule-set-name ruleset01 \
--rule-name rule01
-- 9. 動作確認
aws ses send-email \
--from hoge@example.com \
--to hoge@example.com \
--subject "subject01" \
--text "text01"
aws s3 ls s3://bucket123 --recursive
aws s3 cp s3://bucket123/l5rlqa85g0gijvbg999lhdecjpvs242b7rbkxxo1 -
-- 10. クリーンアップ
-- 受信ルール削除
aws ses list-receipt-rule-sets
aws ses delete-receipt-rule \
--rule-set-name ruleset01 \
--rule-name rule01
-- 受信ルールセット削除
aws ses list-receipt-rule-sets
aws ses set-active-receipt-rule-set
aws ses delete-receipt-rule-set \
--rule-set-name ruleset01
-- バケットの削除
aws s3 ls
aws s3 rb s3://bucket123 --force
-- MXレコード削除
-- CNAMEレコード削除
dkimの3件を削除
-- identityの削除
aws ses list-identities
aws ses delete-identity \
--identity example.com