Verwalten von Kalenderelementen in PST‑Dateien
Kalenderereignisse zu PST‑Dateien hinzufügen
Neue PST‑Datei erstellen und Unterordner hinzufügen demonstrierte, wie man eine PST‑Datei erstellt und Unterordner darin einfügt. Mit Aspose.Email können Sie außerdem einen MapiCalendar zum Kalender‑Unterordner einer bestehenden oder neu erstellten PST‑Datei hinzufügen. Nachfolgend die Schritte, um einen MapiCalendar zu einer PST‑Datei hinzuzufügen:
- Erstellen Sie ein MapiCalendar Objekt.
- Setzen Sie die Eigenschaften von MapiCalendar mithilfe eines Konstruktors und Methoden.
- Erstellen Sie eine PST mit der PersonalStorage.create() Methode.
- Erstellen Sie einen vordefinierten Ordner (Kalender) im Stammverzeichnis der PST‑Datei, indem Sie den Stammordner aufrufen und anschließend die add_mapi_message_item()‑Methode ausführen.
Das folgende Code‑Snippet zeigt, wie man einen MapiCalendar erstellt und ihn anschließend dem Kalender‑Ordner einer neu erstellten PST‑Datei hinzufügt:
Outlook‑Kalender‑Einträge als ICS‑Dateien speichern
Dieser Artikel erklärt, wie man auf Kalender‑Einträge aus einer Outlook‑PST‑Datei zugreift und sie auf der Festplatte im ICS‑Format speichert. Sie müssen das PersonalStorage und MapiCalendar Klassen, um die Kalenderdaten abzurufen. Befolgen Sie diese Schritte, um Kalender‑Einträge zu speichern:
- Laden Sie die PST‑Datei mit dem PersonalStorage Klasse.
- Navigieren Sie zum Kalender‑Ordner.
- Rufen Sie die Nachrichten‑Sammlung aus dem Kalender‑Ordner ab.
- Durchlaufen Sie die Nachrichten‑Sammlung.
- Verwenden Sie die PersonalStorage.extract_message() Methode zum Abrufen von Kontaktinformationen im MapiCalendar Klasse.
- Verwenden Sie die MapiCalendar.save() Methode zum Speichern jedes Kalender‑Eintrags auf der Festplatte im ICS‑Format.
Das nachfolgende Programm lädt eine PST‑Datei von der Festplatte und speichert alle Kalender‑Einträge im ICS‑Format. Diese ICS‑Dateien können anschließend in jedem anderen Programm verwendet werden, das das standardmäßige ICS‑Kalenderformat unterstützt. Öffnet man eine ICS‑Datei in Microsoft Outlook, erscheint sie wie im untenstehenden Screenshot.
![]() |
|---|
Das folgende Code‑Snippet demonstriert, wie Kalender‑Elemente aus einer Outlook‑PST in das ICS‑Format exportiert werden:
ICS‑Dateien mit ursprünglichen Zeitstempeln speichern
Die Methode keep_original_date_time_stamp der MapiCalendarIcsSaveOptions Klasse ermöglicht es, die ursprünglichen Datums‑ und Zeitstempel der Kalender‑Einträge beim Speichern als ICS‑ (iCalendar‑)Datei beizubehalten. Das folgende Code‑Beispiel demonstriert die Implementierung dieser Methode:
import aspose.email as ae
pst = ae.storage.pst.PersonalStorage.from_file("my.pst")
calendar_folder = pst.get_predefined_folder(ae.storage.pst.StandardIpmFolder.APPOINTMENTS)
for msg_info in calendar_folder.enumerate_messages():
cal = pst.extract_message(msg_info).to_mapi_message_item()
save_options = ae.mapi.MapiCalendarIcsSaveOptions()
save_options.keep_original_date_time_stamp = True
if not (cal is None):
cal.save("cal.ics", save_options)
Wiederholungs‑Vorkommen in PST‑Dateien ändern oder löschen
Sie können Ausnahmen zu bestehenden Wiederholungsmustern hinzufügen oder bestimmte Vorkommen in PST‑Dateien mit der Aspose.Email‑API für .NET löschen. Das folgende Code‑Beispiel zeigt, wie solche Änderungen vorgenommen werden:
from datetime import datetime, timedelta
from aspose.email.storage.pst import PersonalStorage, StandardIpmFolder, FileFormatVersion
from aspose.email.mapi import MapiCalendar, MapiCalendarEventRecurrence, \
MapiCalendarDailyRecurrencePattern, MapiCalendarRecurrenceEndType, \
MapiCalendarExceptionInfo, MapiCalendarRecurrencePatternType, \
MapiRecipientCollection, MapiRecipientType
start_date = datetime.now().date()
recurrence = MapiCalendarEventRecurrence()
pattern = MapiCalendarDailyRecurrencePattern()
pattern.pattern_type = MapiCalendarRecurrencePatternType.DAY
pattern.period = 1
pattern.end_type = MapiCalendarRecurrenceEndType.NEVER_END
recurrence.recurrence_pattern = pattern
exception_date = start_date + timedelta(days=1)
# adding one exception
exception_info = MapiCalendarExceptionInfo()
exception_info.location = "London"
exception_info.subject = "Subj"
exception_info.original_start_date = exception_date
exception_info.start_date_time = exception_date
exception_info.end_date_time = exception_date + timedelta(hours=5)
pattern.exceptions.append(exception_info)
pattern.modified_instance_dates.append(exception_date)
# every modified instance also has to have an entry in the DeletedInstanceDates field with the original instance date.
pattern.deleted_instance_dates.append(exception_date)
# adding one deleted instance
pattern.deleted_instance_dates.append(exception_date + timedelta(days=2))
rec_coll = MapiRecipientCollection()
rec_coll.add("receiver@domain.com", "receiver", MapiRecipientType.TO)
new_cal = MapiCalendar(
"This is Location",
"This is Summary",
"This is recurrence test",
start_date,
start_date + timedelta(hours=3),
"organizer@domain.com",
rec_coll
)
new_cal.recurrence = recurrence
with PersonalStorage.create("output.pst", FileFormatVersion.UNICODE) as pst:
calendar_folder = pst.create_predefined_folder("Calendar", StandardIpmFolder.APPOINTMENTS)
calendar_folder.add_message(new_cal)
