Este script de Python permite generar las firmas para el correo siguiendo un archivo de configuración correspondiente a la entidad para la que es la firma (que incluye cosas como fuentes y colores) y otro archivo con los datos de las personas para las que generar la firma.
Aquí también se guardarán todas las firmas HTML que vaya haciendo para los correos electrónicos, principalmente para:
- Delegación de Estudiantes de la Facultad de Ciencias (DEFC)
- Delegación General de Estudiantes (DGE)
- Asociación de Estudiantes de Matemáticas y Estadística de la UGR (AMAT)
- Coordinadora de Representantes de Estudiantes de Universidades Públicas (CREUP)
- XXVI Encuentro Nacional de Estudiantes de Matemáticas (ENEM)
Las firmas partieron de una base que supongo que será de @jesusjmma y, actualmente, utilizan iconos de Tabler Icons
A continuación hay unas capturas de cómo se deberían de ver las firmas.
Cuando los iconos cargan, la firma se debería de ver así:
Y cuando no cargan, así:
Cuando los iconos cargan, la firma se debería de ver así:
Y cuando no cargan, así:
Cuando los iconos cargan, la firma se debería de ver así:
Y cuando no cargan, así:
Cuando los iconos cargan, la firma se debería de ver así:
Y cuando no cargan, así:
Cuando los iconos cargan, la firma se debería de ver así:
Y cuando no cargan, así:
Important
Estas instrucciones se revisaron por última vez el 3 de febrero de 2025, es posible que ya no sirvan.
Simplemente hay que irse a la configuración de la cuenta, marcar la casilla de utilizar un archivo como firma y seleccionar el archivo de firma descargado:
Primero hay que abrir en el navegador el archivo HTML de la firma, seleccionarlo todo con Ctrl + A y copiarlo con Ctrl + C.
En otra ventana con Gmail, hay que irse a los ajustes, ver todos los ajustes y, en la pestaña «General», al apartado de «Firma». Se crea una firma nueva y, en el campo de texto, se pega la firma con Ctrl + V.
No olvidar tampoco cambiar los «Valores predeterminados de firma» a la firma recién creada para que aparezca y guardar los cambios con el botón del final de la página.
El archivo de firma es un HTML y tiene la siguiente estructura:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title></title>
</head>
<body>
<div>...</div>
</body>
</html>
Pues para webmail recomiendo solo copiar la parte de
<div>...</div>
Y pegarla en el apartado de configuración de Webmail, en «Identidades», dándole al botón que hay más a la derecha que parece < >
. Este botón es para editar la firma como HTML. Se abrirá una ventana donde hay que pegar el código copiado, sustituyendo todo lo que hubiera antes.
¿Por qué la recomendación de copiar solo esa parte de la firma HTML?
Simplemente porque pegando todo el contenido del archivo se pone un espacio en blanco al principio de la firma y es molesto eliminarlo manualmente.
Para generar firmas, primero hay que clonar o descargar este repositorio y tener instalado uv.
Lo primero que debes hacer es asegurarte de que tienes definida la configuración del tipo de firma en el archivo signatures.json
. El archivo debe de seguir la siguiente estructura:
[
{
"id": "",
"template": "",
"output_path": "",
"main_font": "",
"name_font": "",
"name_image": "",
"color": "",
"organization": "",
"organization_extra": "",
"phone": "",
"phone_country_code": "",
"internal_phone": "",
"opt_mail": "",
"max_width": 0,
"links": [
{
"url": "",
"image": "",
"alt": ""
}
],
"extra_img": {
"url": "",
"alt": ""
},
"footer_address": "",
"footer_text": ""
}
]
Donde todas son obligatorias salvo las que se especifican como opcionales y significan:
id
es el nombre de la firma que se mostrará a la hora de seleccionarla.template
es el nombre de la plantilla a usar dentro de la carpetatemplates
.output_path
es el nombre de la carpeta en la que se generarán este tipo de firmas.main_font
es la fuente de texto principal de la firma.name_font
es la fuente de texto del nombre de la persona.name_image
es el enlace a la imagen al lado del nombre.color
es el código hexadecimal del color que usa la firma.organization
es el nombre de la entidad.organization_extra
(OPCIONAL) es por si la entidad pertenece a otra.phone
(OPCIONAL) es el número de teléfono (sin el código internacional) y se puede escribir con espacios.phone_country_code
(OPCIONAL) es el código internacional del teléfono con el +.internal_phone
(OPCIONAL) es por si hay un número de teléfono interno.opt_mail
(OPCIONAL) es por si no hay número de teléfono y se quiere mostrar un segundo correo genérico.max_width
(OPCIONAL) es por si se quiere limitar la longitud horizontal máxima de la firma para que si el nombre de la organización es demasiado largo se parta en varias líneas.links
(OPCIONAL) es la lista de enlaces incluídos en la firma donde cada enlace tiene que ser un objeto con la URLurl
, el enlace a su imagen,image
y el texto (o emoji) a mostrar si la imagen no carga,alt
.sponsor_text
(OPCIONAL) es el texto que aparecerá justo encima de las imágenes de los colaboradores.sponsors
(OPCIONAL) es una lista de colaboradores con la imagen, el enlace y un texto alternativo. Además, se puede indicar el ancho y alto.footer_address
(OPCIONAL) es una dirección postal para incluir al final de la firma.footer_text
(OPCIONAL) es un texto para incluir al final de la firma, tras la dirección postal, si la hay.
Una vez esté la configuración definida hay que crear la lista de firmas a generar, que es un archivo CSV con el nombre que se quiera (signatures_list.csv
por defecto) que debe seguir la siguiente estructura:
- La primera fila son columnas, que pueden estar tanto en mayúscula como en minúscula, dentro de las que deben estar las siguientes:
["name", "position", "mail"]
- También se pueden incluir las siguientes columnas que, en caso de tener algo, sustituirán a lo que haya especificado en la configuración general de la firma. Se puede escribir
None
en la fila si se quiere eliminar para esa firma concreta un valor de configuración por defecto de los que eran opcionales.
["output", "phone", "phone_country_code", "internal_phone", "opt_mail", "organization_extra", "main_font", "name_font", "max_width", "name_image"]
Es recomendable añadir la columna output
para especificar el nombre del archivo en el que guardar la firma.
El resto de filas del CSV son los datos correspondientes a cada columna, siendo cada fila una firma a generar con dichos datos.
Finalmente se pueden generar las firmas con uv run main.py
.
Las pruebas no han sido muy exhaustivas, pero la firma en algunos sitios va bien :green*circle:, regulinchi *(se ve bien en general pero puede fallar en algún detalle)_ 🟡 y mal 🔴. Esta es la lista:
🟢 Webmail
🟢 Thunderbird
🟢 Thunderbird móvil
🟡 Outlook web
🟡 Outlook móvil
🟡 Gmail web
🟡 Gmail móvil
🔴 Canary Mail
- Al comprobar el CSV solo comprueba los nombres de las columnas, permitiendo que haya filas en las que una columna obligatoria esté vacía.