Mail API でメールを送信する

このガイドでは、Mail API を使用してメールを送信する方法について説明します。

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()

一括メールの送信

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

Mail API の移行に関する考慮事項を確認する。メールハンドラ ガイドをご覧ください。