Trabajar con los elementos del calendario de Outlook

Trabajando con MapiCalendar

La clase MapiCalendar de Aspose.Email proporciona métodos y atributos para establecer varias propiedades de un elemento del calendario.

Creación y almacenamiento de elementos del calendario

El siguiente fragmento de código muestra cómo crear y guardar un elemento del calendario en formato ICS.

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)

Guardar el elemento del calendario como MSG

El siguiente fragmento de código muestra cómo guardar el elemento del calendario como MSG.

Configuración de un identificador de producto al guardar MapiCalendar en ICS

La biblioteca Aspose.Email le permite guardar un MapiCalendar (un elemento del calendario) en un archivo ICS (iCalendar) con opciones específicas. Con ics_save_options.keep_original_date_time_stamp and ics_save_options.product_identifier propiedades: puede conservar las marcas de fecha y hora originales asociadas al elemento del calendario y establecer el identificador del producto en el archivo ICS, por ejemplo, en «Foo Ltd», respectivamente. El identificador del producto es un campo que identifica el software o el servicio que generó el archivo ICS.

Este es un ejemplo de código que te permite establecer un identificador de producto al guardar MapiCalendar en 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)

Obtener el número total de eventos

La funcionalidad del CalendarReader La clase le permite leer los datos del calendario de un archivo específico. Al crear un objeto CalendarReader, podemos extraer información importante, como el número total de eventos, la versión del calendario, el método utilizado y si el calendario contiene varios eventos. El siguiente fragmento de código muestra cómo trabajar con los datos del calendario y, además, cargar las citas del calendario como una lista de varios eventos.

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

Añadir un recordatorio de pantalla a un calendario

En el siguiente fragmento de código, se muestra cómo añadir un recordatorio de pantalla a un calendario.

Añadir un recordatorio de audio a un calendario

El siguiente fragmento de código muestra cómo añadir un recordatorio de audio a un calendario.

Añadir/recuperar archivos adjuntos de archivos de calendario

El módulo Aspose.Email Calendar («ae.calendar») también proporciona la funcionalidad de agregar y recuperar información adjunta.

  • Para incluir un adjunto en la cita, se crea un objeto «Attachment» que proporciona la ruta del archivo. A continuación, este archivo adjunto se añade a la lista de archivos adjuntos de la cita. La cita se guarda en una ruta de archivo específica en formato iCalendar mediante el save método y el formato de archivo apropiado.

  • Para recuperar los archivos adjuntos de una cita, primero se cargan desde el archivo guardado mediante el load método, se muestra el número de archivos adjuntos presentes en «cita2" y, al iterar sobre los archivos adjuntos, se imprimen sus nombres.

El siguiente fragmento de código muestra cómo crear citas con archivos adjuntos, guardarlas y recuperar la información de los archivos adjuntos mediante el módulo «ae.calendar». Destaca la funcionalidad y las capacidades de trabajar con citas y archivos adjuntos en una aplicación de calendario.

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)

Estado de los destinatarios de una convocatoria de reunión

El siguiente fragmento de código muestra cómo determinar el estado de los destinatarios de una convocatoria de reunión.

Convierte EML Appointment en MSG conservando el cuerpo en formato HTML

Aspose.Email permite convertir una cita EML en MSG y conservar el cuerpo HTML. La propiedad «forced_rtf_body_for_appointment» del MapiConversionOptions la clase se utiliza para manipular el tipo de órgano de nombramiento. Cuando se establece en True, el cuerpo se convierte al formato RTF por defecto. Para conservar el cuerpo en formato HTML, debe configurarse en False. El siguiente ejemplo de código muestra cómo conservar el cuerpo HTML de la cita al convertirla de EML a 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")