
पायथन ईमेल पता और MIME पार्सिंग लाइब्रेरी
.. 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, Mailgun टीम द्वारा Python में लिखी गई एक ओपन सोर्स पार्सिंग लाइब्रेरी है।
Flanker में वर्तमान में एक पता पार्सिंग लाइब्रेरी (flanker.addresslib) के साथ-साथ एक
MIME पार्सिंग लाइब्रेरी (flanker.mime) शामिल है।
विस्तृत दस्तावेज़ उपयोगकर्ता मैनुअल <https://github.com/mailgun/flanker/blob/master/docs/User%20Manual.md>_ के साथ-साथ
API संदर्भ <https://github.com/mailgun/flanker/blob/master/docs/API%20Reference.md>_ में उपलब्ध है। एक त्वरित आरंभ मार्गदर्शिका नीचे दी गई है।
Flanker का व्यापक रूप से उत्पादन में Mailgun <www.mailgun.com>_ द्वारा उपयोग किया जाता है
Python 2.7 के साथ। वर्तमान उत्पादन संस्करण v0.8.5 है।
समुदाय से प्राप्त लोकप्रिय मांग के कारण Python 3 के लिए समर्थन v0.9.0 में जोड़ा गया था। हम घर में Python 3 के साथ Flanker का उपयोग नहीं कर रहे हैं। हम इतना जानते हैं कि परीक्षण Python 3.6 के साथ पास होते हैं, इसलिए इसे अपने जोखिम पर उपयोग करें। यदि आप कोई Python 3 विशिष्ट समस्या देखते हैं, तो बेझिझक रिपोर्ट करें।
आप flanker को pip के माध्यम से स्थापित कर सकते हैं या GitHub से रेपो क्लोन कर सकते हैं।
flanker के साथ काम शुरू करने से पहले आपको Python हेडर फ़ाइलों की आवश्यकता होगी, इसलिए उन्हें पहले स्थापित करें:
.. code-block:: bash
sudo apt-get install python-dev
sudo yum install python-devel
यदि आप pip का उपयोग कर रहे हैं, तो बस टाइप करें:
.. code-block:: bash
pip install flanker
यदि आप GitHub से क्लोन कर रहे हैं, तो आप टाइप कर सकते हैं:
.. code-block:: bash
git clone [email protected]:mailgun/flanker.git cd flanker pip install -e .
एकल मेलबॉक्स पार्स करने के लिए (डिस्प्ले नाम और ईमेल पता):
.. code-block:: py
from flanker.addresslib import address
address.parse('Foo [email protected]') Foo [email protected]
एक अमान्य पता None के रूप में लौटाया जाता है:
.. code-block:: py
from flanker.addresslib import address
print address.parse('@example.com') None
किसी एकल ईमेल पते को पार्स करने के लिए (बिना डिस्प्ले नाम):
.. code-block:: py
from flanker.addresslib import address
address.parse('[email protected]', addr_spec_only=True) [email protected]
एक पता सूची पार्स करने के लिए:
.. code-block:: py
from flanker.addresslib import address
address.parse_list(['[email protected], [email protected], @example.com']) [[email protected], [email protected]]
एक पता सूची पार्स करने और साथ ही एक टपल लौटाने के लिए जिसमें पार्स किए गए पते और अपार्स करने योग्य भाग होते हैं
.. 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']
सख्त मोड में एक पता सूची पार्स करने के लिए:
.. code-block:: py
from flanker.addresslib import address
address.parse_list(['[email protected], [email protected], @example.com'], strict=True) [[email protected], [email protected]]
किसी ईमेल पते को मान्य करने के लिए (पार्स के साथ-साथ DNS, MX अस्तित्व, और ESP व्याकरण जाँच):
.. code-block:: py
from flanker.addresslib import address
address.validate_address('[email protected]') [email protected]
एक पता सूची को मान्य करने के लिए:
.. 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'])
निम्नलिखित उदाहरणों के लिए, message_string को निम्नलिखित 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--
MIME संदेश पार्स करने के लिए:
.. code-block:: py
from flanker import mime
msg = mime.from_string(message_string)
MIME संदेश हेडर (हेडर के साथ यूनिकोड मल्टी-वैल्यू डिक्शनरी):
.. 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')]
विधेय के साथ उपयोगी content_type सदस्य:
.. 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
किसी संदेश का डिकोड किया गया बॉडी:
.. 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