MAPI प्रॉपर्टीज़ के साथ काम करना
PST फ़ोल्डर में MAPI आइटम प्रकार निर्धारित करें
एक PST फ़ाइल आमतौर पर विभिन्न प्रकार के डेटा रखती है, जैसे ईमेल संदेश, कैलेंडर इवेंट्स, संपर्क, और अधिक। यह MapiItemType Aspose.Email की क्लास आपको PST फ़ाइल के भीतर विभिन्न प्रकार के MAPI आइटम्स तक पहुंच और वर्गीकरण करने की अनुमति देती है। नीचे दिया गया कोड दर्शाता है कि PST फ़ोल्डर में MAPI आइटम के प्रकार को कैसे निर्धारित किया जाए:
import aspose.email as ae
import aspose.pycore as pycore
pst = ae.storage.pst.PersonalStorage.from_file("test.pst")
folder = pst.root_folder.get_sub_folder("Calendar")
for message_info in folder.enumerate_messages():
msg = pst.extract_message(message_info)
# Get the class type based on msg.supported_type
item_type = msg.supported_type
# Non-supported type. It cannot be accessed as appropriate item type.
if item_type == ae.mapi.MapiItemType.NONE:
print("Item type not supported")
# An email message.
elif item_type == ae.mapi.MapiItemType.MESSAGE:
# You can access to MapiMessage properties there.
# A subject for example
print(msg.subject)
# A contact item. Can be accessed as MapiContact.
elif item_type == ae.mapi.MapiItemType.CONTACT:
contact = pycore.cast(ae.mapi.MapiContact, msg.to_mapi_message_item())
# You can access to MapiContact properties there.
# A name_info.display_name for example.
print(contact.name_info.display_name)
# A calendar item. Can be accessed as MapiCalendar.
elif item_type == ae.mapi.MapiItemType.CALENDAR:
calendar = pycore.cast(ae.mapi.MapiCalendar, msg.to_mapi_message_item())
# You can access to MapiCalendar properties there.
# A location for example.
print(calendar.location)
# A distribution list. Can be accessed as MapiDistributionList.
elif item_type == ae.mapi.MapiItemType.DIST_LIST:
dlist = pycore.cast(ae.mapi.MapiDistributionList, msg.to_mapi_message_item())
# You can access to MapiDistributionList properties there
# A Journal entry. Can be accessed as MapiJournal.
elif item_type == ae.mapi.MapiItemType.JOURNAL:
journal = pycore.cast(ae.mapi.MapiJournal, msg.to_mapi_message_item())
# You can access to MapiJournal properties there
# A StickyNote. Can be accessed as MapiNote.
elif item_type == ae.mapi.MapiItemType.NOTE:
note = pycore.cast(ae.mapi.MapiNote, msg.to_mapi_message_item())
# You can access to MapiNote properties there
# A Task item. Can be accessed as MapiTask.
elif item_type == ae.mapi.MapiItemType.TASK:
task = pycore.cast(ae.mapi.MapiTask, msg.to_mapi_message_item())
# You can access to MapiTask properties there
MAPI प्रॉपर्टीज़ तक पहुंच और प्रबंधन
यह MapiProperty क्लास एक MAPI प्रॉपर्टी का प्रतिनिधित्व करती है, जिसमें शामिल है:
- Name: एक स्ट्रिंग जो प्रॉपर्टी के नाम को दर्शाती है।
- Tag: एक लंबा इंटीजर जो प्रॉपर्टी टैग को दर्शाता है।
- Data: एक बाइट एरे जो प्रॉपर्टी डेटा को दर्शाता है।
प्रॉपर्टी टैग का उपयोग करके MAPI प्रॉपर्टी प्राप्त करें
नीचे दिया गया कोड उदाहरण एक MAPI संदेश को लोड करता है, विषय और इंटरनेट कोड पेज जैसी प्रमुख प्रॉपर्टीज़ को प्राप्त करता है, और इन प्रॉपर्टीज़ की संभावित अनुपस्थिति को सुरक्षित रूप से हैंडल करता है। MAPI प्रॉपर्टीज़ प्राप्त करने के लिए:
- फ़ाइल से MAPI संदेश लोड करें उपयोग करके लोड विधि।
- उपयोग करें MapiPropertyTag क्लास जो MAPI संदेश से विशिष्ट प्रॉपर्टीज़ तक पहुंच प्रदान करती है, जैसे कि विषय और इंटरनेट कोड पेज।
- गायब प्रॉपर्टीज़ को हैंडल करें।
from aspose.email.mapi import MapiMessage, MapiPropertyTag
# Load from file
msg = MapiMessage.load("message.msg")
# Access the MapiPropertyTag.PR_SUBJECT property
prop = msg.properties[MapiPropertyTag.SUBJECT]
# If the property is not found, check the MapiPropertyTag.PR_SUBJECT_W (which is a // Unicode peer of the MapiPropertyTag.PR_SUBJECT)
if prop is None:
prop = msg.properties[MapiPropertyTag.SUBJECT_W]
# Cannot found
if prop is None:
print("No property found!")
# Get the property data as string
subject = prop.get_string()
print("Subject:" + subject)
# Read internet code page property
prop = msg.properties[MapiPropertyTag.INTERNET_CPID]
if prop is not None:
print("CodePage:" + str(prop.get_long()))
MAPI प्रॉपर्टीज़ सेट करें
निम्नलिखित कोड स्निपेट आपको दिखाता है कि MAPI प्रॉपर्टीज़ कैसे सेट करें।
नामित MAPI प्रॉपर्टीज़ पढ़ें
Aspose.Email MSG फ़ाइलों के साथ काम करने के लिए API का सेट प्रदान करता है, जिसमें नामित MAPI प्रॉपर्टीज़ का निष्कर्षण शामिल है।
MSG फ़ाइलों से नामित MAPI प्रॉपर्टीज़ पढ़ें
नामित MAPI प्रॉपर्टीज़ पढ़ने के लिए, आप उपयोग कर सकते हैं named_properties की प्रॉपर्टी MapiMessage class. निम्न कोड नमूना दिखाता है कि संदेश कैसे लोड करें, सभी नामित MAPI प्रॉपर्टीज़ प्राप्त करें, प्रत्येक प्रॉपर्टी पर इटरेट करके उसका मान जांचें:
import aspose.email as ae
msg = ae.mapi.MapiMessage.load("my.msg")
# Get all named MAPI properties
properties = msg.named_properties.values
# Read all properties in foreach loop
for prop in properties:
# Read any specific property
if prop.descriptor.canonical_name == "PidLidSideEffects":
print(f"{prop.descriptor.canonical_name} = {prop}")
if prop.descriptor.canonical_name == "PidLidInternetAccountName":
print(f"{prop.descriptor.canonical_name} = {prop}")
अटैचमेंट्स से नामित MAPI प्रॉपर्टीज़ पढ़ें
Aspose.Email अटैचमेंट की सभी नामित MAPI प्रॉपर्टीज़ को प्राप्त करना संभव बनाता है। निम्न कोड नमूना दिखाता है कि अटैचमेंट्स से नामित MAPI प्रॉपर्टीज़ कैसे पढ़ें:
import aspose.email as ae
msg = ae.mapi.MapiMessage.load("my.msg")
# Get all named MAPI properties
attach_properties = msg.attachments[0].named_properties.values
# Read all properties in foreach loop
for prop in attach_properties:
# Read any specific property
if prop.descriptor.name == "AttachmentOriginalUrl":
print(f"{prop.descriptor.name} = {prop.get_string()}")
if prop.descriptor.name == "AttachmentWasSavedToCloud":
print(f"{prop.descriptor.name} = {prop.get_boolean()}")
प्रॉपर्टी प्रबंधन
MSG फ़ाइलों और अटैचमेंट्स से प्रॉपर्टी हटाएँ
नीचे दिया गया कोड नमूना Outlook MSG संदेश को बॉडी कंटेंट और संलग्न संदेश फ़ाइल के साथ बनाने का प्रदर्शन करता है। यह यह भी दिखाता है कि बनाई गई संदेश से एक अटैचमेंट प्रॉपर्टी कैसे हटाएँ।
import aspose.email as ae
# create an MSG
msg = ae.mapi.MapiMessage("from@domain.com", "to@domain.com", "subject", "body")
msg.set_body_content("<html><body><h1>This is the body content</h1></body></html>", ae.mapi.BodyContentType.HTML)
# load message and add it to created MSG as attachment
attachment = ae.mapi.MapiMessage.load("attach.msg")
msg.attachments.add("Outlook2 Test subject.msg", attachment)
# count of attachment properties before removal
print(f"Before removal = {msg.attachments[0].properties.count}")
# Delete anyone attachment property
msg.attachments[0].remove_property(923467779)
# count of attachment properties after removal
print(f"After removal = {msg.attachments[0].properties.count}")
MSG को MIME संदेश में परिवर्तित करना
Aspose.Email API MSG फ़ाइल को MIME संदेश में परिवर्तित करने की क्षमता प्रदान करता है, उपयोग करके to_mail_message विधि।
संदेश रूपांतरण और लोडिंग के लिए टाइमआउट सेट करना
संदेश रूपांतरण के समय को मिलीसेकंड में सीमित करने के लिए (डिफ़ॉल्ट मान 3 सेकंड), timeout प्रॉपर्टी का MailConversionOptions class उपयोग किया जाता है।
यहाँ बताया गया है कि आप संदेश रूपांतरण और लोडिंग प्रक्रियाओं के लिए टाइमआउट कैसे सेट कर सकते हैं:
import aspose.email as ae
msg = ae.mapi.MapiMessage.load("my.msg")
options = ae.mapi.MailConversionOptions()
options.timeout = 5000
mailMessage = msg.to_mail_message(options)
संदेश रूपांतरण और लोडिंग प्रक्रियाओं के लिए टाइमआउट सेट करके, आप इन संचालन के अधिकतम चलने का समय नियंत्रित कर सकते हैं। टाइमआउट सेट करने के बाद, आप अपने संदेश रूपांतरण और लोडिंग प्रक्रियाओं को आगे बढ़ा सकते हैं।
Outlook MSG फ़ाइलों के लिए रंग श्रेणी सेट करें
कभी-कभी आपको विशेष महत्त्व वाले ईमेल को अलग पहचानने और दृश्य रूप से व्यवस्थित करने की आवश्यकता हो सकती है। लाइब्रेरी एक विशिष्ट रंग संदेश आइटम को आवंटित करके यह करने का तरीका प्रदान करती है। जब आप किसी आइटम के लिए रंग श्रेणी सेट करते हैं, तो यह आपको एक नज़र में संबंधित आइटम्स को आसानी से पहचानने और खोजने की सुविधा देता है। उपयोग करें FollowUpManager class संदेश के लिए रंग श्रेणी सेट करने के लिये, जैसा कि नीचे के कोड उदाहरण में दिखाया गया है:
import aspose.email as ae
msg = ae.mapi.MapiMessage.load("my.msg")
# Add Two categories
ae.mapi.FollowUpManager.add_category(msg, "Purple Category")
ae.mapi.FollowUpManager.add_category(msg, "Red Category")
# Retrieve the list of available categories
categories = ae.mapi.FollowUpManager.get_categories(msg)
# Remove the specified category and then Clear all categories
ae.mapi.FollowUpManager.remove_category(msg, "Red Category")
ae.mapi.FollowUpManager.clear_categories(msg)