A enviar correio

A API Mail oferece duas formas de enviar uma mensagem de email: a função mail.send_mail() e a classe EmailMessage.

O envio é assíncrono: a função mail.send_mail() e o método EmailMessage.send() transmitem os dados da mensagem para o serviço de correio e, em seguida, regressam. O serviço de correio coloca a mensagem em fila e, em seguida, tenta enviá-la, repetindo a operação se o servidor de correio de destino estiver indisponível. Os erros e as mensagens de rejeição são enviados para o endereço do remetente da mensagem de email.

Antes de começar

Tem de registar os seus emails de remetente como remetentes autorizados. Para mais informações, consulte quem pode enviar emails.

A enviar email com mail.send_mail()

Para enviar correio através da função mail.send_mail(), use os campos da mensagem de email como parâmetros, incluindo o remetente, os destinatários, o assunto e o corpo da mensagem. Por exemplo:

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

A enviar email com EmailMessage

Para enviar correio através de objetos com a classe EmailMessage, transmita os campos da mensagem de email para o construtor EmailMessage e use os atributos da instância para atualizar a mensagem.

O método EmailMessage.send() envia a mensagem de email representada pelos atributos da instância. Uma aplicação pode reutilizar uma instância EmailMessage modificando os atributos e chamando novamente o método send().

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

O exemplo seguinte demonstra o envio de uma mensagem para confirmar um endereço de 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)

Enviar correio em massa

Consulte as diretrizes de correio em massa para ver considerações sobre o envio de email em massa.