Mengirim Email

API email menyediakan dua cara untuk mengirim pesan email: fungsi mail.send_mail() dan class EmailMessage.

Pengiriman bersifat asinkron: fungsi mail.send_mail() dan metode EmailMessage.send() mengirim data pesan ke layanan email, lalu menampilkannya. Layanan email mengantrekan pesan, lalu mencoba mengirimkannya, dan mencoba ulang jika server email tujuan tidak tersedia. Error dan pesan email tidak terkirim dikirim ke alamat pengirim untuk pesan email tersebut.

Sebelum memulai

Anda harus mendaftarkan email pengirim sebagai pengirim yang sah. Untuk mengetahui informasi selengkapnya, lihat siapa yang dapat mengirim email.

Mengirim email dengan mail.send_mail()

Untuk mengirim email menggunakan fungsi mail.send_mail(), gunakan kolom pesan email sebagai parameter, termasuk pengirim, penerima, subjek, dan isi pesan. Contoh:

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

Mengirim email dengan EmailMessage

Untuk mengirim email menggunakan objek dengan class EmailMessage, teruskan kolom pesan email ke konstruktor EmailMessage dan gunakan atribut instance untuk memperbarui pesan.

Metode EmailMessage.send() mengirim pesan email yang diwakili oleh atribut instance. Aplikasi dapat menggunakan kembali instance EmailMessage dengan mengubah atribut dan memanggil metode send() lagi.

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

Contoh berikut menunjukkan pengiriman pesan untuk mengonfirmasi alamat email:

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)

Mengirim email massal

Lihat Panduan email massal untuk pertimbangan seputar pengiriman email massal.