Werken met Outlook-agenda-items

Werken met MapiCalendar

De MapiCalendar‑klasse van Aspose.Email biedt methoden en attributen om diverse eigenschappen van een agenda‑item in te stellen.

Agenda‑items maken en opslaan

Het volgende codefragment laat zien hoe u een agenda‑item maakt en opslaat in ICS‑formaat.

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)

Het agenda‑item opslaan als MSG

Het volgende codefragment laat zien hoe u het agenda‑item opslaat als MSG.

Een product‑ID instellen bij het opslaan van MapiCalendar naar ICS

De Aspose.Email‑bibliotheek maakt het mogelijk een MapiCalendar (een agenda‑item) op te slaan in een ICS‑ (iCalendar)‑bestand met specifieke opties. Met de eigenschappen ics_save_options.keep_original_date_time_stamp en ics_save_options.product_identifier kunt u de oorspronkelijke datum‑ en tijdstempels van het agenda‑item behouden en de product‑identifier in het ICS‑bestand instellen, bijvoorbeeld op "Foo Ltd". De product‑identifier is een veld dat de software of dienst identificeert die het ICS‑bestand heeft gegenereerd.

Hier is een codevoorbeeld waarmee u een product-ID kunt instellen bij het opslaan van MapiCalendar naar ICS:

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)

Het totale aantal evenementen ophalen

De functionaliteit van de CalendarReader klasse maakt het mogelijk agenda‑gegevens te lezen uit een opgegeven bestand. Door een CalendarReader‑object te maken, kunnen we belangrijke informatie ophalen, zoals het totale aantal evenementen, de agenda‑versie, de gebruikte methode en of de agenda meerdere evenementen bevat. Het volgende codefragment demonstreert hoe met agenda‑gegevens te werken en bovendien de afspraken uit de agenda te laden als een lijst met meerdere evenementen.

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

Weergave‑herinnering aan een agenda toevoegen

Het volgende codefragment laat zien hoe u een weergave‑herinnering aan een agenda toevoegt.

Audiobericht‑herinnering aan een agenda toevoegen

Het volgende codefragment laat zien hoe u een audiherinnering aan een agenda toevoegt.

Bijlagen toevoegen/ontvangen uit agenda‑bestanden

De Aspose.Email Calendar ("ae.calendar")‑module biedt ook de functionaliteit om bijlage‑informatie toe te voegen en op te halen.

  • Om een bijlage toe te voegen aan de afspraak, wordt een "Attachment"‑object aangemaakt met het bestandspad. Deze bijlage wordt vervolgens toegevoegd aan de lijst met bijlagen van de afspraak. De afspraak wordt opgeslagen op een specifiek pad in iCalendar‑formaat met behulp van de opslaan methode en het juiste bestandsformaat.

  • Om bijlagen van een afspraak op te halen, wordt deze eerst geladen uit het opgeslagen bestand met behulp van de laden methode, het aantal bijlagen in "appointment2" wordt weergegeven en bij iteratie over de bijlagen worden hun namen afgedrukt.

Het onderstaande codefragment laat zien hoe u afspraken met bijlagen maakt, opslaat en bijlage‑informatie ophaalt met behulp van de "ae.calendar"‑module. Het benadrukt de functionaliteit en mogelijkheden van het werken met afspraken en bijlagen in een agenda‑applicatie.

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 van ontvangers uit een vergaderverzoek

Het volgende codefragment laat zien hoe u de status van ontvangers van een vergaderverzoek bekijkt.

EML-afspraak converteren naar MSG met behoud van de body in HTML‑formaat

Aspose.Email maakt het mogelijk een EML‑afspraak te converteren naar MSG en de HTML‑body te behouden. De eigenschap "forced_rtf_body_for_appointment" van de MapiConversionOptions klasse wordt gebruikt om het type van de afspraak‑body te manipuleren. Wanneer ingesteld op True, wordt de body standaard geconverteerd naar RTF‑formaat. Om de body in HTML‑formaat te behouden, moet deze worden ingesteld op False. Het volgende codevoorbeeld laat zien hoe u de HTML‑body van de afspraak behoudt bij het converteren van EML naar MSG:

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