LoginSignup
13
16

More than 5 years have passed since last update.

boto3を使えば、PythonからSES経由でメール送信ができます。

        client = boto3.client('ses')
        response = client.send_email(
            Source='YOUR@EMAIL.ADDRESS',
            Destination={
                'ToAddresses': [
                    'TO_ADDRESS@example.com',
                ],
                'CcAddresses': [
                    'CC_ADDRESS@example.com',
                ],
                'BccAddresses': [
                    'BCC_ADDRESS@example.com',
                ]
            },
            Message={
                'Subject': {
                    'Data': 'SES Mail by Python',
                    'Charset': 'UTF-8'
                },
                'Body': {
                    'Text': {
                        'Data': 'This is text mail',
                        'Charset': 'UTF-8'
                    },
                    'Html': {
                        'Data': '<h1>This is Html Mail</h1>',
                        'Charset': 'UTF-8'
                    }
                }
            },
            ReplyToAddresses=[
                'YOUR@EMAIL.ADDRESS',
            ]
        )

実行する

実行すると、以下のようにメールが送信されます。

スクリーンショット 2017-01-12 15.08.10.png

Tips

HTMLメールとテキストメール

Message['Body']['Text']Message['Body']['Html']がある場合かつHTMLメールが見れるクライアントでは表示されない様子です。

アドレスについて

Sourceに入れるアドレスは、自身のSESアカウントで認証済のものを使ってください。

権限について

実行するために必要な権限はses:SendEmailです。
以下のようなロールを作って、LambdaなりIAMユーザーに割り当てておきましょう。

{
  "Version": "2012-10-17",
  "Statement": [{
      "Action": [
        "ses:SendEmail"
      ],
      "Resource": [
        "arn:aws:ses:*"
      ],
      "Effect": "Allow"
  }]
}

その他

バウンスの処理などもできる様子なので、興味がある方は以下をご覧ください。
http://boto3.readthedocs.io/en/latest/reference/services/ses.html#SES.Client.send_email

13
16
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
13
16