Arbeiten mit Outlook-Kalenderelementen

Arbeiten mit MapiCalendar

Die MapiCalendar‑Klasse von Aspose.Email stellt Methoden und Attribute zum Festlegen verschiedener Eigenschaften eines Kalendereintrags bereit.

Erstellen und Speichern von Kalendereinträgen

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

import aspose.email as ae
from datetime import datetime

data_dir = "path/to/data/directory"

# Create the appointment
calendar = ae.mapi.MapiCalendar(
    "LAKE ARGYLE WA 6743",
    "Appointment",
    "This is a very important meeting :)",
    datetime(2012, 4, 1),
    datetime(2012, 5, 1))

calendar.save(data_dir + "CalendarItem_out.ics", ae.calendar.AppointmentSaveFormat.ICS)

Speichern des Kalendereintrags als MSG

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

Festlegen einer Produkt‑ID beim Speichern von MapiCalendar als ICS

Die Aspose.Email‑Bibliothek ermöglicht es, ein MapiCalendar (ein Kalendereintrag) mit bestimmten Optionen in eine ICS‑(iCalendar‑)Datei zu speichern. Mit den Eigenschaften ics_save_options.keep_original_date_time_stamp und ics_save_options.product_identifier können Sie die ursprünglichen Datums‑ und Zeitstempel des Kalendereintrags beibehalten und den Produkt‑Identifier in der ICS‑Datei festlegen, z. B. auf "Foo Ltd". Der Produkt‑Identifier ist ein Feld, das die Software oder den Dienst identifiziert, der die ICS‑Datei erzeugt hat.

Hier ein Code‑Beispiel, mit dem Sie beim Speichern von MapiCalendar in ICS eine Produkt‑ID festlegen können:

import aspose.email as ae

ics_save_options = ae.mapi.MapiCalendarIcsSaveOptions()
ics_save_options.keep_original_date_time_stamp = True
ics_save_options.product_identifier = "Foo Ltd"

mapiCalendar.save("my.ics", ics_save_options)

Ermitteln der Gesamtzahl der Ereignisse

Die Funktionalität von CalendarReader Klasse ermöglicht das Lesen von Kalenderdaten aus einer angegebenen Datei. Durch Erstellen eines CalendarReader‑Objekts können wir wichtige Informationen wie die Gesamtzahl der Ereignisse, die Kalender-Version, die verwendete Methode und ob der Kalender mehrere Ereignisse enthält, extrahieren. Das folgende Code‑Snippet demonstriert, wie mit Kalenderdaten gearbeitet wird und zusätzlich die Termine aus dem Kalender als Liste mehrerer Ereignisse geladen werden.

import aspose.email as ae

reader = ae.calendar.CalendarReader(fileName)
print(f"Calendar contains {reader.count} events")
print(f"The Version of the calendar is {reader.version}")
print(f"The Method of the calendar is {reader.method}")
print(f"Is calendar contains contains multiple events? - {reader.is_multi_events}")
appointments = reader.load_as_multiple()

Hinzufügen einer Anzeigeerinnerung zu einem Kalender

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

Hinzufügen einer Audio‑Erinnerung zu einem Kalender

Das folgende Code‑Snippet zeigt, wie Sie einer Kalendereintragung einen Audio‑Erinnerungsalarm hinzufügen.

Anhänge zu Kalenderdateien hinzufügen/abrufen

Das Aspose.Email Calendar ("ae.calendar")‑Modul bietet ebenfalls die Möglichkeit, Anhangsinformationen hinzuzufügen und abzurufen.

  • Um einen Anhang zur Besprechung hinzuzufügen, wird ein "Attachment"‑Objekt erstellt, dem der Dateipfad übergeben wird. Dieser Anhang wird anschließend zur Anhangsliste der Besprechung hinzugefügt. Die Besprechung wird mit Hilfe der Speichern Methode und das passende Dateiformat.

  • Um Anhänge aus einer Besprechung abzurufen, wird diese zunächst aus der gespeicherten Datei mit Hilfe der laden Methode, die die Anzahl der Anhänge in "appointment2" anzeigt und durch Iteration über die Anhänge deren Namen ausgibt.

Das folgende Code‑Snippet demonstriert, wie man Termine mit Anhängen erstellt, speichert und Anhangsinformationen mit dem Modul "ae.calendar" abruft. Es verdeutlicht die Funktionalität und Möglichkeiten der Arbeit mit Terminen und Anhängen in einer Kalenderanwendung.

import aspose.email as ae
import datetime as dt

# Add an attachment to an appointment
attendees = ae.MailAddressCollection()
attendees.append(ae.MailAddress("attendee@domain.com", "Recipient 1"))

appointment = ae.calendar.Appointment("Room 112", dt.datetime(2023, 5, 27), dt.date(2023, 5, 28),  ae.MailAddress("organizer@domain.com"), attendees)

attachment = ae.Attachment("D:\\Aspose\\Files\\Attachment.txt")
appointment.attachments.append(attachment)

appointment.save("D:\\Aspose\\Files\\appWithAttachments_out.ics", ae.calendar.AppointmentSaveFormat.ICS)

# Retrieve attachments from an appointment 
appointment2 = ae.calendar.Appointment.load("D:\\Aspose\\Files\\appWithAttachments_out.ics")
print(appointment2.attachments.length)
for att in appointment2.attachments:
    print(att.name)

Status der Empfänger aus einer Besprechungsanfrage

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

Konvertieren eines EML‑Termins zu MSG bei Beibehaltung des Body im HTML‑Format

Aspose.Email ermöglicht die Konvertierung eines EML‑Termins in MSG und das Beibehalten des HTML‑Body. Die Eigenschaft "forced_rtf_body_for_appointment" von MapiConversionOptions Die Klasse wird verwendet, um den Typ des Terminkörpers zu manipulieren. Wenn sie auf True gesetzt ist, wird der Körper standardmäßig in das RTF‑Format konvertiert. Um den Körper im HTML‑Format zu behalten, sollte sie auf False gesetzt werden. Das folgende Code‑Beispiel zeigt, wie man den HTML‑Körper des Termins beim Konvertieren von EML zu MSG beibehält:

import aspose.email as ae

eml = ae.MailMessage.load("appointment.eml")

conversionOptions = ae.mapi.MapiConversionOptions()
conversionOptions.format = ae.mapi.OutlookMessageFormat.UNICODE
# default value for ForcedRtfBodyForAppointment is true
conversionOptions.forced_rtf_body_for_appointment = False

msg = ae.mapi.MapiMessage.from_mail_message(eml, conversionOptions)

print(f"Body Type: {msg.body_type}")

msg.save("appointment.msg")