Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
flanker — Libreria Python per il parsing di indirizzi email e MIME | Kitploit
Strumenti/GitHubGitHub/mailgun/flanker
Utilità GenericheScripting e AutomazioneUtilità e Framework
GitHubmailgun/flanker

flanker

Libreria Python per il parsing di indirizzi email e MIME

Vedi RepositorySito web
1.6k2144 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Flanker - email address and MIME parsing for 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 è una libreria di parsing open source scritta in Python dal team di Mailgun. Flanker attualmente consiste in una libreria di parsing degli indirizzi (flanker.addresslib) e in una libreria di parsing MIME (flanker.mime).

La documentazione dettagliata è fornita nel Manuale utente <https://github.com/mailgun/flanker/blob/master/docs/User%20Manual.md>_ e nel Riferimento API <https://github.com/mailgun/flanker/blob/master/docs/API%20Reference.md>_. Di seguito è fornita una Guida rapida.

Versioni di Python

Flanker è ampiamente utilizzato da Mailgun <www.mailgun.com>_ in produzione con Python 2.7. La versione di produzione attuale è la v0.8.5.

Il supporto per Python 3 è stato aggiunto nella v0.9.0 su richiesta popolare della comunità. Non usiamo Flanker con Python 3 internamente. Tutto ciò che sappiamo è che i test passano con Python 3.6, quindi usalo a tuo rischio. Sentiti libero di segnalare eventuali problemi specifici di Python 3 se ne incontri.

Installazione

Puoi installare flanker tramite pip o clonare il repository da GitHub.

Avrai bisogno dei file header di Python prima di iniziare a lavorare con flanker, quindi installali prima:

.. code-block:: bash

ubuntu

sudo apt-get install python-dev

fedora

sudo yum install python-devel

Se stai usando pip, digita semplicemente:

.. code-block:: bash

pip install flanker

Se stai clonando da GitHub, puoi digitare:

.. code-block:: bash

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

Parsing degli indirizzi

Per fare il parsing di una singola casella di posta (nome visualizzato e indirizzo email):

.. code-block:: py

from flanker.addresslib import address

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

Un indirizzo non valido viene restituito come None:

.. code-block:: py

from flanker.addresslib import address

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

Per fare il parsing di un singolo indirizzo email (senza nome visualizzato):

.. code-block:: py

from flanker.addresslib import address

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

Per fare il parsing di una lista di indirizzi:

.. code-block:: py

from flanker.addresslib import address

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

Per fare il parsing di una lista di indirizzi e restituire anche una tupla contenente gli indirizzi parsati e le parti non parsabili:

.. 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']

Per fare il parsing di una lista di indirizzi in modalità strict:

.. code-block:: py

from flanker.addresslib import address

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

Per validare un indirizzo email (parsing e controlli DNS, esistenza MX e grammatica ESP):

.. code-block:: py

from flanker.addresslib import address

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

Per validare una lista di indirizzi:

.. 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'])

Parsing MIME

Per i seguenti esempi, message_string sarà impostato sul seguente messaggio 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--

Per fare il parsing di un messaggio MIME:

.. code-block:: py

from flanker import mime

msg = mime.from_string(message_string)

Header del messaggio MIME (dizionario unicode multi-valore con gli header):

.. 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')]

Membro content_type utile con i predicati:

.. 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

Corpo decodificato di un messaggio:

.. 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

Scarica lo strumento