Python boto3 Amazon SES メール送信

Python boto3 SES メール送信

AWSAmazon SES を利用し、 Python + boto3 から メール送信する コード例です。

Amazon SES は、ユーザー自身の Eメールアドレスとドメインを使用して Eメールを送受信サービスを提供しています。

SES画面左側の「Verified identities」を選択し 「Create identity」で自分のメールアドレスを登録します。

[Create identity]で設定完了すると Amazon Web Services から自分宛てにメールが届きます。 本文のリンクをクリッククリックし verification します。

上記の設定完了後、 Python + boto3 から SES送信 をテストします。

SES送信 コード例

import boto3
ses = boto3.Session(region_name="ap-northeast-1",
    aws_access_key_id="アクセスキー",
    aws_secret_access_key="シークレット").client("ses")
res = ses.send_email(
    Destination={'ToAddresses': ["宛先自分のメールアドレス"] },
    Message={
        'Body': { 
            'Html': { 'Charset': "UTF-8",'Data': "<html><body>HTMLの場合の本文</body></html>"},
            'Text': { 'Charset': "UTF-8",'Data': "テキストの場合の本文"}
            },
        'Subject': { 'Charset': "UTF-8",'Data': "タイトル"}
        },
    Source="自分のメールアドレス"
    )
print(res)

自分の gmailだと 下のような 「このメールはなりすましの可能性があります。」とでてしまいます。 ドメインあれば DNSでこのメッセージは回避できます

「このメールはなりすましの可能性があります。」メッセージが表示される

Python S3 JSONデータを保存|読込

Python S3 JSONデータを保存|読込

Python boto3を 使って プログラム中の変数などのデータを AWS S3へ 保存・読込をする コード例です。

S3へ JSONデータを 保存

import json
import boto3

test_json = {'name': '毛利', 'age': 10} #←S3に保存したいDict変数
s3 = boto3.Session(region_name=None).resource('s3')
obj = s3.Object("bucket名","folder名/test.json")

obj.put(Body = json.dumps(test_json, ensure_ascii=False)) #←変数をJSON変換し S3にPUTする

Dict型の 変数は、 json.dumps()でJSON文字列に変換しS3にputしています

json.dumps()の ensure_asciiは デフォルトTrueなのでFalseにします。 文字列に 非ASCII文字が含まれていれば、 戻り値に 非ASCII文字を含めることができます。

S3の JSONファイル を読込し Dict変数に変換

import json
import boto3

s3 = boto3.Session(region_name=None).resource('s3')
obj = s3.Object("bucket名","folder名/test.json") 
json_txt = obj.get()['Body'].read() #データを読み込む
item_dict = json.loads(json_txt) #JSON文字列をdictに変換
print(item_dict["name"])

get()するとResponseMetadataのオブジェクトで返ります

json.loads()を使えば JSON文字列を Dictに変換できます

2022 MJELD TECHNOLOGIES. ALL RIGHTS RESERVED