E-Mail senden

Mit der E-Mail-API können Sie E-Mail-Nachrichten auf zwei verschiedene Arten versenden: die mail.send_mail()-Funktion und die EmailMessage-Klasse.

Das Senden erfolgt asynchron: Die Funktion mail.send_mail() und die Methode EmailMessage.send() übertragen die Nachrichtendaten an den E-Mail-Dienst und nehmen anschließend Daten vom Dienst entgegen. Der E-Mail-Dienst reiht die Nachricht in die Warteschlange ein und versucht anschließend, die Nachricht zu senden. Der Vorgang wird wiederholt, wenn der E-Mail-Zielserver nicht verfügbar ist. Fehler und Unzustellbarkeitsnachrichten werden an die Adresse des Absenders der E-Mail-Nachricht gesendet.

Vorbereitung

Sie müssen Ihre Absenderadressen als autorisierte Absender registrieren. Weitere Informationen finden Sie unter Wer kann E-Mails senden?.

E-Mails mit mail.send_mail() senden

Zum Senden von E-Mails mit der Funktion mail.send_mail() verwenden Sie die Felder der E-Mail-Nachricht als Parameter, einschließlich Absender, Empfänger, Betreff und Nachrichtentext. Beispiel:

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

E-Mails mit EmailMessage senden

Wenn Sie E-Mails über Objekte mit der Klasse EmailMessage senden möchten, übergeben Sie die Felder der E-Mail-Nachricht an den EmailMessage-Konstruktor und verwenden Sie Attribute der Instanz, um die Nachricht zu aktualisieren.

Die Methode EmailMessage.send() sendet die E-Mail-Nachricht, wie sie durch die Attribute der Instanz dargestellt wird. Zur Wiederverwendung einer Instanz von EmailMessage können Anwendungen Attribute ändern und die Methode send() noch einmal aufrufen.

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

Das folgende Beispiel veranschaulicht, wie eine Nachricht zum Bestätigen einer E-Mail-Adresse gesendet wird.

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)

Bulk-E-Mails senden

Informationen zum Senden von Bulk-E-Mails finden Sie in den Richtlinien zu Bulk-E-Mails.