Verwalten von Outlook-Kalenderelementen

Aspose.Email MapiCalendar Die Klasse stellt Methoden und Attribute zum Festlegen verschiedener Eigenschaften eines Kalenderelements bereit. Dieser Abschnitt enthält Codebeispiele für:

Kalenderelemente erstellen und speichern

Das folgende Code‑Snippet zeigt, wie Sie ein Kalenderelement im ICS‑Format erstellen und speichern.

Kalenderelemente als MSG-Dateien speichern

Das folgende Code‑Snippet zeigt, wie Sie das Kalenderelement als MSG speichern.

Produkt‑IDs für MAPI‑Kalenderelemente in ICS speichern

Die ProductIdentifier Eigenschaft des MapiCalendarIcsSaveOptions Klasse wird verwendet, um ein MAPI‑Kalenderelement in einer iCalendar‑(ICS‑)Datei zu speichern und dabei ursprüngliche Datums‑ und Zeitinformationen sowie eine benutzerdefinierte Produkt‑Kennung zu erhalten. Die Eigenschaft gibt die Kennung des Produkts an, das das iCalendar‑Objekt erstellt hat.

Das folgende Code‑Beispiel zeigt, wie man mit iCalendar‑(ICS‑)Daten innerhalb eines MAPI‑Kalenderobjekts arbeitet:

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

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

Gesamtzahl der Ereignisse abrufen

Die CalendarReader‑Klasse erleichtert die Handhabung von Kalenderereignissen. Die folgenden Eigenschaften und eine Methode ermöglichen die Arbeit mit mehreren Ereignissen:

  • CalendarReader.Count – Die Count‑Eigenschaft der CalendarReader‑Klasse ermöglicht das Abrufen der Anzahl von Vevent‑Komponenten (Ereignissen) im Kalender, sodass die Gesamtschrittzahl der Ereignisse leichter nachverfolgt werden kann.
  • CalendarReader.IsMultiEvents – Diese Eigenschaft bestimmt, ob der Kalender mehrere Ereignisse enthält. Sie liefert einen booleschen Wert, der angibt, ob mehr als ein Ereignis vorhanden ist, und hilft dabei, Kalender mit einzelnen oder mehreren Ereignissen zu identifizieren.
  • CalendarReader.Method – Die Eigenschaft Method ermittelt den iCalendar‑Methodentyp, der dem Kalenderobjekt zugeordnet ist. Sie gibt den Methodentyp zurück, z. B. „REQUEST“, „PUBLISH“ oder „CANCEL“, und liefert wertvolle Hinweise zum Zweck des Kalenders.
  • CalendarReader.Version – Gibt die Version von iCalendar zurück.
  • CalendarReader.LoadAsMultiple() Diese Methode ermöglicht das Laden einer Liste von Ereignissen aus einem Kalender, der mehrere Ereignisse enthält. Sie gibt eine Liste von Appointment‑Objekten zurück, wodurch ein einfacher Zugriff und die Verarbeitung jedes einzelnen Ereignisses ermöglicht wird.

Das folgende Codebeispiel demonstriert, wie Sie diese Funktionen in Ihrem Projekt implementieren können:

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

Anzeige‑Erinnerungen hinzufügen

Das folgende Code‑Snippet zeigt, wie Sie eine Anzeige‑Erinnerung zu einem Kalender hinzufügen.

Audio‑Erinnerungen hinzufügen

Das folgende Code‑Snippet zeigt, wie Sie eine Audio‑Erinnerung zu einem Kalender hinzufügen.

Anhänge aus Kalenderdateien hinzufügen/abrufen

Das folgende Code‑Snippet zeigt, wie Sie Anhänge aus Kalenderdateien hinzufügen/abrufen.

Status der Empfänger in Besprechungsanfragen prüfen

Das folgende Code‑Snippet zeigt, wie Sie den Status der Empfänger aus einer Besprechungsanfrage anzeigen.

MAPI‑Kalenderzeitzone aus Standardzeitzone erstellen

Das folgende Code‑Snippet zeigt, wie Sie MapiCalendarTimeZone aus einer Standardzeitzone erstellen.

Erinnerungen für Termine festlegen

Eine Erinnerung kann beim Erstellen eines Termins hinzugefügt werden. Diese Alarme können basierend auf verschiedenen Kriterien ausgelöst werden, z. B. n Minuten vor Beginn des Zeitplans, Wiederholung n‑mal in n‑Abständen. Unterschiedliche Tags können verwendet werden, um diese Auslöser im Skript zu erstellen, das von BEGIN:VALARM bis END:VALARM innerhalb eines Termins eingeschlossen ist. Es gibt verschiedene Varianten, wie die Erinnerung für einen Termin festgelegt werden kann.

Tags hinzufügen, um Erinnerungen festzulegen

Das folgende Code‑Snippet zeigt, wie Sie eine Erinnerung durch Hinzufügen von Tags festlegen.

Termin-EML nach MSG mit HTML-Body konvertieren

Seit Version 19.3 bietet Aspose.Email die Möglichkeit, Termin-EML nach MSG zu konvertieren und dabei den HTML-Body des Termins beizubehalten. Aspose.Email stellt eine MapiConversionOptions.ForcedRtfBodyForAppointment Eigenschaft, die einen Standardwert von true hat. Wenn der Wert von MapiConversionOptions.ForcedRtfBodyForAppointment ist auf true gesetzt, wird der Terminkörper in das RTF-Format konvertiert. Um das Format des Terminkörpers im HTML-Format beizubehalten, setzen Sie den Wert von MapiConversionOptions.ForcedRtfBodyForAppointment auf false.

Das folgende Beispiel demonstriert die Verwendung von MapiConversionOptions.ForcedRtfBodyForAppointment Eigenschaft, um das Format des Terminkörpers im HTML-Format beizubehalten.

Zustand von MAPI‑Kalenderelementen manuell festlegen

Den Zustand eines MAPI‑Kalenderobjekts explizit festlegen und dabei das Standardverhalten überschreiben. Dies ermöglicht eine bessere Kontrolle über die Zustände von Kalenderereignissen, insbesondere beim Umgang mit empfangenen Besprechungsanfragen. Standardmäßig ist der Zustand einer erstellten Besprechung MapiCalendarState.Meeting. Wenn es im Posteingang des Empfängers empfangen wird, ändert es sich automatisch zu MapiCalendarState.Received, und seine Nachrichtenklasse wird auf „IPM.Schedule.Meeting.Request“ aktualisiert. Verwendung von SetStateForced ermöglicht das manuelle Setzen des Zustands auf Received, was nützlich sein kann, um Organisatorinformationen beim Speichern des Kalenders als MSG‑Datei zu erhalten. Dies kann jedoch das ordnungsgemäße Weiterleiten oder erneute Senden der Besprechung verhindern.

Das folgende Codebeispiel demonstriert, wie man ein MapiCalendar Objekt, einen Organisator zuweisen und dessen Zustand explizit auf beide setzen Meeting und Received unter Verwendung von SetStateForced. Anschließend speichert es das Kalenderelement als .msg‑Datei.

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