FlaskでPythonを始めました。 FlaskからAmazon SESを使用して電子メールを送信する最善の方法は何かを知りたいですか?Amazon SES with Flask Python
私はbotoを見ましたが、それはすべてのAmazonサービスのインターフェイスです。私は他のカスタム例も見てきました。
Flaskで電子メールを送信するには、どのような方法が最適ですか?
ありがとうございました。
FlaskでPythonを始めました。 FlaskからAmazon SESを使用して電子メールを送信する最善の方法は何かを知りたいですか?Amazon SES with Flask Python
私はbotoを見ましたが、それはすべてのAmazonサービスのインターフェイスです。私は他のカスタム例も見てきました。
Flaskで電子メールを送信するには、どのような方法が最適ですか?
ありがとうございました。
私は同様の状況でした。 Send Formatted Email Using the Amazon SES APIです。
提案したように、botoを使用できます。しかし、これはboto3ほど更新されていません。詳細情報here。
これは私が成功したことです。
はあなたのapp.config
で次のキーを含める:
# Amazon Web Services credentials
AWS_ACCESS_KEY_ID = 'your access key id'
AWS_SECRET_ACCESS_KEY = 'your secret access key'
# Amazon Simple Email Service
SES_REGION_NAME = 'us-west-2' # change to match your region
SES_EMAIL_SOURCE = '[email protected]'
注:SESコンソールで設定された電子メールの送信元(送信者)は、検証済みのメールアドレスでなければなりません。
その後、どこかにあなたのコードでは、このような関数を定義します。もちろん
import boto3
def send_email(app, recipients, sender=None, subject='', text='', html=''):
ses = boto3.client(
'ses',
region_name=app.config['SES_REGION_NAME'],
aws_access_key_id=app.config['AWS_ACCESS_KEY_ID'],
aws_secret_access_key=app.config['AWS_SECRET_ACCESS_KEY']
)
if not sender:
sender = app.config['SES_EMAIL_SOURCE']
ses.send_email(
Source=sender,
Destination={'ToAddresses': recipients},
Message={
'Subject': {'Data': subject},
'Body': {
'Text': {'Data': text},
'Html': {'Data': html}
}
}
)
あなたがより複雑なメッセージが必要な場合、あなたはses.send_email
に多くのパラメータを追加することができます。
次に、あなたは、このようなメールを送ることができます。
recipients = ['[email protected]']
subject = 'Thanks for registering'
# You can render the message using Jinja2
html = render_template('email.html', name='John Doe')
send_email(current_app,
recipients=recipients,
subject=subject,
html=html
)
改良:
をあなたは非同期タスクとして電子メールを送信するためにスレッドを使用することができます。これは、The Flask Mega-Tutorial、Part XI:Email Support(Miguel Grinberg著)でより詳しく説明されています。これは実際に私が使っているものです。
または、これはセロリを使用するとよいでしょう。しかし、あなたがAmazonのエコシステムにいるので、私はSQSを使用します。
その他のオプションが含まれます:
send_mail
関数をラップします。
[send_mail]パラメータの詳細なリストはこちら[https://boto3.readthedocs.io/ja/latest/reference/services/ses.html#SES.Client.send_email] [ここ](http://docs.aws.amazon.com/ses/latest/APIReference/API_SendEmail.html)を参照してください。 –