AWS SES( Simple Email Service )はAWS上で利用できるMTA。みたいなもの。
AWSから提供されているライブラリを利用することでビルトインのメールサーバのような感覚で使用できます。
SESのリージョン
SESは東京リージョンはサポート対象外なので、対応している海外リージョンを使用する
SESのサンドボックスを解除する
SESのデフォルトは登録済みのアドレス宛てに対してのみ送信可能で、送受信数の制限のかかったサンドボックスモードでの利用となる。
サンドボックスを解除するには、SESコンソールから
- Sending Statistics
- Request a Sending Limit Increase
と操作していき、Support Centerに緩和申請を行うことで解除できる。
利用するEmailアドレスの登録
SESからメール送信時に使用するFromアドレスの登録・検証を行います。
SESコンソールから
- Email Addresses
- Verify a New Email Address
- 許可するメールアドレスを登録
- 入力したメールアドレスに確認用URLが届くのでそのURLにアクセスする
- SESコンソール上で登録したメールアドレスのVerification Statusがverifiedになる
これで、verifiedとなったアドレスを差出人として使用したりサンドボックスでの宛先として使用することができる。
SESの実行ロール
LambdaからSESを使用してメール送信するにはSESへのアクセスを許可する実行ロールが必要となる。
メールの送信
PythonからSESを使用してメール送信する関数。boto3を利用。
us-east-1'
は使用のリージョンに適宜読み替えて下さい。
MAILFROM = 'SESで許可したメールアドレス' def sendmail(to, subject, body): client = boto3.client('ses', region_name='us-east-1') response = client.send_email( Source=MAILFROM, ReplyToAddresses=[MAILFROM], Destination= { 'ToAddresses': [to] }, Message={ 'Subject':{ 'Data': subject, 'Charset': 'UTF-8' }, 'Body': { 'Text': { 'Data': body, 'Charset': 'UTF-8' } } } )
リンク