Invio della posta

L'API Mail offre due modi per inviare un messaggio email: mail.send_mail() e la classe EmailMessage.

L'invio è asincrono: la funzione mail.send_mail() e la EmailMessage.send() trasmette i dati del messaggio alla posta e poi tornare indietro. Il servizio di posta mette in coda il messaggio, quindi tenta di invialo, riprova se il server di posta di destinazione non è disponibile. Errori e gli avvisi di mancato recapito vengono inviati all'indirizzo del mittente dell'email.

Prima di iniziare

Devi registrare gli indirizzi email dei mittenti come mittenti autorizzati. Per ulteriori informazioni le informazioni, vedi chi può inviare email.

Invio di messaggi con mail.send_mail() in corso...

Per inviare email utilizzando la funzione mail.send_mail(), utilizza i campi della il messaggio email come parametri, tra cui il mittente, i destinatari, l'oggetto e il corpo del messaggio. Ad esempio:

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

Invio di messaggi con EmailMessage in corso...

Per inviare posta utilizzando oggetti con classe EmailMessage, passa i campi del messaggio email a il costruttore di EmailMessage e utilizza gli attributi dell'istanza per aggiornare .

Il metodo EmailMessage.send() invia il messaggio email rappresentati dagli attributi dell'istanza. Un'applicazione può riutilizzare Istanza EmailMessage modificando gli attributi e chiamando il metodo send() di nuovo.

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

L'esempio seguente mostra l'invio di un messaggio per confermare un'email indirizzo:

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)

Invio di messaggi collettivi

Per considerazioni sull'invio di messaggi collettivi, consulta le linee guida per messaggi collettivi email.