前提条件
SESへの権限
SESに対してフル権限があること。
AWS CLI
以下のバージョンで動作確認済
- AWS CLI 1.10.63
コマンド
aws --version
結果(例)
aws-cli/1.10.63 Python/2.7.11 Darwin/15.6.0 botocore/1.4.53
バージョンが古い場合は最新版に更新しましょう。
コマンド
sudo -H pip install -U awscli
0. 準備
0.1. リージョンの決定
変数の設定
export AWS_DEFAULT_REGION='us-west-2'
0.2. 変数の確認
プロファイルが想定のものになっていることを確認します。
変数の確認
aws configure list
結果(例)
Name Value Type Location
---- ----- ---- --------
profile lambdaFull-prjz-mbp13 env AWS_DEFAULT_PROFILE
access_key ****************XXXX shared-credentials-file
secret_key ****************XXXX shared-credentials-file
region us-west-2 env AWS_DEFAULT_REGION
1. 事前作業
ドメインの決定
変数の設定
SES_IDENTITY='<SESで利用するドメイン名>'
2. ドメインの登録
コマンド
aws ses list-identities \
--query "Identities[?contains(@, \`${SES_IDENTITY}\`)]"
結果(例)
[]
変数の設定
FILE_SES_IDENTITY="${SES_IDENTITY}-verify.json" \
&& echo ${FILE_SES_IDENTITY}
変数の確認
cat << ETX
SES_IDENTITY: ${SES_IDENTITY}
FILE_SES_IDENTITY: ${FILE_SES_IDENTITY}
ETX
コマンド
aws ses verify-domain-identity \
--domain ${SES_IDENTITY} \
> ${FILE_SES_IDENTITY}
cat ${FILE_SES_IDENTITY}
結果(例)
{
"VerificationToken": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx="
}
変数の設定
SES_TOKEN_VERIFY=$( \
cat ${FILE_SES_IDENTITY} \
| jp.py 'VerificationToken' \
| sed 's/"//g' \
) \
&& echo ${SES_TOKEN_VERIFY}
結果(例)
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
コマンド
aws ses get-identity-verification-attributes \
--identities ${SES_IDENTITY}
結果(例)
{
"VerificationAttributes": {
"example.jp": {
"VerificationToken": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"VerificationStatus": "Pending"
}
}
}
3. DNSへの登録
TXTレコード例
echo "_amazonses.${SES_IDENTITY}. 3600 IN TXT \"${SES_TOKEN_VERIFY}\""
MXレコード例
echo "${SES_IDENTITY}. 3600 IN MX 10 inbound-smtp.${AWS_DEFAULT_REGION}.amazonaws.com."
コマンド
dig txt _amazonses.${SES_IDENTITY}. | grep ^_amazonses
結果(例)
_amazonses.example.jp. 3600 IN TXT "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
コマンド
dig mx ${SES_IDENTITY}. | grep MX | grep ^${SES_IDENTITY}
結果(例)
example.jp. 3600 IN MX 10 inbound-smtp.us-west-2.amazonaws.com.
名前が引けるようになると、数分ほどでVerificationStatusがSuccessになるはずです。
コマンド
aws ses get-identity-verification-attributes \
--identities ${SES_IDENTITY}
結果(例)
{
"VerificationAttributes": {
"example.jp": {
"VerificationToken": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"VerificationStatus": "Success"
}
}
}
コマンド
aws ses list-identities \
--query "Identities[?contains(@, \`${SES_IDENTITY}\`)]"
結果(例)
[
"example.jp"
]
コマンド
aws ses list-identities
結果(例)
{
"Identities": [
"example.jp"
]
}