13.11. Criação de um projeto Django: Envio de emails

Página 69

13.11. Criação de um Projeto Django: Envio de Emails

Ao construir um sistema com Python e Django, um dos recursos mais úteis que você pode implementar é a capacidade de enviar emails. Seja para notificar os usuários sobre atualizações, confirmar inscrições ou redefinir senhas, o envio de emails é uma ferramenta essencial para qualquer aplicativo da web. Neste capítulo, vamos explorar como configurar o Django para enviar emails.

Configuração do Servidor de Email

Para enviar emails com Django, você precisa de um servidor de email SMTP. O Django suporta muitos servidores de email, como Gmail, SendGrid, Amazon SES, entre outros. Para o propósito deste tutorial, vamos usar o Gmail.

Primeiro, você precisa configurar as configurações do email no seu arquivo settings.py. Aqui está um exemplo de como configurar o Gmail:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = '[email protected]'
EMAIL_HOST_PASSWORD = 'suasenha'

As configurações acima são autoexplicativas. EMAIL_HOST e EMAIL_PORT são as configurações do servidor SMTP do Gmail. EMAIL_USE_TLS é definido como True porque o Gmail usa TLS. EMAIL_HOST_USER e EMAIL_HOST_PASSWORD são o seu email e senha do Gmail, respectivamente.

Envio de Emails

Com as configurações do servidor de email configuradas, agora você pode enviar emails. Django fornece uma função chamada send_mail para enviar emails. Aqui está um exemplo de como usar a função send_mail:

from django.core.mail import send_mail

send_mail(
    'Assunto do email',
    'Corpo do email',
    '[email protected]',
    ['[email protected]'],
    fail_silently=False,
)

A função send_mail aceita cinco parâmetros. O primeiro é o assunto do email. O segundo é o corpo do email. O terceiro é o endereço de email do remetente. O quarto é uma lista de endereços de email dos destinatários. O último parâmetro, fail_silently, é um booleano. Se for definido como True, a função não lançará exceções se o email não puder ser enviado. Se for False, a função lançará exceções se o email não puder ser enviado.

Enviar Emails com HTML

Django também suporta o envio de emails com HTML. Para enviar um email com HTML, você pode usar a função EmailMessage. Aqui está um exemplo de como usar a função EmailMessage para enviar um email com HTML:

from django.core.mail import EmailMessage

email = EmailMessage(
    'Hello',
    'Body goes here',
    '[email protected]',
    ['[email protected]'],
    ['[email protected]'],
    reply_to=['[email protected]'],
    headers={'Message-ID': 'foo'},
)

email.send()

A função EmailMessage aceita vários parâmetros. Os primeiros quatro são os mesmos que a função send_mail. O quinto parâmetro é uma lista de endereços de email para BCC. O sexto parâmetro é uma lista de endereços de email para a resposta. O último parâmetro é um dicionário de cabeçalhos extras para o email.

Para adicionar HTML ao email, você pode usar o método content_subtype do objeto EmailMessage. Aqui está um exemplo:

email = EmailMessage('Hello', 'Body goes here', '[email protected]', ['[email protected]'])
email.content_subtype = "html"
email.send()

Espero que este capítulo tenha dado a você uma boa compreensão de como enviar emails com Django. No próximo capítulo, vamos explorar como integrar o Django com bancos de dados.

Ahora responde el ejercicio sobre el contenido:

Qual função Django é usada para enviar emails e quais são seus parâmetros?

¡Tienes razón! Felicitaciones, ahora pasa a la página siguiente.

¡Tú error! Inténtalo de nuevo.

Siguiente página del libro electrónico gratuito:

7013.12. Criação de um projeto Django: Integração com APIs

¡Obtén tu certificado para este curso gratis! descargando la aplicación Cursa y leyendo el libro electrónico allí. ¡Disponible en Google Play o App Store!

Disponible en Google Play Disponible en App Store

+ 6,5 millones
estudiantes

Certificado gratuito y
válido con código QR

48 mil ejercicios
gratis

Calificación de 4.8/5
en tiendas de aplicaciones

Cursos gratuitos de
vídeo, audio y texto.