Automatizar envio de avisos de pagos por email con python

Hola que tal? Soy un user nuevo

Explico la situacion.
Si bien aun no investigue mucho capaz aca me pueden dar una pauta o una orientacion y ahorrarme tiempo/dolares de cabeza

Tengo 2 archivos
Un archivo Word con todos los avisos de pago teniendo como encabezado del documento

  • Numero de aviso de pago:
  • Alumno : nombre y apellido
  • Sector: (el curso)
  • Periodo: (Agosto/20) por ejempo

Un archivo excel con los emails de los padres de cada alumno (que reciben el aviso de pago) con las siguientes columnas

  • Apellido
  • Nombre
  • Email
  • Si tiene hermano o no

Lamentablemente hacen el envio de los recibos A MANO 359 VECES (359 alumnos)
0- Entran redactan el email
1- Adjuntan el aviso de pago
2- Envian al email

Solucion:
Entonces queria ver si podia hacer un script en python para poder resolverlo y asi ahorrar tiempo a la gente de adm

Se me ocurre que el algoritmo deberia
Abrir el archivo word , extraer el encabezado. Cruzarlo con el excel , crear el email y enviarlo

Por ahora lo que encontre es fijarme en este libro como guia y despues ir viendo
https://automatetheboringstuff.com/

Si bien tengo exp pero muy limitada en python y mas usando cositas financieras.
Y capaz es una tarea muy avanzada pero bueno es un caso practico donde se puede resolver y ahorrar tiempo

Ejemplos de la estructura del word y el excel , para poder mostrar la estructura del archivo con datos randoms claro de ejemplo

Ejemplo del word

Ejemplo del excel:
https://docs.google.com/spreadsheets/d/1n4sjj9skacVb2Rf1m_fKvktmfc2WflzKZ1-LWSkFD_I/edit?usp=sharing

Hola, bienvenido a la comunidad!

Me gusta mucho ese libro porque te muestra la utilidad de un lenguaje de programación en tareas simples pero cotidianas. Creo que es una gran forma de mostrarle los beneficios de la programación a gente que no conoce y también de adentrarse en el mundo de programación.

1. Abrir el archivo word y extraer el encabezado.

Este ejemplo me parece el más útil considerando que no encontré muchas más librerías de Python para archivos docx.

Si con el encabezado te referís a esto

Número: XXXX (aviso de pago)
Alumno : Pepito Fulanito
Sector: curso
Período: mes /año

Te puede servir usar diccionarios de Python

2. Cruzarlo con el excel

No estoy seguro de que querés hacer acá pero entiendo que necesitas leer la información del excel y cruzarla con la información del word. Deberías hacer lo mismo que con el Word.
Este artículo parece bastante completo para Excel, pero creo que con los ejemplos del libro alcanza.

3. Crear el email (Artículo)

Sobre los mails, el problema más común es el de darles un buen formato y que se vea bien en los diferentes clientes como Gmail, Outlook, etc.

No probé el servicio Sendgrid pero te puede ahorrar mucho tiempo y tiene una versión Free de hasta 100 mails por día.

:warning: Si necesitas trabajar con documentos y sheets de Google posiblemente tengas que usar otras librerías, a menos que descargues los archivos a formato de Office.

Cualquier cosa podes preguntar por acá nuevamente o por el canal de Telegram.

Espero no te agarre el cepo jaja

Saludos!

Te recomendaría, si puedes, manejar todo en excel y despues trabajar con alguna libreria que tabaje con excel como Pandas. https://datatofish.com/read_excel/
ya estando en pandas puedes enviar correo con una libreria como smtplib y te recomiendo usar una plantilla html de correo y editarla con jinja2
https://gist.github.com/perfecto25/4b79b960eb58dc1f6025b56394b51cc1

Saludos

Te recomendaría manejar todos los datos primero desde el excel. Es decir los datos de Sector, Curso, Mes, Año, no tenerlos en el Word, sino primero que los carguen en el Excel.

En Word o Open Office podés tener aparte una plantilla con el texto y algún tag para los lugares donde querés reemplazar el texto. Pero tendrías una sola plantilla de esa.

Cuando corres el programa debería:

  • leer el excel
  • tomar la plantilla y reemplazar los campos y guardar la salida a un nuevo archivo por cada aviso.
  • enviarlo por email.

Te convendría más así que estar abriendo el word y leer de ahí los datos de sector, mes, etc.

Avisá como te fue.

Éxitos