Como enviar e-mails

A API Mail fornece duas maneiras de enviar uma mensagem de e-mail: 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 e-mail e retornam. O serviço de e-mail enfileira a mensagem e tenta enviá-la, repetindo se o servidor de e-mail de destino não estiver disponível. Erros e mensagens de retorno são enviados ao endereço do remetente da mensagem de e-mail.

Antes de começar

Você precisa registrar seus remetentes de e-mails como remetentes autorizados. Para mais informações, consulte quem pode enviar e-mails.

Como enviar e-mails com mail.send_mail()

Para enviar e-mails usando a função mail.send_mail(), utilize os campos da mensagem de e-mail como parâmetros, incluindo o remetente, os destinatários, o assunto e o corpo da mensagem. Exemplo:

    mail.send_mail(sender=sender_address,                    to="Albert Johnson <[email protected]>",                    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 """)

Como enviar e-mails com EmailMessage

Para enviar e-mails usando objetos com a classe EmailMessage, transmita os campos da mensagem de e-mail para o construtor EmailMessage e use os atributos da instância para atualizar a mensagem.

O método EmailMessage.send() envia a mensagem de e-mail representada pelos atributos da instância. Um aplicativo pode reutilizar uma instância EmailMessage ao modificar atributos e chamar o método send() novamente.

    message = mail.EmailMessage(         sender=sender_address,         subject="Your account has been approved")      message.to = "Albert Johnson <[email protected]>"     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()

No exemplo a seguir, veja como enviar uma mensagem para confirmar um endereço de e-mail:

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)

Como enviar e-mails em massa

Consulte as diretrizes de e-mail em massa para considerações sobre como enviar e-mails em massa.