العمل مع عناصر تقويم Outlook

العمل مع MapiCalendar

توفر فئة MapiCalendar في Aspose.Email طرقًا وسمات لتعيين خصائص مختلفة لعنصر التقويم.

إنشاء وحفظ عناصر التقويم

يعرض القسم البرمجي التالي كيفية إنشاء وحفظ عنصر تقويم بصيغة 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

تتيح مكتبة Aspose.Email حفظ كائن MapiCalendar (عنصر تقويم) إلى ملف ICS (iCalendar) مع خيارات محددة. باستخدام خاصيتي ics_save_options.keep_original_date_time_stamp و ics_save_options.product_identifier يمكنك الاحتفاظ بطوابع التاريخ والوقت الأصلية المرتبطة بعنصر التقويم وتعيين معرف المنتج في ملف الICS، على سبيل المثال إلى "Foo Ltd". معرف المنتج هو حقل يحدد البرنامج أو الخدمة التي أنشأت ملف الICS.

فيما يلي عينة شفرة تسمح لك بتحديد معرف المنتج عند حفظ MapiCalendar إلى صيغة ICS:

import aspose.email as ae

ics_save_options = ae.mapi.MapiCalendarIcsSaveOptions()
ics_save_options.keep_original_date_time_stamp = True
ics_save_options.product_identifier = "Foo Ltd"

mapiCalendar.save("my.ics", ics_save_options)

الحصول على إجمالي عدد الأحداث

وظيفة CalendarReader تتيح الفئة قراءة بيانات التقويم من ملف محدد. من خلال إنشاء كائن CalendarReader، يمكننا استخراج معلومات هامة مثل إجمالي عدد الأحداث، إصدار التقويم، الطريقة المستخدمة، وما إذا كان التقويم يحتوي على أحداث متعددة. يوضح مقطع الشيفرة التالي كيفية التعامل مع بيانات التقويم، بالإضافة إلى تحميل المواعيد من التقويم كقائمة من الأحداث المتعددة.

import aspose.email as ae

reader = ae.calendar.CalendarReader(fileName)
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()

إضافة تذكير عرض إلى التقويم

يعرض القسم البرمجي التالي كيفية إضافة تذكير مرئي إلى التقويم.

إضافة تذكير صوتي إلى التقويم

المقتطف البرمجي التالي يوضح لك كيفية إضافة تذكير صوتي إلى تقويم.

إضافة/استرجاع مرفقات من ملفات التقويم

وحدة Aspose.Email Calendar ("ae.calendar") توفر أيضًا وظيفة إضافة واسترجاع معلومات المرفقات.

  • لإضافة مرفق إلى الموعد، يتم إنشاء كائن "Attachment" مع مسار الملف. يُضاف هذا المرفق بعد ذلك إلى قائمة مرفقات الموعد. يتم حفظ الموعد إلى مسار ملف محدد بصيغة iCalendar باستخدام save الطريقة وتنسيق الملف المناسب.

  • لاسترجاع المرفقات من موعد، يتم أولاً تحميله من الملف المحفوظ باستخدام تحميل الطريقة، تُعرض عدد المرفقات الموجودة في "appointment2"، وعند التكرار على المرفقات تُطبع أسماؤها.

المقتطف البرمجي أدناه يوضح كيفية إنشاء مواعيد مع مرفقات، حفظها، واسترجاع معلومات المرفقات باستخدام وحدة "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)

حالة المستلمين من طلب اجتماع

يظهر مقطع الشيفرة التالي حالة المستلمين من طلب اجتماع.

تحويل موعد EML إلى MSG مع الحفاظ على الجسم بصيغة HTML

تمكن Aspose.Email من تحويل موعد EML إلى MSG والحفاظ على جسم HTML. خاصية "forced_rtf_body_for_appointment" في MapiConversionOptions الفئة تُستخدم لمعالجة نوع محتوى نص الموعد. عندما تُضبط على True، يتحول النص إلى صيغة RTF افتراضيًا. للاحتفاظ بالنص بصيغة HTML، يجب ضبطه على False. عينة الشفرة التالية توضح كيفية الحفاظ على جسم HTML للموعد عند تحويله من EML إلى MSG:

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")