Amazon SESを使ってメール送信した際、メールがハードバウンスすると、サプレッションリストに登録されます。
SESとPostfixの連携では、Amazon SES SMTP インターフェイスを利用するため、SES用のユーザとパスワードが必要です。
IAMユーザではないです。
#利用しているリージョンを指定 relayhost = [email-smtp.us-east-1.amazonaws.com]:25 smtp_sasl_auth_enable = yes smtp_sasl_security_options = noanonymous smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_use_tls = yes smtp_tls_security_level = encrypt smtp_tls_note_starttls_offer = yes smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt
# -o smtp_fallback_relay=
# vi /etc/postfix/sasl_passwd [email-smtp.us-east-1.amazonaws.com]:25 SMTP ユーザー名:SMTP パスワード # postmap hash:/etc/postfix/sasl_passwd # chmod 600 /etc/postfix/sasl_passwd.db # rm /etc/postfix/sasl_passwd <- 必要に応じて、不要なファイルを削除
# service postfix restart
echo "test" | mail -r from@example.com -s "mail-subject" to@example.com
bashからSESを利用する場合は、IAMユーザが必要です。
Amazon SES SMTP インターフェイスを利用するSES用のユーザとパスワードではないです。
#!/bin/bash ################################################## # アクセスキーID/シークレットアクセスキー/リージョン の設定 ################################################## AWS_ACCESS_KEY="AKIxxxxx" # アクセスキーID AWS_SECRET_KEY="xxxxx" # シークレットアクセスキー REGION="us-west-2" # リージョン。米国東部 (バージニア北部):us-east-1、米国西部 (オレゴン):us-west-2、EU (アイルランド):eu-west-1 ################################################## # メールの送信者・受信者/件名/本文 の設定 ################################################## TO="Email To <to@example.com>" FROM="Email From <from@example.com>" SUBJECT="<YOUR SUBJECT HERE>" MESSAGE="<YOUR MESSAGE HERE>" ################################################## # 処理 ################################################## date="$(date -R)" access_key="$AWS_ACCESS_KEY" priv_key="$AWS_SECRET_KEY" region="$REGION" signature="$(echo -n "$date" | openssl dgst -sha256 -hmac "$priv_key" -binary | base64 -w 0)" auth_header="X-Amzn-Authorization: AWS3-HTTPS AWSAccessKeyId=$access_key, Algorithm=HmacSHA256, Signature=$signature" endpoint="https://email.$region.amazonaws.com/" action="Action=SendEmail" source="Source=$FROM" to="Destination.ToAddresses.member.1=$TO" subject="Message.Subject.Data=$SUBJECT" message="Message.Body.Text.Data=$MESSAGE" curl -v -X POST -H "Date: $date" -H "$auth_header" --data-urlencode "$message" --data-urlencode "$to" --data-urlencode "$source" --data-urlencode "$action" --data-urlencode "$subject" "$endpoint"