13.11. Creando un proyecto Django: enviando correos electrónicos

Al crear un sistema con Python y Django, una de las características más útiles que puedes implementar es la capacidad de enviar correos electrónicos. Ya sea para notificar a los usuarios sobre actualizaciones, confirmar suscripciones o restablecer contraseñas, el envío de correos electrónicos es una herramienta esencial para cualquier aplicación web. En este capítulo, exploraremos cómo configurar Django para enviar correos electrónicos.

Configuración del servidor de correo electrónico

Para enviar correo electrónico con Django, necesita un servidor de correo SMTP. Django admite muchos servidores de correo como Gmail, SendGrid, Amazon SES y otros. Para los fines de este tutorial, usaremos Gmail.

Primero, debe configurar los ajustes de correo electrónico en su archivo settings.py. A continuación se muestra un ejemplo de cómo configurar Gmail:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = Verdadero
EMAIL_HOST_USER = 'tucorreo@gmail.com'
EMAIL_HOST_PASSWORD = 'tu contraseña'

Las configuraciones anteriores se explican por sí solas. EMAIL_HOST y EMAIL_PORT son la configuración del servidor SMTP de Gmail. EMAIL_USE_TLS está configurado en Verdadero porque Gmail usa TLS. EMAIL_HOST_USER y EMAIL_HOST_PASSWORD son su correo electrónico y contraseña de Gmail respectivamente.

Envío de correos electrónicos

Con la configuración de su servidor de correo electrónico configurada, ahora puede enviar correos electrónicos. Django proporciona una función llamada send_mail para enviar correos electrónicos. A continuación se muestra un ejemplo de cómo utilizar la función send_mail:

desde django.core.mail importar send_mail

enviar correo(
    'Asunto del email',
    'Cuerpo del correo electronico',
    'de@ejemplo.com',
    ['a@ejemplo.com'],
    fail_silfully=Falso,
)

La función send_mail acepta cinco parámetros. El primero es el asunto del correo electrónico. El segundo es el cuerpo del correo electrónico. El tercero es la dirección de correo electrónico del remitente. El cuarto es una lista de las direcciones de correo electrónico de los destinatarios. El último parámetro, fail_silfully, es booleano. Si se establece en Verdadero, la función no generará excepciones si no se puede enviar el correo electrónico. Si es falso, la función generará excepciones si no se puede enviar el correo electrónico.

Enviar correos electrónicos con HTML

Django también admite el envío de correos electrónicos HTML. Para enviar un correo electrónico con HTML, puede utilizar la función EmailMessage. A continuación se muestra un ejemplo de cómo utilizar la función EmailMessage para enviar un correo electrónico con HTML:

desde django.core.mail importar mensaje de correo electrónico

correo electrónico = mensaje de correo electrónico (
    'Hola',
    'El cuerpo va aquí',
    'de@ejemplo.com',
    ['a@ejemplo.com'],
    ['bcc@ejemplo.com'],
    respuesta_a=['otro@ejemplo.com'],
    encabezados = {'ID del mensaje': 'foo'},
)

Enviar correo electrónico()

La función EmailMessage acepta varios parámetros. Los primeros cuatro son iguales a la función send_mail. El quinto parámetro es una lista de direcciones de correo electrónico para CCO. El sexto parámetro es una lista de direcciones de correo electrónico para la respuesta. El último parámetro es un diccionario de encabezados adicionales para el correo electrónico.

Para agregar HTML al correo electrónico, puede utilizar el método content_subtype del objeto EmailMessage. Aquí tienes un ejemplo:

correo electrónico = EmailMessage('Hola', 'El cuerpo va aquí', 'de@ejemplo.com', ['a@ejemplo.com'])
correo electrónico.content_subtype="html"
Enviar correo electrónico()

Espero que este capítulo te haya dado una buena comprensión de cómo enviar correos electrónicos con Django. En el próximo capítulo, exploraremos cómo integrar Django con bases de datos.

Ahora responde el ejercicio sobre el contenido:

¿Qué función de Django se utiliza para enviar correos electrónicos y cuáles son sus parámetros?

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

¡Tú error! Inténtalo de nuevo.

Imagen del artículo Creación de un proyecto Django: integración con API

Siguiente página del libro electrónico gratuito:

70Creación de un proyecto Django: integración con API

2 minutos

¡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.