पर मेल अटैचमेंट प्राप्त करना मुझे एक ईमेल मल्टीपार्ट संदेश ऑब्जेक्ट मिला है, और मैं उस ईमेल संदेश में अनुलग्नक को पायथन फ़ाइल ऑब्जेक्ट में कनवर्ट करना चाहता हूं। क्या यह संभव है? यदि यह संभव है, तो पाइथन I में किस विधि या वर्ग को ऐसा कार्य करने में देखना चाहिए?पायथन फ़ाइल ऑब्जेक्ट
उत्तर
मैं वास्तव में समझ नहीं पा रहा हूं कि "ईमेल मल्टीपार्ट संदेश ऑब्जेक्ट" से आपका क्या मतलब है। क्या आपका मतलब email.message.Message
वर्ग से संबंधित एक वस्तु है?
यदि आपका मतलब है, तो यह सीधा है। मल्टीपार्ट संदेश पर, get_payload
विधि संदेश भागों की एक सूची लौटाती है (जिनमें से प्रत्येक स्वयं Message
ऑब्जेक्ट है)। आप इन हिस्सों पर पुन: प्रयास कर सकते हैं और उनकी गुणों की जांच कर सकते हैं: उदाहरण के लिए, get_content_type
विधि भाग के एमआईएमई प्रकार को लौटाती है, और get_filename
विधि भाग का फ़ाइल नाम (यदि कोई संदेश में निर्दिष्ट है) देता है। फिर जब आपको सही संदेश भाग मिल गया है, तो आप डीकोडेड सामग्री प्राप्त करने के लिए get_payload(decode=True)
पर कॉल कर सकते हैं।
>>> import email
>>> msg = email.message_from_file(open('message.txt'))
>>> len(msg.get_payload())
2
>>> attachment = msg.get_payload()[1]
>>> attachment.get_content_type()
'image/png'
>>> open('attachment.png', 'wb').write(attachment.get_payload(decode=True))
आप प्रोग्राम ई-मेल संदेशों के लिए आपको प्राप्त से संलग्नक निकालने रहे हैं, तो आप वायरस और ट्रोजन के खिलाफ सावधानी बरतने की चाह सकते हैं। विशेष रूप से, आपको शायद उन अनुलग्नकों को निकालना चाहिए जिनके एमआईएम प्रकार जिन्हें आप जानते हैं सुरक्षित हैं, और शायद आप अपना स्वयं का फ़ाइल नाम चुनना चाहते हैं, या कम से कम get_filename
के आउटपुट को स्वच्छ करना चाहते हैं।
यह बहुत अच्छा काम करता है। धन्यवाद। –
एचटीएमएल मेल में अक्सर पाद लेखों में छवियां होती हैं, जिन्हें अनुलग्नक के रूप में भी भेजा जाता है। सामग्री-विस्थापन को देखकर आप इन्हें "वास्तविक" अनुलग्नकों से अलग कर सकते हैं: इनलाइन छवियां "इनलाइन" से शुरू होती हैं, जबकि वास्तविक अनुलग्नक "अनुलग्नक" से शुरू होते हैं। सामग्री स्वभाव प्राप्त करने के लिए कोई विधि नहीं है, लेकिन आप part.get ('Content-disposition') को कॉल कर सकते हैं। Startwith ('attachment') यदि आप केवल वास्तविक अनुलग्नकों में रूचि रखते हैं। – jrial
यहाँ समाधान काम कर रहा है, संदेशों रूप IMAP सर्वर
self.imap.select()
typ, data = self.imap.uid('SEARCH', 'ALL')
msgs = data[0].split()
print "Found {0} msgs".format(len(msgs))
for uid in msgs:
typ, s = self.imap.uid('FETCH', uid, '(RFC822)')
mail = email.message_from_string(s[0][1])
print "From: {0}, Subject: {1}, Date: {2}\n".format(mail["From"], mail["Subject"], mail["Date"])
if mail.is_multipart():
print 'multipart'
for part in mail.walk():
ctype = part.get_content_type()
if ctype in ['image/jpeg', 'image/png']:
open(part.get_filename(), 'wb').write(part.get_payload(decode=True))
- 1. ऑब्जेक्ट पायथन सुझाव जैसे कस्टम फ़ाइल बनाना?
- 2. पायथन ऑब्जेक्ट दृढ़ता
- 3. पायथन ग्लाइड ग्लैडएक्सएमएल ऑब्जेक्ट
- 4. पायथन ऑब्जेक्ट सृजन
- 5. पायथन ऑब्जेक्ट रूपांतरण
- 6. पायथन 'सेट' ऑब्जेक्ट इंडेक्सिंग
- 7. पायथन - ग्रुपबी ऑब्जेक्ट
- 8. पायथन थ्रेडसेफ ऑब्जेक्ट कैश
- 9. पायथन मॉडल ऑब्जेक्ट सत्यापन
- 10. पायथन ऑब्जेक्ट @property
- 11. पायथन स्ट्रिंग.template ऑब्जेक्ट से स्ट्रिंग
- 12. पायथन: फ़ाइल
- 13. ग्राफिक्स ऑब्जेक्ट छवि फ़ाइल
- 14. त्रुटि C1854: ऑब्जेक्ट फ़ाइल
- 15. सी ++ साझा ऑब्जेक्ट फ़ाइल
- 16. पायथन। किसी ऑब्जेक्ट का आकार प्राप्त करें
- 17. पायथन जल्दी हैश म्यूटेबल ऑब्जेक्ट
- 18. पायथन सी-एपीआई ऑब्जेक्ट आवंटन
- 19. गैर-ऑब्जेक्ट पायथन स्मृति रिसाव
- 20. पायथन: जेनरेटर ऑब्जेक्ट पर गुण
- 21. पायथन ऑब्जेक्ट डेटाबेस की सूची
- 22. पायथन फ़ाइल संवाद
- 23. पायथन: एक "आयात फ़ाइल"
- 24. पायथन घुमावदार फ़ाइल हैंडलर
- 25. पायथन - फ़ाइल बनाम खुले
- 26. cx_freeze पायथन एकल फ़ाइल?
- 27. पायथन फ़ाइल पढ़ें + लिखें
- 28. पायथन फ़ाइल कैश
- 29. पायथन: सीएसवी फ़ाइल
- 30. फ़ाइल ऑब्जेक्ट को सिंक्रनाइज़ करें
अजगर पुस्तकालय के किस हिस्से आप अब तक पढ़ा है कर रहे हैं? क्या आपने पॉप या इमेप पुस्तकालयों को बिल्कुल देखा है? –
मैंने केवल ईमेल.मेसेज में देखा है। संदेश और mimetools.Message। ठीक है, मैं पॉप और इमेल में पढ़ूंगा और देख सकता हूं कि मैं इसके साथ क्या कर सकता हूं। –