ניהול פריטי לוח השנה של 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 ממחוז זמן סטנדרטי

קטע הקוד הבא מציג כיצד ליצור MapiCalendarTimeZone ממחוז זמן סטנדרטי.

הגדרת תזכורות לפגישות

תזכורת יכולה להתווסף כאשר נוצרה פגישה. ההתראות האלה יכולות להפעיל בהתבסס על קריטריונים שונים כגון n דקות לפני תחילת הלוז, חזרה n פעמים בביניים של n. ניתן להשתמש בתגים שונים ליצירת ההפעלות האלו בתסריט המוקף ב‑BEGIN:VALARM ו‑END:VALARM בתוך פגישה. קיימים מספר ווריאנטים שבהם ניתן להגדיר תזכורת לפגישה.

הוספת תגיות להגדרת תזכורות

קטע הקוד הבא מציג איך להגדיר תזכורת על ידי הוספת תגים.

המרת פגישת EML ל‑MSG עם גוף HTML

מאז גרסה 19.3, Aspose.Email מציעה אפשרות להמיר פגישות 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);