مدیریت موارد تقویم Outlook

Aspose.Email MapiCalendar کلاس متدها و ویژگی‌هایی را برای تنظیم خواص مختلف یک آیتم تقویم فراهم می‌کند. این بخش نمونه‌های کدی را برای موارد زیر ارائه می‌دهد:

ایجاد و ذخیره موارد تقویم

کد نمونهٔ زیر نشان می‌دهد چگونه می‌توانید یک مورد تقویم را در قالب ICS ایجاد و ذخیره کنید.

ذخیره آیتم‌های تقویم به‌صورت فایل‌های MSG

کد نمونهٔ زیر نشان می‌دهد چگونه می‌توانید مورد تقویم را به صورت MSG ذخیره کنید.

ذخیره شناسه‌های محصول برای آیتم‌های تقویم MAPI به ICS

این ProductIdentifier ویژگی MapiCalendarIcsSaveOptions کلاس برای ذخیره یک مورد تقویم MAPI به فایل iCalendar (ICS) استفاده می‌شود به‌طوری که اطلاعات تاریخ و زمان اصلی و همچنین شناسهٔ محصول سفارشی حفظ شود. این ویژگی شناسهٔ محصولی که شیء iCalendar را ایجاد کرده است را مشخص می‌کند.

نمونه کد زیر نشان می‌دهد چگونه با داده‌های iCalendar (ICS) درون یک شیء تقویم MAPI کار کنید:

var icsSaveOptions = new MapiCalendarIcsSaveOptions
{
    KeepOriginalDateTimeStamp = true,
    ProductIdentifier = "Foo Ltd"
};

mapiCalendar.Save("my.ics", icsSaveOptions);

دریافت تعداد کل رویدادها

کلاس CalendarReader امکان پردازش آسان رویدادهای تقویم را فراهم می‌کند. ویژگی‌ها و متد زیر به شما اجازه می‌دهند با چندین رویداد کار کنید:

  • CalendarReader.Count - ویژگی Count کلاس CalendarReader به شما امکان می‌دهد تعداد اجزای Vevent (رویدادها) موجود در تقویم را بازیابی کنید و پیگیری کل تعداد رویدادها را آسان می‌سازد.
  • CalendarReader.IsMultiEvents - این ویژگی تعیین می‌کند آیا تقویم شامل چندین رویداد است یا خیر. این مقدار بولی نشان می‌دهد آیا تقویم بیش از یک رویداد دارد و به شناسایی تقویم‌های تک یا چندرویدادی کمک می‌کند.
  • CalendarReader.Method - ویژگی Method نوع متد iCalendar مرتبط با شی تقویم را به دست می‌آورد. این متد نوع متد را برمی‌گرداند، مانند “REQUEST”، “PUBLISH” یا “CANCEL”، که بینش ارزشمندی درباره هدف تقویم ارائه می‌دهد.
  • CalendarReader.Version - نسخه iCalendar را دریافت می‌کند.
  • CalendarReader.LoadAsMultiple() این متد امکان بارگذاری فهرست رویدادها از تقویمی که شامل چندین رویداد است را فراهم می‌کند. این متد یک فهرست از اشیاء Appointment را برمی‌گرداند که دسترسی و پردازش هر رویداد را به‌صورت جداگانه آسان می‌سازد.

مثال کد زیر نشان می‌دهد چگونه می‌توانید این قابلیت‌ها را در پروژه خود پیاده‌سازی کنید:

var reader = new CalendarReader(fileName);
Console.WriteLine("Calendar contains " + reader.Count + " events");
Console.WriteLine("The Version of the calendar is " + reader.Version);
Console.WriteLine("The Method of the calendar is " + reader.Method);
Console.WriteLine("Is calendar contains contains multiple events? - " + reader.IsMultiEvents);
List<Appointment> appointments = reader.LoadAsMultiple();

افزودن یادآورهای نمایشی

قطعه کد زیر نشان می‌دهد چگونه یک یادآور نمایشی به تقویم اضافه کنید.

افزودن یادآورهای صوتی

کد نمونهٔ زیر نشان می‌دهد چگونه می‌توانید یک یادآوری صوتی به تقویم اضافه کنید.

افزودن/بازخوانی پیوست‌ها از فایل‌های تقویم

کد نمونهٔ زیر نشان می‌دهد چگونه می‌توانید پیوست‌ها را به فایل‌های تقویم اضافه/بازخوانی کنید.

بررسی وضعیت گیرندگان در درخواست‌های جلسه

قطعه کد زیر نشان می‌دهد چگونه وضعیت گیرندگان را از یک درخواست جلسه نمایش دهید.

ایجاد MAPI Calendar TimeZone از Timezone استاندارد

قطعه کد زیر نشان می‌دهد چگونه MapiCalendarTimeZone را از Timezone استاندارد ایجاد کنید.

تنظیم یادآورها برای قرارها

یک یادآوری می‌تواند هنگام ایجاد یک قرار ملاقات اضافه شود. این هشدارها می‌توانند بر اساس معیارهای مختلف مانند n دقیقه قبل از شروع برنامه، تکرار n بار با فواصل n فعال شوند. می‌توان از برچسب‌های متفاوت برای ایجاد این فعال‌کننده‌ها در اسکریپتی که بین BEGIN:VALARM و END:VALARM در یک قرار ملاقات قرار می‌گیرد، استفاده کرد. انواع مختلفی برای تنظیم یادآوری روی یک قرار ملاقات وجود دارد.

افزودن برچسب برای تنظیم یادآورها

کد نمونهٔ زیر نشان می‌دهد چگونه می‌توانید یادآوری را با افزودن برچسب‌ها تنظیم کنید.

تبدیل Appointment EML به MSG با بدنهٔ HTML

از نسخهٔ 19.3 به بعد، Aspose.Email امکان تبدیل Appointment EML به MSG را فراهم می‌کند در حالی که بدنهٔ HTML قرار ملاقات حفظ می‌شود. Aspose.Email یک MapiConversionOptions.ForcedRtfBodyForAppointment خاصیتی که مقدار پیش‌فرض آن true. است. وقتی مقدار MapiConversionOptions.ForcedRtfBodyForAppointment اگر به true تنظیم شود، بدنهٔ قرار ملاقات به قالب RTF تبدیل می‌شود. برای حفظ قالب بدنهٔ قرار ملاقات به فرمت HTML، مقدار MapiConversionOptions.ForcedRtfBodyForAppointment به false.

مثال زیر نحوه استفاده از MapiConversionOptions.ForcedRtfBodyForAppointment خاصیتی برای حفظ قالب بدنه قرار ملاقات به فرمت HTML.

تنظیم دستی حالت آیتم‌های تقویم MAPI

حالت یک شی MAPI Calendar را به‌صورت صریح تنظیم کنید تا رفتار پیش‌فرض را نادیده بگیرید. این امکان کنترل بهتر بر وضعیت رویدادهای تقویم را به‌ویژه هنگام پردازش درخواست‌های جلسه دریافت‌شده فراهم می‌کند. به‌طور پیش‌فرض، وقتی یک جلسه ایجاد می‌شود، حالت آن MapiCalendarState.Meeting. وقتی در صندوق ورودی گیرنده دریافت می‌شود، به‌صورت خودکار تغییر می‌یابد به MapiCalendarState.Received، و کلاس پیام آن به “IPM.Schedule.Meeting.Request” به‌روز می‌شود. با استفاده از SetStateForced به‌صورت دستی امکان تنظیم حالت به Received را فراهم می‌کند، که می‌تواند برای حفظ اطلاعات برنامه‌ریز هنگام ذخیره تقویم به‌عنوان فایل MSG مفید باشد. با این حال، ممکن است از ارسال مجدد یا فوروارد مناسب جلسه جلوگیری کند.

نمونه کد زیر نشان می‌دهد چگونه یک … ایجاد کنید MapiCalendar شی، یک برنامه‌ریز اختصاص دهید و به‌طور صریح حالت آن را به هر دو تنظیم کنید Meeting و Received با استفاده از SetStateForced. سپس آیتم تقویم را به‌صورت فایل .msg ذخیره می‌کند.

MapiCalendar appointment = new MapiCalendar(
    "LAKE ARGYLE WA 6743",
    "Appointment",
    "This is a very important meeting :)",
    new DateTime(2024, 5, 10, 12, 30, 0, DateTimeKind.Utc),
    new DateTime(2024, 5, 10, 13, 30, 0, DateTimeKind.Utc));

appointment.Organizer = new MapiElectronicAddress
{
    EmailAddress = "test@aaa.com",
    DisplayName = "test display Name"
};

appointment.SetStateForced(MapiCalendarState.Meeting | MapiCalendarState.Received);

appointment.Save("appointment.msg", AppointmentSaveFormat.Msg);