Gerenciando itens de calendário do Outlook
Aspose.Email MapiCalendar A classe fornece métodos e atributos para definir várias propriedades de um item de calendário. Esta seção oferece exemplos de código para:
- Criar e Salvar Itens de Calendário
- Salvar Itens de Calendário como Arquivos MSG
- Salvar IDs de Produto para Itens de Calendário MAPI em ICS
- Obter Número Total de Eventos
- Adicionar Lembretes de Exibição
- Adicionar Lembretes de Áudio
- Adicionar/Recuperar Anexos de Arquivos de Calendário
- Verificar o Status dos Destinatários em Convites de Reunião
- Criar Fuso Horário de Calendário MAPI a partir de Fuso Horário Padrão
- Definir Lembretes para Compromissos
- Converter Appointment EML para MSG com Corpo HTML
Criar e salvar itens de calendário
O trecho de código a seguir mostra como criar e salvar um item de calendário no formato ICS.
Salvar Itens de Calendário como Arquivos MSG
O trecho de código a seguir mostra como salvar o item de calendário como MSG.
Salvar IDs de Produto para Itens de Calendário MAPI em ICS
O ProductIdentifier propriedade do MapiCalendarIcsSaveOptions classe é usada para salvar um item de calendário MAPI em um arquivo iCalendar (ICS) preservando as informações originais de data e hora, bem como um identificador de produto personalizado. A propriedade especifica o identificador do produto que criou o objeto iCalendar.
O exemplo de código a seguir mostra como trabalhar com dados iCalendar (ICS) dentro de um objeto de calendário MAPI:
var icsSaveOptions = new MapiCalendarIcsSaveOptions
{
KeepOriginalDateTimeStamp = true,
ProductIdentifier = "Foo Ltd"
};
mapiCalendar.Save("my.ics", icsSaveOptions);
Obter Número Total de Eventos
A classe CalendarReader permite lidar com eventos de calendário sem esforço. As propriedades e o método a seguir permitem trabalhar com múltiplos eventos:
- CalendarReader.Count - A propriedade Count da classe CalendarReader permite recuperar o número de componentes Vevent (eventos) presentes no calendário, facilitando o acompanhamento do número total de eventos.
- CalendarReader.IsMultiEvents - Esta propriedade determina se o calendário contém múltiplos eventos. Ela fornece um valor booleano indicando se o calendário contém mais de um evento, auxiliando na identificação de calendários com um único ou múltiplos eventos.
- CalendarReader.Method - A propriedade Method obtém o tipo de método iCalendar associado ao objeto de calendário. Ela retorna o tipo de método, como “REQUEST”, “PUBLISH” ou “CANCEL”, fornecendo informações valiosas sobre o propósito do calendário.
- CalendarReader.Version - Obtém a Versão do iCalendar.
- CalendarReader.LoadAsMultiple() Este método permite o carregamento de uma lista de eventos de um calendário que contém múltiplos eventos. Ele retorna uma lista de objetos Appointment, possibilitando acesso fácil e processamento individual de cada evento.
O exemplo de código a seguir demonstra como você pode implementar esses recursos em seu projeto:
var reader = new CalendarReader(fileName);
Console.WriteLine("Calendar contains " + reader.Count + " events");
Console.WriteLine("The Version of the calendar is " + reader.Version);
Console.WriteLine("The Method of the calendar is " + reader.Method);
Console.WriteLine("Is calendar contains contains multiple events? - " + reader.IsMultiEvents);
List<Appointment> appointments = reader.LoadAsMultiple();
Adicionar Lembretes de Exibição
O trecho de código a seguir mostra como adicionar um lembrete de exibição a um calendário.
Adicionar Lembretes de Áudio
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 trecho de código a seguir mostra como adicionar/recuperar anexos de arquivos de calendário.
Verificar Status dos Destinatários em Convites de Reunião
O trecho de código a seguir mostra como exibir o status dos destinatários de um convite de reunião.
Criar Fuso Horário de Calendário MAPI a partir de Fuso Horário Padrão
O trecho de código a seguir mostra como criar MapiCalendarTimeZone a partir de fuso horário padrão.
Definir Lembretes para Compromissos
Um lembrete pode ser adicionado quando um compromisso é criado. Esses alarmes podem ser acionados com base em diferentes critérios, como n minutos antes do início da programação, repetir n vezes em intervalos de n. Tags diferentes podem ser usadas para criar esses gatilhos no script encerrado por BEGIN:VALARM e END:VALARM dentro de um compromisso. Existem várias variantes em que o lembrete pode ser configurado em um compromisso.
Adicionar Etiquetas para Definir Lembretes
O trecho de código a seguir mostra como definir um lembrete adicionando tags.
Converter Appointment EML para MSG com corpo HTML
Desde a versão 19.3, Aspose.Email oferece a capacidade de converter Appointment EML para MSG mantendo o corpo HTML do compromisso. Aspose.Email fornece um MapiConversionOptions.ForcedRtfBodyForAppointment propriedade que tem um valor padrão de true. Quando o valor de MapiConversionOptions.ForcedRtfBodyForAppointment é definido como true, o corpo do compromisso é convertido para o formato RTF. Para manter o formato do corpo do compromisso em HTML, defina o valor de MapiConversionOptions.ForcedRtfBodyForAppointment para false.
O exemplo a seguir demonstra o uso de MapiConversionOptions.ForcedRtfBodyForAppointment propriedade para manter o formato do corpo do compromisso em HTML.
Definir o Estado de Itens de Calendário MAPI Manualmente
Defina explicitamente o estado de um objeto MAPI Calendar, sobrescrevendo o comportamento padrão. Isso permite melhor controle sobre os estados de eventos de calendário, particularmente ao lidar com solicitações de reunião recebidas. Por padrão, quando uma reunião é criada, seu estado é MapiCalendarState.Meeting. Quando recebido na caixa de entrada do destinatário, ele muda automaticamente para MapiCalendarState.Received, e sua classe de mensagem é atualizada para “IPM.Schedule.Meeting.Request”. Usando SetStateForced permite definir manualmente o estado como Received, o que pode ser útil para preservar informações do organizador ao salvar o calendário como um arquivo MSG. No entanto, isso pode impedir o encaminhamento ou reenvio adequado da reunião.
O exemplo de código abaixo demonstra como criar um MapiCalendar objeto, atribua um organizador e defina explicitamente seu estado como ambos Meeting e Received usando SetStateForced. Em seguida, salva o item de calendário como um arquivo .msg.
MapiCalendar appointment = new MapiCalendar(
"LAKE ARGYLE WA 6743",
"Appointment",
"This is a very important meeting :)",
new DateTime(2024, 5, 10, 12, 30, 0, DateTimeKind.Utc),
new DateTime(2024, 5, 10, 13, 30, 0, DateTimeKind.Utc));
appointment.Organizer = new MapiElectronicAddress
{
EmailAddress = "test@aaa.com",
DisplayName = "test display Name"
};
appointment.SetStateForced(MapiCalendarState.Meeting | MapiCalendarState.Received);
appointment.Save("appointment.msg", AppointmentSaveFormat.Msg);