LoginSignup
2
1

More than 3 years have passed since last update.

Amazon SES+Pythonでメールを送信する

Posted at

Amazon SESとは

  • Amazonが提供するEメールプラットフォーム
  • 従量課金制

手順

  • リージョンの選択
  • 送信用のメールアドレスを登録する
  • 送信制限を解除する
  • メール送信処理の実装

リージョンの選択

Amazon SESでは現在以下のリージョンがサポートされています
スクリーンショット 2020-05-14 14.32.48.png

送信用のメールアドレスを登録する

Amazon SESでは送信用のメールアドレスを検証し、登録する必要があります。
(検証されていないメールアドレスについては使用する事ができません。)

  • SESの[Email Addresses]タブの[Verify a New Adress]ボタンから送信用に登録したいメールアドレスを入力
    スクリーンショット 2020-05-14 14.26.06.png

  • 認証メールが届くので、メールのURLから認証を完了させる

送信制限を解除する

何もしない状態の場合、認証したメールアドレス宛てにしかメールを送信できないかつ送信数が限られているため、制限の解除を行う必要があります。

  • SESの[Sending Statistics]タブで[Request a Sending Limit Increase]ボタンをクリック
  • Support Centerページに遷移するので、必要情報を入力 スクリーンショット 2020-05-14 14.44.43.png
  • 申請

メール送信の実装

import boto3

def main():
  try:
    client = boto3.client(
      'ses',
      aws_access_key_id={AWS_ACCESS_KEY_ID},
      aws_secret_access_key={AWS_SECRET_ACCESS_KEY},
      region_name='us-east-1' # 送信用メールアドレスを登録したリージョン
    )

    client.send_email(
      Destination={
        'ToAddresses': ['hoge@hoge.com', 'hoge2@hoge.com'],
        'BccAddresses': ['hoge_bcc@hoge.com']
      },
      Message={
        'Body': {
          'Text': {
            'Data': 'メール本文',
            'Charset': 'utf-8'
          }
        },
        'Subject': {
          'Data': '件名',
          'Charset': 'utf-8'
        }
      },
      Source='hoge_from@hoge.com', # 登録済みのメールアドレス
      ConfigurationSetName='メール送信者として表示したい名前'
    )
  except ClientError as e:
    print(e.response['Error']['Message'])
  else:
    print(response['MessageId'])

参考

Amazon SES開発者ガイド

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1