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 Class(クラス)インスタンスからDictに変換

Python Class(クラス)インスタンスからDictに変換

Pythonクラスインスタンスから Dictに 変換するコード例です。

下のような クラスを用意しました

class UserRow:
    def __init__(self, id, name):        
        self.name = name
        self.id = id

このUserRow クラス インスタンスを使った変数を用意し print()すると 下記のように 表示されます

print()してもクラスの中身は見れません

中身を表示したい場合、 dictに変換すると print()でも表示できます。

dict に変換しprint()

vars()を 使えば dict型の変数に 変換できます

class UserRow:
    def __init__(self, id, name):        
        self.name = name
        self.id = id

user_row = UserRow(123,"my name") #クラスインスタンス作成
user_dict = vars(user_row) #varsで クラスインスタンスからdict型変数へ変換
print(user_dict)

結果、 「{‘name’: ‘my name’, ‘id’: 123}」←のように表示されました

2022 MJELD TECHNOLOGIES. ALL RIGHTS RESERVED