Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
flanker — Librería Python de análisis de direcciones de correo electrónico y MIME | Kitploit
Herramientas/GitHubGitHub/mailgun/flanker
Utilidades de Propósito GeneralScripting y AutomatizaciónUtilidades y Frameworks
GitHubmailgun/flanker

flanker

Librería Python de análisis de direcciones de correo electrónico y MIME

Ver RepositorioSitio web
1.6k214hace 4 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Flanker - análisis de direcciones de correo electrónico y MIME para Python

.. image:: https://travis-ci.org/mailgun/flanker.svg?branch=master :target: https://travis-ci.org/mailgun/flanker

.. image:: https://coveralls.io/repos/github/mailgun/flanker/badge.svg?branch=master :target: https://coveralls.io/github/mailgun/flanker?branch=master

Flanker es una librería de análisis (parsing) de código abierto escrita en Python por el equipo de Mailgun. Flanker actualmente consta de una librería de análisis de direcciones (flanker.addresslib) así como de una librería de análisis MIME (flanker.mime).

La documentación detallada se proporciona en el Manual de Usuario <https://github.com/mailgun/flanker/blob/master/docs/User%20Manual.md>_ así como en la Referencia de API <https://github.com/mailgun/flanker/blob/master/docs/API%20Reference.md>_. A continuación se incluye una Guía de Inicio Rápido.

Versiones de Python

Flanker es utilizado ampliamente por Mailgun <www.mailgun.com>_ en producción con Python 2.7. La versión de producción actual es v0.8.5.

El soporte para Python 3 se añadió en v0.9.0 por petición popular de la comunidad. No utilizamos Flanker con Python 3 internamente. Todo lo que sabemos es que las pruebas pasan con Python 3.6, así que úsalo bajo tu propio riesgo. No dudes en informar de problemas específicos de Python 3 si ves alguno.

Instalación

Puedes instalar flanker mediante pip o clonar el repositorio desde GitHub.

Necesitarás los archivos de cabecera de Python antes de empezar a trabajar con flanker, así que instálalos primero:

.. code-block:: bash

ubuntu

sudo apt-get install python-dev

fedora

sudo yum install python-devel

Si estás usando pip, simplemente escribe:

.. code-block:: bash

pip install flanker

Si clonas desde GitHub, puedes escribir:

.. code-block:: bash

git clone [email protected]:mailgun/flanker.git cd flanker pip install -e .

Análisis de direcciones

Para analizar un único buzón (nombre para mostrar así como dirección de correo electrónico):

.. code-block:: py

from flanker.addresslib import address

address.parse('Foo [email protected]') Foo [email protected]

Una dirección no válida se devuelve como None:

.. code-block:: py

from flanker.addresslib import address

print address.parse('@example.com') None

Para analizar una única dirección de correo electrónico (sin nombre para mostrar):

.. code-block:: py

from flanker.addresslib import address

address.parse('[email protected]', addr_spec_only=True) [email protected]

Para analizar una lista de direcciones:

.. code-block:: py

from flanker.addresslib import address

address.parse_list(['[email protected], [email protected], @example.com']) [[email protected], [email protected]]

Para analizar una lista de direcciones y además devolver una tupla que contenga las direcciones analizadas y las partes no analizables

.. code-block:: py

from flanker.addresslib import address

address.parse_list(['[email protected], [email protected], @example.com'], as_tuple=True) [[email protected], [email protected]], ['@example.com']

Para analizar una lista de direcciones en modo estricto:

.. code-block:: py

from flanker.addresslib import address

address.parse_list(['[email protected], [email protected], @example.com'], strict=True) [[email protected], [email protected]]

Para validar una dirección de correo electrónico (análisis además de comprobaciones de DNS, existencia de MX y gramática del ESP):

.. code-block:: py

from flanker.addresslib import address

address.validate_address('[email protected]') [email protected]

Para validar una lista de direcciones:

.. code-block:: py

from flanker.addresslib import address

address.validate_list(['[email protected], [email protected], @mailgun.com'], as_tuple=True) ([[email protected], [email protected]], ['@mailgun.com'])

Análisis MIME

Para los siguientes ejemplos, message_string se establecerá en el siguiente mensaje MIME:

::

MIME-Version: 1.0 Content-Type: multipart/alternative; boundary=001a11c1d71697c7f004e6856996 From: Bob [email protected] To: Alice [email protected] Subject: hello, world Date: Mon, 16 Sep 2013 12:43:03 -0700

--001a11c1d71697c7f004e6856996 Content-Type: text/plain; charset=us-ascii

Hello, Alice

--001a11c1d71697c7f004e6856996 Content-Type: text/html; charset=us-ascii

Hello, Alice

--001a11c1d71697c7f004e6856996--

Para analizar un mensaje MIME:

.. code-block:: py

from flanker import mime

msg = mime.from_string(message_string)

Cabeceras del mensaje MIME (diccionario unicode de valores múltiples con cabeceras):

.. code-block:: py

from flanker import mime

msg = mime.from_string(message_string) msg.headers.items() [('Mime-Version', '1.0'), ('Content-Type', ('multipart/alternative', {'boundary': u'001a11c1d71697c7f004e6856996'})), ('From', 'Bob [email protected]'), ('To', 'Alice [email protected]'), ('Subject', 'hello, world'), ('Date', 'Mon, 16 Sep 2013 12:43:03 -0700')]

Miembro content_type útil con predicados:

.. code-block:: py

from flanker import mime msg = mime.from_string(message_string)

msg.content_type.is_multipart() True

msg.content_type.is_singlepart() False

msg.content_type.is_message_container() False

Cuerpo decodificado de un mensaje:

.. code-block:: py

from flanker import mime msg = mime.from_string(message_string)

None because message is multipart

print msg.body None

for part in msg.parts: print 'Content-Type: {} Body: {}'.format(part, part.body)

Content-Type: (text/plain) Body: Hello, Alice Content-Type: (text/html) Body:

Hello, Alice

None because no enclosed messages exist

print msg.enclosed None

Descargar herramienta