کار با موارد تقویم 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 را شناسایی می‌کند.

در اینجا نمونه کدی آورده شده است که به شما امکان تنظیم شناسه محصول (Product ID) هنگام ذخیره 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 ("ae.calendar") همچنین امکان افزودن و استخراج اطلاعات پیوست را فراهم می‌کند.

  • برای افزودن پیوست به قرار ملاقات، یک شیء "Attachment" ایجاد می‌شود که مسیر فایل را می‌دهد. سپس این پیوست به فهرست پیوست‌های قرار ملاقات اضافه می‌شود. قرار ملاقات با استفاده از ذخیره متد و قالب فایل مناسب.

  • برای بازیابی پیوست‌ها از یک قرار ملاقات، ابتدا با استفاده از بارگذاری متد، تعداد پیوست‌های موجود در "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")