Quản lý mục Lịch Outlook

Aspose.Email MapiCalendar lớp cung cấp các phương thức và thuộc tính để đặt các thuộc tính khác nhau của một mục lịch. Phần này cung cấp các mẫu mã cho:

Tạo và Lưu mục Lịch

Đoạn mã mẫu dưới đây cho bạn thấy cách tạo và lưu một mục lịch ở định dạng ICS.

Lưu Các Mục Lịch dưới Dạng Tệp MSG

Đoạn mã mẫu dưới đây cho bạn thấy cách lưu mục lịch dưới dạng MSG.

Lưu ID Sản Phẩm cho Các Mục Lịch MAPI vào ICS

Cái ProductIdentifier thuộc tính của MapiCalendarIcsSaveOptions lớp được sử dụng để lưu một mục lịch MAPI vào tệp iCalendar (ICS) giữ lại thông tin ngày và giờ gốc cũng như một định danh sản phẩm tùy chỉnh. Thuộc tính này chỉ định định danh cho sản phẩm đã tạo đối tượng iCalendar.

Mẫu mã dưới đây cho thấy cách làm việc với dữ liệu iCalendar (ICS) trong một đối tượng lịch MAPI:

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

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

Lấy Tổng Số Sự Kiện

Lớp CalendarReader cho phép xử lý các sự kiện lịch một cách dễ dàng. Các thuộc tính và phương thức sau cho phép bạn làm việc với nhiều sự kiện:

  • CalendarReader.Count - Thuộc tính Count của lớp CalendarReader cho phép bạn lấy số lượng thành phần Vevent (sự kiện) có trong lịch, giúp dễ dàng theo dõi tổng số sự kiện.
  • CalendarReader.IsMultiEvents - Thuộc tính này xác định liệu lịch có chứa nhiều sự kiện hay không. Nó cung cấp giá trị boolean cho biết lịch có hơn một sự kiện, giúp xác định lịch đơn hoặc đa sự kiện.
  • CalendarReader.Method - Thuộc tính Method lấy loại phương thức iCalendar liên kết với đối tượng lịch. Nó trả về loại phương thức, chẳng hạn như “REQUEST”, “PUBLISH”, hoặc “CANCEL”, cung cấp thông tin quan trọng về mục đích của lịch.
  • CalendarReader.Version - Lấy phiên bản của iCalendar.
  • CalendarReader.LoadAsMultiple() Phương thức này cho phép tải danh sách các sự kiện từ một lịch chứa nhiều sự kiện. Nó trả về một danh sách các đối tượng Appointment, cho phép truy cập và xử lý mỗi sự kiện riêng biệt một cách dễ dàng.

Ví dụ mã sau đây trình bày cách bạn có thể thực hiện các khả năng này trong dự án của mình:

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();

Thêm Nhắc Nhở Hiển Thị

Đoạn mã sau cho bạn thấy cách thêm nhắc nhở hiển thị vào lịch.

Thêm Nhắc Nhở Âm Thanh

Đoạn mã mẫu dưới đây cho bạn thấy cách thêm lời nhắc âm thanh vào lịch.

Thêm/Lấy tệp đính kèm từ các tệp lịch

Đoạn mã mẫu dưới đây cho bạn thấy cách thêm/lấy các tệp đính kèm từ các tệp lịch.

Kiểm Tra Trạng Thái Người Nhận trong Yêu Cầu Cuộc Họp

Đoạn mã sau cho bạn thấy cách hiển thị trạng thái của người nhận từ một yêu cầu họp.

Tạo TimeZone Lịch MAPI từ Timezone Chuẩn

Đoạn mã sau cho bạn thấy cách tạo MapiCalendarTimeZone từ Timezone chuẩn.

Đặt Nhắc Nhở cho Cuộc Hẹn

Một lời nhắc có thể được thêm vào khi tạo một cuộc hẹn. Các báo động này có thể kích hoạt dựa trên các tiêu chí khác nhau như n phút trước khi lịch bắt đầu, lặp lại n lần với khoảng thời gian n. Các thẻ khác nhau có thể được sử dụng để tạo các trình kích hoạt này trong đoạn script được bao quanh bởi BEGIN:VALARM và END:VALARM trong một cuộc hẹn. Có nhiều biến thể để đặt lời nhắc cho một cuộc hẹn.

Thêm Thẻ để Đặt Nhắc Nhở

Đoạn mã mẫu dưới đây cho bạn thấy cách đặt lời nhắc bằng cách thêm thẻ.

Chuyển đổi Appointment EML sang MSG với thân HTML

Kể từ phiên bản 19.3, Aspose.Email cung cấp khả năng chuyển đổi Appointment EML sang MSG đồng thời giữ lại phần thân HTML của cuộc hẹn. Aspose.Email cung cấp một MapiConversionOptions.ForcedRtfBodyForAppointment thuộc tính có giá trị mặc định là true. Khi giá trị của MapiConversionOptions.ForcedRtfBodyForAppointment được đặt thành true, nội dung cuộc hẹn sẽ được chuyển sang định dạng RTF. Để giữ định dạng nội dung cuộc hẹn ở dạng HTML, đặt giá trị của MapiConversionOptions.ForcedRtfBodyForAppointment thành false.

Ví dụ sau đây minh họa việc sử dụng MapiConversionOptions.ForcedRtfBodyForAppointment thuộc tính để giữ định dạng nội dung cuộc hẹn ở dạng HTML.

Đặt Trạng Thái của Các Mục Lịch MAPI Thủ Công

Đặt trạng thái của đối tượng Lịch MAPI một cách rõ ràng, ghi đè hành vi mặc định. Điều này cho phép kiểm soát tốt hơn các trạng thái sự kiện lịch, đặc biệt khi xử lý các yêu cầu họp đã nhận. Theo mặc định, khi một cuộc họp được tạo, trạng thái của nó là MapiCalendarState.Meeting. Khi được nhận trong hộp thư đến của người nhận, nó tự động chuyển thành MapiCalendarState.Received, và lớp tin nhắn của nó được cập nhật thành “IPM.Schedule.Meeting.Request”. Sử dụng SetStateForced cho phép đặt thủ công trạng thái thành Received, điều này có thể hữu ích để bảo tồn thông tin người tổ chức khi lưu lịch dưới dạng tệp MSG. Tuy nhiên, điều này có thể ngăn việc chuyển tiếp hoặc gửi lại cuộc họp một cách đúng đắn.

Mẫu mã dưới đây trình bày cách tạo một MapiCalendar đối tượng, gán một người tổ chức, và đặt trạng thái của nó một cách rõ ràng thành cả hai MeetingReceived sử dụng SetStateForced. Sau đó nó lưu mục lịch dưới dạng tệp .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);