การจัดการรายการปฏิทิน Outlook

Aspose.Email MapiCalendar คลาสนี้ให้เมธอดและแอตทริบิวต์เพื่อกำหนดคุณสมบัติต่าง ๆ ของรายการปฏิทิน ส่วนนี้ให้ตัวอย่างโค้ดสำหรับ:

สร้างและบันทึกรายการปฏิทิน

โค้ดตัวอย่างต่อไปนี้แสดงวิธีสร้างและบันทึกรายการปฏิทินในรูปแบบ ICS.

บันทึกรายการปฏิทินเป็นไฟล์ MSG

โค้ดตัวอย่างต่อไปนี้แสดงวิธีบันทึกรายการปฏิทินเป็นไฟล์ MSG.

บันทึก Product IDs สำหรับรายการ MAPI Calendar ไปยังไฟล์ 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 - Property Count ของคลาส CalendarReader ช่วยให้คุณดึงจำนวนคอมโพเนนต์ Vevent (เหตุการณ์) ที่อยู่ในปฏิทันทำให้ติดตามจำนวนเหตุการณ์ทั้งหมดได้ง่ายขึ้น.
  • CalendarReader.IsMultiEvents - Property นี้กำหนดว่าปฏิทินมีหลายเหตุการณ์หรือไม่ ให้ค่า boolean แสดงว่ามีมากกว่าหนึ่งเหตุการณ์ ช่วยระบุว่าปฏิทินเป็นแบบมีเหตุการณ์เดียวหรือหลายเหตุการณ์.
  • CalendarReader.Method - Property Method ได้ประเภทเมธอดของ iCalendar ที่เชื่อมโยงกับอ็อบเจกต์ปฏิทิน คืนค่าประเภทเมธอด เช่น “REQUEST”, “PUBLISH”, หรือ “CANCEL” ให้ข้อมูลเชิงลึกเกี่ยวกับวัตถุประสงค์ของปฏิทิน.
  • CalendarReader.Version - รับค่า 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();

เพิ่มการเตือนแบบแสดงผล

โค้ด snippet ต่อไปนี้แสดงวิธีเพิ่มการเตือนแบบแสดงผลลงในปฏิทิน.

เพิ่มการเตือนด้วยเสียง

โค้ดตัวอย่างต่อไปนี้แสดงวิธีเพิ่มการเตือนด้วยเสียงในปฏิทิน.

เพิ่ม/ดึงไฟล์แนบจากไฟล์ปฏิทิน

โค้ดตัวอย่างต่อไปนี้แสดงวิธีเพิ่ม/ดึงไฟล์แนบจากไฟล์ปฏิทิน.

ตรวจสอบสถานะของผู้รับในคำขอการประชุม

โค้ด snippet ต่อไปนี้แสดงวิธีแสดงสถานะของผู้รับจากคำขอการประชุม.

สร้าง MAPI Calendar TimeZone จาก Standard Timezone

โค้ด snippet ต่อไปนี้แสดงวิธีสร้าง MapiCalendarTimeZone จาก Standard 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 Calendar ด้วยตนเอง

ตั้งค่าสถานะของอ็อบเจกต์ 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);