Outlook कैलेंडर आइटम्स का प्रबंधन
यह MapiCalendar Aspose.Email लाइब्रेरी में क्लास विभिन्न मेथड्स और एट्रीब्यूट्स प्रदान करती है जो कैलेंडर आइटम्स को कॉन्फ़िगर और मैनिप्युलेट करने में मदद करती हैं। यह Outlook कैलेंडर आइटम्स के प्रभावी प्रबंधन की सुविधा देता है, जो उत्पादकता और संगठन को बढ़ाता है। नीचे उन सेक्शन का विवरण दिया गया है जो आपको कैलेंडर आइटम्स के प्रबंधन के विभिन्न पहलुओं से परिचित कराएंगे।
कैलेंडर आइटम बनाना और सेव करना
कैलेंडर आइटम्स को बनाएं और सहेजें
निम्नलिखित कोड स्निपेट यह दर्शाता है कि कैलेंडर आइटम को ICS फ़ॉर्मेट में कैसे बनाया और सहेजा जाए:
- उस पथ को निर्धारित करें जहाँ आपका कैलेंडर फ़ाइल संग्रहीत होगी।
- एक नया इनिशियलाइज़ करके अपॉइंटमेंट बनाएं। MapiCalendar ऑब्जेक्ट जिसमें स्थान, विषय, विवरण, आरंभ और समाप्ति समय जैसी विशिष्ट विवरण होते हैं।
- निर्धारित डायरेक्टरी में बनायी गई अपॉइंटमेंट को एक ICS फ़ाइल के रूप में सहेजें।
import aspose.email as ae
from datetime import datetime
data_dir = "path/to/data/directory"
# Create the appointment
calendar = ae.mapi.MapiCalendar(
"LAKE ARGYLE WA 6743",
"Appointment",
"This is a very important meeting :)",
datetime(2012, 4, 1),
datetime(2012, 5, 1))
calendar.save(data_dir + "CalendarItem_out.ics", ae.calendar.AppointmentSaveFormat.ICS)
कैलेंडर आइटम्स को MSG के रूप में सहेजें
निम्नलिखित कोड स्निपेट दिखाता है कि कैलेंडर आइटम को MSG के रूप में कैसे सहेजा जाए:
MapiCalendar से ICS रूपांतरण के लिए प्रोडक्ट ID सेट करें
Aspose.Email लाइब्रेरी आपको एक MapiCalendar (कैलेंडर आइटम) को विशिष्ट विकल्पों के साथ एक ICS (iCalendar) फ़ाइल में सहेजने की अनुमति देती है। नीचे दिया गया प्रॉपर्टीज़ यह आपको कैलेंडर आइटम से जुड़े मूल तिथि और समय स्टैम्प को बरकरार रखने और ICS फ़ाइल में प्रोडक्ट आइडेंटिफ़ायर सेट करने की अनुमति देगा, उदाहरण के लिए "Foo Ltd" के रूप में:
- ics_save_options.keep_original_date_time_stamp
- ics_save_options.product_identifier
प्रोडक्ट आइडेंटिफ़ायर एक फ़ील्ड है जो उस सॉफ़्टवेयर या सेवा को पहचानता है जिसने ICS फ़ाइल उत्पन्न किया।
यहां एक कोड उदाहरण दिया गया है जो MapiCalendar को ICS में सहेजते समय प्रोडक्ट ID सेट करने की अनुमति देता है:
import aspose.email as ae
from datetime import datetime
mapi_calendar = ae.mapi.MapiCalendar(
"LAKE ARGYLE WA 6743",
"Appointment",
"This is a very important meeting :)",
datetime(2024, 4, 1),
datetime(2024, 4, 2))
ics_save_options = ae.mapi.MapiCalendarIcsSaveOptions()
ics_save_options.keep_original_date_time_stamp = True
ics_save_options.product_identifier = "Foo Ltd"
mapi_calendar.save("my.ics", ics_save_options)
कुल कैलेंडर इवेंट्स की गिनती करें
यह CalendarReader क्लास एक निर्दिष्ट फ़ाइल से कैलेंडर डेटा पढ़ने और विश्लेषण करने की कार्यक्षमता प्रदान करती है। CalendarReader ऑब्जेक्ट को इनिशियलाइज़ करके, आप इवेंट्स की कुल संख्या, कैलेंडर संस्करण, प्रयुक्त मेथड, और क्या कैलेंडर में कई इवेंट्स हैं जैसे महत्वपूर्ण विवरण निकाल सकते हैं। नीचे एक कोड स्निपेट दिया गया है जो दिखाता है कि कैलेंडर डेटा के साथ कैसे इंटरैक्ट करें और अपॉइंटमेंट्स को इवेंट्स की समग्र सूची के रूप में लोड करें:
import aspose.email as ae
reader = ae.calendar.CalendarReader("calendar.ics")
print(f"Calendar contains {reader.count} events")
print(f"The Version of the calendar is {reader.version}")
print(f"The Method of the calendar is {reader.method}")
print(f"Is calendar contains contains multiple events? - {reader.is_multi_events}")
appointments = reader.load_as_multiple()
कैलेंडर आइटम्स में डिस्प्ले रिमाइंडर जोड़ें
निम्नलिखित कोड स्निपेट दिखाता है कि कैलेंडर में डिस्प्ले रिमाइंडर कैसे जोड़ें।
कैलेंडर आइटम्स में ऑडियो रिमाइंडर जोड़ें
निम्नलिखित कोड स्निपेट आपको दिखाता है कि कैलेंडर में ऑडियो रिमाइंडर कैसे जोड़ा जाए।
MapiCalendar स्थिति को स्पष्ट रूप से सेट करें
Aspose.Email एक विधि प्रदान करता है जिससे आप MapiCalendar ऑब्जेक्ट की स्थिति को स्पष्ट रूप से परिभाषित कर सकते हैं, डिफ़ॉल्ट व्यवहार को ओवरराइड करके:
- void MapiCalendar.set_state_forced(MapiCalendarState state) - प्राप्त मीटिंग रिक्वेस्ट्स के साथ काम करते समय कैलेंडर आइटम की स्थिति पर अधिक नियंत्रण प्रदान करता है।
जब एक MapiCalendar ऑब्जेक्ट बनाया जाता है, तो इसे स्वचालित रूप से स्थिति MapiCalendarState.MEETING दी जाती है। जब आइटम प्राप्तकर्ता द्वारा प्राप्त किया जाता है, तो स्थिति आमतौर पर MapiCalendarState.RECEIVED में बदल जाती है, और संदेश वर्ग "IPM.Schedule.Meeting.Request" में अपडेट हो जाता है।
नीचे दिया गया कोड उदाहरण दिखाता है कि Aspose.Email for Python via .NET का उपयोग करके मीटिंग अपॉइंटमेंट कैसे बनाया जाए, ऑर्गेनाइज़र और कैलेंडर स्थिति को मैन्युअल रूप से सेट किया जाए, और अपॉइंटमेंट को Outlook .msg फ़ाइल के रूप में सहेजा जाए:
from aspose.email.mapi import MapiCalendar, MapiCalendarState, MapiElectronicAddress
from aspose.email.calendar import AppointmentSaveFormat
from datetime import datetime, timezone
# Create a MapiCalendar appointment
appointment = MapiCalendar(
"LAKE ARGYLE WA 6743", # Location
"Appointment", # Subject
"This is a very important meeting :)", # Body
datetime(2024, 5, 10, 12, 30, 0, tzinfo=timezone.utc), # Start time (UTC)
datetime(2024, 5, 10, 13, 30, 0, tzinfo=timezone.utc) # End time (UTC)
)
# Set the organizer
appointment.organizer = MapiElectronicAddress()
appointment.organizer.email_address = "test@aaa.com"
appointment.organizer.display_name = "test display Name"
# Forcefully set the calendar state to Meeting | Received
appointment.set_state_forced(MapiCalendarState.MEETING | MapiCalendarState.RECEIVED)
# Save the appointment to a .msg file
appointment.save("appointment.msg", AppointmentSaveFormat.MSG)
को कॉल करके set_state_forced, आप कैलेंडर आइटम की स्थिति को मैन्युअल रूप से एक विशिष्ट मान (जैसे, MapiCalendarState.RECEIVED) पर सेट कर सकते हैं। यह विशेष रूप से उपयोगी है जब आप चाहें:
-
एक प्राप्त मीटिंग रिक्वेस्ट का सिमुलेशन करें।
-
.MSG फ़ाइल में अपॉइंटमेंट सहेजते समय ऑर्गेनाइज़र और मीटिंग मेटाडाटा संरक्षित रखें।
-
डिफ़ॉल्ट व्यवहार पर्याप्त न होने पर कैलेंडर वर्कफ़्लो को कस्टमाइज़ करें।
नोट: मैन्युअल रूप से स्थिति सेट करना साथ
set_state_forcedOutlook के व्यवहार को प्रभावित कर सकता है, जैसे मीटिंग को फॉरवर्ड या रीसेन्ड करने की क्षमता। इसलिए इसे सावधानी से और केवल तभी उपयोग किया जाना चाहिए जब आपके एप्लिकेशन लॉजिक के लिए आवश्यक हो।
कैलेंडर फ़ाइल प्रबंधन
कैलेंडर फ़ाइलों से अटैचमेंट जोड़ें या प्राप्त करें
Aspose.Email कैलेंडर ("ae.calendar") मॉड्यूल अटैचमेंट जानकारी जोड़ने और प्राप्त करने की कार्यक्षमता भी प्रदान करता है।
अपॉइंटमेंट में अटैचमेंट शामिल करने के लिए, नीचे दिए गए चरणों का पालन करें:
- एक बनाएं Attachment फ़ाइल पाथ प्रदान करने वाला ऑब्जेक्ट।
- इस अटैचमेंट को अपॉइंटमेंट की अटैचमेंट सूची में जोड़ें।
- iCalendar फ़ॉर्मेट में एक विशिष्ट फ़ाइल पाथ पर अपॉइंटमेंट सहेजें, उपयोग करके save विधि और उपयुक्त फ़ाइल फ़ॉर्मेट।
एक अपॉइंटमेंट से अटैचमेंट्स प्राप्त करने के लिए, निम्न चरणों का पालन करें:
- सहेजी गई फ़ाइल से अपॉइंटमेंट लोड करें जिससे लोड विधि।
- .attachments.length प्रॉपर्टी का उपयोग करके अपॉइंटमेंट में अटैचमेंट्स की संख्या प्राप्त करें।
- प्रत्येक अटैचमेंट पर इटरेट करें।
- लूप के भीतर .name प्रॉपर्टी का उपयोग करके प्रत्येक अटैचमेंट का नाम प्रिंट करें।
नीचे दिया गया कोड स्निपेट दिखाता है कि अटैचमेंट्स के साथ अपॉइंटमेंट कैसे बनाएं, उन्हें सहेजें, और "ae.calendar" मॉड्यूल का उपयोग करके अटैचमेंट जानकारी प्राप्त करें। यह कैलेंडर एप्लीकेशन में अपॉइंटमेंट्स और अटैचमेंट्स के साथ काम करने की कार्यक्षमता और क्षमताओं को उजागर करता है।
import aspose.email as ae
import datetime as dt
# Add an attachment to an appointment
attendees = ae.MailAddressCollection()
attendees.append(ae.MailAddress("attendee@domain.com", "Recipient 1"))
appointment = ae.calendar.Appointment("Room 112", dt.datetime(2023, 5, 27), dt.date(2023, 5, 28), ae.MailAddress("organizer@domain.com"), attendees)
attachment = ae.Attachment("D:\\Aspose\\Files\\Attachment.txt")
appointment.attachments.append(attachment)
appointment.save("D:\\Aspose\\Files\\appWithAttachments_out.ics", ae.calendar.AppointmentSaveFormat.ICS)
# Retrieve attachments from an appointment
appointment2 = ae.calendar.Appointment.load("D:\\Aspose\\Files\\appWithAttachments_out.ics")
print(appointment2.attachments.length)
for att in appointment2.attachments:
print(att.name)
मीटिंग रिक्वेस्ट्स से प्राप्तकर्ता की स्थिति प्राप्त करें
Aspose.Email आपको मीटिंग रिक्वेस्ट्स के साथ काम करने की अनुमति देता है, जो MapiCalendar ऑब्जेक्ट के रूप में दर्शाए गए होते हैं, और इन मीटिंग रिक्वेस्ट्स से प्राप्तकर्ता की स्थिति (हाजिरी ट्रैकिंग) प्राप्त करने में सहायता करता है। नीचे दिया गया कोड स्निपेट दिखाता है कि प्रत्येक प्राप्तकर्ता के लिए ईमेल की स्थिति कैसे पहचानी जाए:
HTML बॉडी को संरक्षित रखते हुए EML अपॉइंटमेंट को MSG में बदलें
Aspose.Email EML अपॉइंटमेंट को MSG में बदलने और HTML बॉडी को संरक्षित करने की सुविधा प्रदान करता है। forced_rtf_body_for_appointment प्रॉपर्टी का MapiConversionOptions क्लास अपॉइंटमेंट बॉडी के प्रकार को बदलने के लिए उपयोग की जाती है। जब इसे True पर सेट किया जाता है, तो बॉडी डिफ़ॉल्ट रूप से RTF फ़ॉर्मेट में कनवर्ट हो जाती है। बॉडी को HTML फ़ॉर्मेट में बरकरार रखने के लिए इसे False पर सेट किया जाना चाहिए। नीचे दिया गया कोड उदाहरण दिखाता है कि EML से MSG में रूपांतरण के समय अपॉइंटमेंट की HTML बॉडी कैसे संरक्षित रखी जाए:
import aspose.email as ae
eml = ae.MailMessage.load("appointment.eml")
conversionOptions = ae.mapi.MapiConversionOptions()
conversionOptions.format = ae.mapi.OutlookMessageFormat.UNICODE
# default value for ForcedRtfBodyForAppointment is true
conversionOptions.forced_rtf_body_for_appointment = False
msg = ae.mapi.MapiMessage.from_mail_message(eml, conversionOptions)
print(f"Body Type: {msg.body_type}")
msg.save("appointment.msg")