Trabalhando com itens de calendário do Outlook
Trabalhando com MapiCalendar
A classe MapiCalendar do Aspose.Email fornece métodos e atributos para definir várias propriedades de um item de calendário.
Criando e Salvando itens de Calendário
O trecho de código a seguir mostra como criar e salvar um item de calendário no 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)
Salvando o item de Calendário como MSG
O trecho de código a seguir mostra como salvar o item de calendário como MSG.
Definindo um ID de Produto ao Salvar MapiCalendar para ICS
A biblioteca Aspose.Email permite salvar um MapiCalendar (um item de calendário) em um arquivo ICS (iCalendar) com opções específicas. Com as propriedades ics_save_options.keep_original_date_time_stamp e ics_save_options.product_identifier você pode manter os carimbos de data e hora originais associados ao item de calendário e definir o identificador do produto no arquivo ICS, por exemplo para "Foo Ltd", respectivamente. O identificador do produto é um campo que identifica o software ou serviço que gerou o arquivo ICS.
Aqui está um exemplo de código que permite definir um ID de produto ao salvar MapiCalendar para 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)
Obtendo o número total de eventos
A funcionalidade do CalendarReader classe permite ler dados de calendário a partir de um arquivo especificado. Ao criar um objeto CalendarReader, podemos extrair informações importantes como o número total de eventos, a versão do calendário, o método usado e se o calendário contém múltiplos eventos. O trecho de código a seguir demonstra como trabalhar com dados de calendário e, adicionalmente, carregar os compromissos do calendário como uma lista de múltiplos 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()
Adicionando lembrete de exibição a um Calendário
O trecho de código a seguir mostra como adicionar um lembrete de exibição a um calendário.
Adicionando lembrete de áudio a um Calendário
O trecho de código a seguir mostra como adicionar um lembrete de áudio a um calendário.
Adicionar/Recuperar anexos de arquivos de Calendário
O módulo Aspose.Email Calendar ("ae.calendar") também fornece a funcionalidade de adicionar e recuperar informações de anexos.
-
Para incluir um anexo no compromisso, um objeto "Attachment" é criado, fornecendo o caminho do arquivo. Esse anexo é então anexado à lista de anexos do compromisso. O compromisso é salvo em um caminho de arquivo específico no formato iCalendar usando o salvar método e o formato de arquivo apropriado.
-
Para recuperar anexos de um compromisso, ele é primeiro carregado a partir do arquivo salvo usando o carregar método, o número de anexos presentes em "appointment2" é exibido, e ao iterar sobre os anexos seus nomes são impressos.
O trecho de código abaixo demonstra como criar compromissos com anexos, salvá‑los e recuperar informações dos anexos usando o módulo "ae.calendar". Ele destaca a funcionalidade e as capacidades de trabalhar com compromissos e anexos em um aplicativo de calendário.
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 dos Destinatários de uma Solicitação de Reunião
O trecho de código a seguir mostra como obter o status dos destinatários de uma solicitação de reunião.
Converter Compromisso EML para MSG preservando o Corpo em formato HTML
O Aspose.Email possibilita converter um compromisso EML para MSG e preservar o corpo HTML. A propriedade "forced_rtf_body_for_appointment" do MapiConversionOptions A classe é usada para manipular o tipo do corpo do compromisso. Quando definido como True, o corpo é convertido para o formato RTF por padrão. Para manter o corpo em formato HTML, deve ser definido como False. O exemplo de código a seguir mostra como preservar o corpo HTML do compromisso ao convertê‑lo de EML para 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")