{}const=>[]async()letfn</>var
PythonDesarrollo

Cómo enviar cartas bonitas en proyectos Python

Creamos plantillas de correo electrónico con HTML y CSS: instrucciones, plantilla y código para enviar.

К

Kodik

Autor

3 min de lectura

Enviar cartas bonitas es una parte importante de cualquier aplicación moderna. Ya sea un registro, una notificación o un boletín, un simple text/plain ya no evoca emociones. Pero los correos electrónicos en HTML son marketing de verdad 💥

En este artículo, analizaremos cómo crear y usar plantillas de correo electrónico con HTML y CSS dentro de un proyecto Python. ¡Es fácil y muy útil!

🔧 ¿Por qué se necesitan plantillas HTML para los correos electrónicos?

  • 📌 Ordenar la estructura de la carta

  • 🖼 Añadir estilos, botones, imágenes

  • 👀 Haz que el correo electrónico sea visualmente atractivo

  • 📱 Adaptar para dispositivos móviles

🔥 100.000+ estudiantes ya están con nosotros

¿Cansado de leer teoría?
¡Hora de programar!

Kodik — una app donde aprendes a programar con práctica. Mentor IA, lecciones interactivas, proyectos reales.

🤖 IA 24/7
🎓 Certificados
💰 Gratis
🚀 Empezar
Se unieron hoy

🛠️ ¿Qué vamos a utilizar?

  • smtplib — para enviar correos electrónicos

  • email.message.EmailMessage — para la formación de la carta

  • Jinja2 — para generar HTML con variables

  • HTML + встроенный CSS — para el diseño

📁 Estructura del proyecto

email_project/
├── main.py
├── templates/
│   └── welcome.html

🧠 Paso 1: Plantilla HTML del correo (templates/welcome.html)

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <style>
    body { font-family: Arial, sans-serif; background-color: #f9f9f9; padding: 20px; }
    .container { background: white; padding: 30px; border-radius: 10px; max-width: 600px; margin: auto; }
    h1 { color: #333; }
    p { color: #555; }
    .button { background-color: #007bff; color: white; padding: 10px 20px; text-decoration: none; border-radius: 5px; }
  </style>
</head>
<body>
  <div class="container">
    <h1>Привет, {{ name }}!</h1>
    <p>Спасибо за регистрацию. Добро пожаловать в наш проект!</p>
    <a href="{{ link }}" class="button">Подтвердить email</a>
  </div>
</body>
</html>

🧪 Paso 2: Generación de la carta en main.py

import smtplib
from email.message import EmailMessage
from jinja2 import Environment, FileSystemLoader

env = Environment(loader=FileSystemLoader('templates'))
template = env.get_template('welcome.html')
html_content = template.render(name="Code", link="https://itcodik.com/confirm")

msg = EmailMessage()
msg['Subject'] = 'Welcome!'
msg['From'] = 'noreply@example.com'
msg['To'] = 'user@example.com'
msg.set_content("You have a new email")
msg.add_alternative(html_content, subtype='html')

with smtplib.SMTP_SSL('smtp.gmail.com', 465) as smtp:
    smtp.login('your_email@gmail.com', 'your_password')
    smtp.send_message(msg)

Importante: nunca codifique la contraseña, use variables de entorno o .env

📌 Consejos para el diseño de cartas

Qué tener en cuenta

¿Por qué es importante?

✅ Estilos en línea

Los correos electrónicos cortan <style>

✅ Estructura simple

Mejor <table> para la fiabilidad

❌ No usar JS

No funciona en los correos electrónicos

✅ Imágenes a través de URL

No adjuntar como archivos innecesarios

✅ Probar en Gmail, Outlook

Diferentes motores de visualización

📤 Ejemplos de uso

  • Registro: correo electrónico de confirmación

  • Recuperación de contraseña

  • Boletín de noticias

  • Notificación de pedido

  • Carta de apoyo

👀 ¿Cómo probar un correo electrónico?

Puedes guardar el archivo HTML localmente:

with open("preview.html", "w", encoding="utf-8") as f:
    f.write(html_content)

🧩 Dónde es útil

  • En proyectos Flask (flask-mail)

  • En Django (EmailMultiAlternatives)

  • En FastAPI a través de bibliotecas SMTP asíncronas

  • En bots de servidor, notificaciones, integraciones de CRM

🧠 Conclusión

¡Crear correos electrónicos HTML en Python es fácil! Lo principal es una plantilla, un poco de estilo y un envío ordenado.

Si quieres experimentar con los correos y la generación automática de correos electrónicos, en la aplicación Kodik encontrarás cursos paso a paso, plantillas y apoyo de la comunidad. Entra o escribe a nuestro chat de Telegram ✌️

💬 ¿Quieres una plantilla de correo electrónico con diseño adaptable o integración con Mailgun / SendGrid? ¡Escríbenos y lo haremos!

🎯Deja de postergar

¿Te gustó el artículo?
¡Hora de practicar!

En Kodik no solo lees — escribes código de inmediato. Teoría + práctica = habilidades reales.

Práctica instantánea
🧠IA explica código
🏆Certificado

Sin registro • Sin tarjeta