「11.3.6 メール受信」(p.266)で、メール受信用のS3バケットをあらかじめ用意するよう記載していますが、このS3バケットはSESがメールを保存できるよう権限の設定を行う必要があります。ここでは二つの方法を提示しますので、用途に応じて設定を行って下さい。
とりあえずメール受信の動作確認を行いたい場合
受信メールを保存するS3のパブリックアクセスを許可して下さい。許可の方法は、S3バケットに対して、本書籍第9章の「図9.9 ブロックバブリックアクセスのパケット設定」で「パブリックアクセスを全てブロック」のチェックを外します。
本番運用を想定したメール受信の設定を行いたい場合
下記のAWSのドキュメントを参考にして下さい。
「E メール受信Amazon SESのための へのアクセス許可の付与 - Amazon SESバケットに書き込むAmazon S3アクセス許可を付与します。」
リスト11.1 SMTPでメール送信を行うPythonプログラム(sendmailtest.py)
# -*- coding: utf-8 -*-
import smtplib
from email.mime.text import MIMEText
from email.header import Header
from email import charset
# 各種情報
account = '*****'
password = '*****'
server = '*****'
from_addr = 'no-reply@*****'
to_addr = '*****@*******'
# SMTPサーバーに接続する
con = smtplib.SMTP_SSL(server, 465)
con.login(account, password)
# 送信するメールのメッセージを作成する
cset = 'utf-8'
message = MIMEText(u'SMTPのテスト', 'plain', cset)
message['Subject'] = Header(u'SMTP経由での電子メール送信のテストです', cset)
message['From'] = from_addr
message['To'] = to_addr
# メールを送信する
con.sendmail(from_addr, [to_addr], message.as_string())
# SMTPから切断する
con.close()