Ir al contenido principal

Correos electrónicos - Validar DKIM firma electrónica

Por la presente se muestran dos sitios web que permiten validar la firma electrónica DKIM del código fuente (encabezado y cuerpo) de un correo electrónico.

https://www.appmaildev.com/site/testfile/dkim?lang=en 

https://spamcheck.postmarkapp.com/

Copiando el texto del correo electrónico y pegándolo en las casillas destinadas a tal fin es posible efectuar el proceso de verificación de firma electrónica. Nota: En ocasiones correos electrónicos antiguos podrían no verificar este proceso. Así como proveedores de correo como Hotmail (Outlook) se encargan de modificar el encabezado del cuerpo de manera tal que el proceso no puede verificar la firma electrónica a pesar de que la misma se encuentre correctamente contenida en el mismo.

El segundo de los links provee una API para verificación de correos electrónicos de manera masiva. A continuación se muestran los pasos a seguir para utilizar dicha API en el entorno de desarrollo Pycharm. Pycharm es uno de los IDE más utilizados para programar Python.

Para configurar Pycharm de manera tal que utilice Spamcheck:

1. File > Settings (o bien Ctrl + Alt + S)

2. Project: NombreDelProyecto (Desplegar opción, flecha para abajo)

3. Python Interpreter. En el panel de la derecha, abajo aparecen los paquetes instalados. 

4. Oprimir el botón [ + ] y buscar el paquete Spamcheck del autor Tesorio e instalarlo.

Colocar los correos .eml en una carpeta. Modificar la variable path indicándole la carpeta donde fueron ubicados los correos electrónicos y ejecutar el script.


import spamcheck
import os

path = "/media/andres/_UltimosPeritajes/__Tools/ProyectoPython/Emails"
os.chdir(path)
# iterate through all file
for file in os.listdir():
# Check whether file is in text format or not
if file.endswith(".eml"):
file_path = f"{path}\{file}"
with open(file, 'r') as f:
your_email_content = f.read()
result = spamcheck.check(your_email_content, report=True)
print("Archivo: " + file_path + "\n")
# score = result['score']
report = result['report']
if (report.find("DKIM_SIGNED") > -1):
print("DKIM_SIGNED: Message has a DKIM or DK signature, not necessarily valid")
if (report.find("DKIM_VALID_AU") > -1):
print("DKIM_VALID_AU: Message has a valid DKIM or DK signature from author's domain")
if (report.find("DKIM_VALID ") > -1):
print("DKIM_VALID: Message has at least one valid DKIM or DK signature")
print("\n")

print("Fin")

Comentarios