Zarządzanie elementami kalendarza Outlook

Aspose.Email MapiCalendar klasa dostarcza metody i atrybuty do ustawiania różnych właściwości elementu kalendarza. Ta sekcja zawiera przykłady kodu dla:

Utwórz i zapisz elementy kalendarza

Poniższy fragment kodu pokazuje, jak utworzyć i zapisać element kalendarza w formacie ICS.

Zapisz elementy kalendarza jako pliki MSG

Poniższy fragment kodu pokazuje, jak zapisać element kalendarza jako MSG.

Zapisz identyfikatory produktów dla elementów MAPI Calendar do formatu ICS

Ten ProductIdentifier właściwość MapiCalendarIcsSaveOptions klasa jest używana do zapisania elementu kalendarza MAPI do pliku iCalendar (ICS), zachowując oryginalne informacje o dacie i czasie oraz niestandardowy identyfikator produktu. Właściwość określa identyfikator produktu, który utworzył obiekt iCalendar.

Poniższy przykład kodu pokazuje, jak pracować z danymi iCalendar (ICS) w obiekcie kalendarza MAPI:

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

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

Pobierz łączną liczbę wydarzeń

Klasa CalendarReader umożliwia łatwe obsługiwanie wydarzeń kalendarza. Poniższe właściwości i metoda pozwalają pracować z wieloma wydarzeniami:

  • CalendarReader.Count - Właściwość Count klasy CalendarReader pozwala pobrać liczbę komponentów Vevent (wydarzeń) obecnych w kalendarzu, ułatwiając śledzenie łącznej liczby wydarzeń.
  • CalendarReader.IsMultiEvents - Ta właściwość określa, czy kalendarz zawiera wiele wydarzeń. Zwraca wartość boolowską wskazującą, czy kalendarz zawiera więcej niż jedno wydarzenie, pomagając w identyfikacji kalendarzy jednowydarzeniowych lub wielowydarzeniowych.
  • CalendarReader.Method - Właściwość Method uzyskuje typ metody iCalendar powiązany z obiektem kalendarza. Zwraca typ metody, taki jak „REQUEST”, „PUBLISH” lub „CANCEL”, dostarczając cennych informacji o przeznaczeniu kalendarza.
  • CalendarReader.Version - Pobiera wersję iCalendar.
  • CalendarReader.LoadAsMultiple() Ta metoda umożliwia ładowanie listy wydarzeń z kalendarza zawierającego wiele wydarzeń. Zwraca listę obiektów Appointment, umożliwiając łatwy dostęp i przetwarzanie każdego wydarzenia osobno.

Poniższy przykład kodu demonstruje, jak można wdrożyć te możliwości w projekcie:

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

Dodaj wyświetlane przypomnienia

Poniższy fragment kodu pokazuje, jak dodać wyświetlane przypomnienie do kalendarza.

Dodaj przypomnienia dźwiękowe

Poniższy fragment kodu pokazuje, jak dodać przypomnienie audio do kalendarza.

Dodaj/Pobierz załączniki z plików kalendarza

Poniższy fragment kodu pokazuje, jak dodać/pobrać załączniki z plików kalendarza.

Sprawdź status odbiorców w zaproszeniach na spotkania

Poniższy fragment kodu pokazuje, jak wyświetlić status odbiorców z zaproszenia na spotkanie.

Utwórz strefę czasową MAPI Calendar z standardowej strefy czasowej

Poniższy fragment kodu pokazuje, jak utworzyć MapiCalendarTimeZone z standardowej strefy czasowej.

Ustaw przypomnienia dla spotkań

Przypomnienie można dodać podczas tworzenia spotkania. Te alarmy mogą być wyzwalane na podstawie różnych kryteriów, takich jak n minut przed rozpoczęciem planu, powtarzanie n razy w odstępach n. Różne tagi mogą być użyte do stworzenia tych wyzwalaczy w skrypcie umieszczonym pomiędzy BEGIN:VALARM i END:VALARM w obrębie spotkania. Istnieje wiele wariantów ustawiania przypomnienia w spotkaniu.

Dodaj tagi, aby ustawić przypomnienia

Poniższy fragment kodu pokazuje, jak ustawić przypomnienie poprzez dodanie tagów.

Konwertuj spotkanie EML do MSG z treścią HTML

Od wersji 19.3, Aspose.Email umożliwia konwersję spotkania w formacie EML do MSG zachowując treść HTML spotkania. Aspose.Email zapewnia MapiConversionOptions.ForcedRtfBodyForAppointment właściwości, która ma domyślną wartość true. Gdy wartość MapiConversionOptions.ForcedRtfBodyForAppointment jest ustawiona na true, treść spotkania jest konwertowana do formatu RTF. Aby zachować format treści spotkania w HTML, ustaw wartość MapiConversionOptions.ForcedRtfBodyForAppointment na false.

Poniższy przykład demonstruje użycie MapiConversionOptions.ForcedRtfBodyForAppointment właściwość, aby zachować format treści spotkania w formacie HTML.

Ustaw stan elementów MAPI Calendar ręcznie

Ustaw stan obiektu MAPI Calendar jednoznacznie, nadpisując domyślne zachowanie. Pozwala to na lepszą kontrolę nad stanami wydarzeń kalendarza, szczególnie przy obsłudze otrzymanych zaproszeń na spotkania. Domyślnie, gdy spotkanie jest tworzone, jego stan jest MapiCalendarState.Meeting. Po otrzymaniu w skrzynce odbiorczej odbiorcy, automatycznie zmienia się na MapiCalendarState.Received, a jego klasa wiadomości jest zaktualizowana do „IPM.Schedule.Meeting.Request”. Używając SetStateForced pozwala ręcznie ustawić stan na Received, co może być przydatne przy zachowywaniu informacji o organizatorze podczas zapisywania kalendarza jako plik MSG. Jednak może to uniemożliwić prawidłowe przekazywanie lub ponowne wysyłanie spotkania.

Poniższy przykład kodu demonstruje, jak utworzyć MapiCalendar obiekt, przypisz organizatora i jednoznacznie ustaw jego stan na oba Meeting i Received przy użyciu SetStateForced. Następnie zapisuje element kalendarza jako plik .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);