メールの送信

Mail API でメール メッセージを送信するには、mail.send_mail() 関数と EmailMessage クラスという 2 つの方法があります。

送信は非同期です。mail.send_mail() 関数と EmailMessage.send() メソッドは、メッセージ データをメールサービスに送信して戻ります。メール サービスは、メッセージをキューに登録して送信を試み、宛先のメール サーバーが使用できない場合には再試行します。エラーやバウンス メッセージは、メール メッセージの送信者アドレスに送られます。

はじめに

送信者のメールアドレスを承認済み送信者として登録する必要があります。詳細については、メールを送信できるユーザーをご覧ください。

mail.send_mail() を使用したメールの送信

mail.send_mail() 関数を使ってメールを送信するには、送信者、受信者、件名、メッセージ本文など、メール メッセージのフィールドをパラメータとして使用します。次に例を示します。

    mail.send_mail(sender=sender_address,
                   to="Albert Johnson <Albert.Johnson@example.com>",
                   subject="Your account has been approved",
                   body="""Dear Albert:

Your example.com account has been approved.  You can now visit
http://www.example.com/ and sign in using your Google Account to
access new features.

Please let us know if you have any questions.

The example.com Team
""")

EmailMessage を使用したメールの送信

EmailMessage クラスでオブジェクトを使ってメールを送信するには、メール メッセージのフィールドを EmailMessage コンストラクタに渡し、インスタンスの属性を使ってメッセージを更新します。

EmailMessage.send() メソッドは、インスタンスの属性で表されるメール メッセージを送信します。アプリケーションは、属性を変更して send() メソッドを再度呼び出すことで、EmailMessage インスタンスを再利用できます。

    message = mail.EmailMessage(
        sender=sender_address,
        subject="Your account has been approved")

    message.to = "Albert Johnson <Albert.Johnson@example.com>"
    message.body = """Dear Albert:

Your example.com account has been approved.  You can now visit
http://www.example.com/ and sign in using your Google Account to
access new features.

Please let us know if you have any questions.

The example.com Team
"""
    message.send()

次の例は、電子メールアドレスを確認するメッセージの送信を示しています。

class UserSignupHandler(webapp2.RequestHandler):
    """Serves the email address sign up form."""

    def post(self):
        user_address = self.request.get('email_address')

        if not mail.is_email_valid(user_address):
            self.get()  # Show the form again.
        else:
            confirmation_url = create_new_user_confirmation(user_address)
            sender_address = (
                'Example.com Support <{}@appspot.gserviceaccount.com>'.format(
                    app_identity.get_application_id()))
            subject = 'Confirm your registration'
            body = """Thank you for creating an account!
Please confirm your email address by clicking on the link below:

{}
""".format(confirmation_url)
            mail.send_mail(sender_address, user_address, subject, body)

一括メールの送信

一括(バルク)メールを送信する場合の考慮事項については、一括メールのガイドラインを参照してください。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Python の App Engine スタンダード環境