Gestione degli elementi del calendario di Outlook

Aspose.Email MapiCalendar La classe fornisce metodi e attributi per impostare varie proprietà di un elemento di calendario. Questa sezione fornisce esempi di codice per:

Crea e salva elementi del calendario

Il seguente frammento di codice mostra come creare e salvare un elemento del calendario in formato ICS.

Salva elementi del calendario come file MSG

Il seguente frammento di codice mostra come salvare l’elemento del calendario come MSG.

Salva gli ID prodotto per gli elementi MAPI Calendar in formato ICS

Il ProductIdentifier proprietà del MapiCalendarIcsSaveOptions la classe è usata per salvare un elemento calendario MAPI in un file iCalendar (ICS) preservando le informazioni originali di data e ora così come un identificatore di prodotto personalizzato. La proprietà specifica l’identificatore del prodotto che ha creato l’oggetto iCalendar.

Il seguente esempio di codice mostra come lavorare con i dati iCalendar (ICS) all’interno di un oggetto calendario MAPI:

var icsSaveOptions = new MapiCalendarIcsSaveOptions
{
    KeepOriginalDateTimeStamp = true,
    ProductIdentifier = "Foo Ltd"
};

mapiCalendar.Save("my.ics", icsSaveOptions);

Ottieni il numero totale di eventi

La classe CalendarReader consente di gestire gli eventi del calendario senza sforzo. Le seguenti proprietà e un metodo ti permettono di lavorare con più eventi:

  • CalendarReader.Count - La proprietà Count della classe CalendarReader consente di recuperare il numero di componenti Vevent (eventi) presenti nel calendario, facilitando il conteggio totale degli eventi.
  • CalendarReader.IsMultiEvents - Questa proprietà determina se il calendario contiene più eventi. Fornisce un valore booleano che indica se il calendario contiene più di un evento, aiutando a identificare calendari con singoli o più eventi.
  • CalendarReader.Method - La proprietà Method ottiene il tipo di metodo iCalendar associato all’oggetto calendario. Restituisce il tipo di metodo, ad esempio “REQUEST”, “PUBLISH” o “CANCEL”, fornendo preziose informazioni sullo scopo del calendario.
  • CalendarReader.Version - Ottiene la versione di iCalendar.
  • CalendarReader.LoadAsMultiple() Questo metodo consente il caricamento di un elenco di eventi da un calendario contenente più eventi. Restituisce un elenco di oggetti Appointment, permettendo un facile accesso e la lavorazione di ciascun evento singolarmente.

Il seguente esempio di codice dimostra come è possibile implementare queste funzionalità nel tuo progetto:

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

Aggiungi promemoria visuali

Il seguente frammento di codice mostra come aggiungere un promemoria visuale a un calendario.

Aggiungi promemoria audio

Il seguente frammento di codice mostra come aggiungere un promemoria audio a un calendario.

Aggiungere/Recuperare allegati da file di calendario

Il seguente frammento di codice mostra come aggiungere/recuperare allegati da file di calendario.

Verifica lo stato dei destinatari nelle richieste di riunione

Il seguente frammento di codice mostra come visualizzare lo stato dei destinatari da una richiesta di riunione.

Crea fuso orario MAPI Calendar da fuso orario standard

Il seguente frammento di codice mostra come creare MapiCalendarTimeZone da un fuso orario standard.

Imposta promemoria per gli appuntamenti

È possibile aggiungere un promemoria quando viene creato un appuntamento. Questi avvisi possono attivarsi in base a criteri diversi, ad esempio n minuti prima dell’inizio della pianificazione, ripetere n volte a intervalli n. Tag diversi possono essere utilizzati per creare questi trigger nello script racchiuso da BEGIN:VALARM e END:VALARM all’interno di un appuntamento. Esistono numerose varianti per impostare il promemoria su un appuntamento.

Aggiungi tag per impostare promemoria

Il seguente frammento di codice mostra come impostare un promemoria aggiungendo tag.

Converti appuntamento EML in MSG con corpo HTML

Dalla versione 19.3, Aspose.Email offre la possibilità di convertire gli appuntamenti EML in MSG mantenendo il corpo HTML dell’appuntamento. Aspose.Email fornisce un MapiConversionOptions.ForcedRtfBodyForAppointment proprietà che ha un valore predefinito di true. Quando il valore di MapiConversionOptions.ForcedRtfBodyForAppointment se impostato su true, il corpo dell’appuntamento viene convertito in formato RTF. Per mantenere il formato del corpo dell’appuntamento in HTML, impostare il valore di MapiConversionOptions.ForcedRtfBodyForAppointment a false.

Il seguente esempio dimostra l’uso di MapiConversionOptions.ForcedRtfBodyForAppointment proprietà per mantenere il formato del corpo dell’appuntamento in HTML.

Imposta manualmente lo stato degli elementi MAPI Calendar

Imposta lo stato di un oggetto MAPI Calendar esplicitamente, sovrascrivendo il comportamento predefinito. Questo consente un migliore controllo sugli stati degli eventi del calendario, particolarmente quando si gestiscono richieste di riunione ricevute. Per impostazione predefinita, quando viene creata una riunione, il suo stato è MapiCalendarState.Meeting. Quando ricevuto nella casella di posta del destinatario, cambia automaticamente in MapiCalendarState.Received, e la sua classe di messaggio è aggiornata a “IPM.Schedule.Meeting.Request”. Usando SetStateForced consente di impostare manualmente lo stato a Received, il che può essere utile per preservare le informazioni dell’organizzatore quando si salva il calendario come file MSG. Tuttavia, ciò può impedire il corretto inoltro o il rinvio della riunione.

Il esempio di codice sottostante dimostra come creare un MapiCalendar oggetto, assegna un organizzatore e imposta esplicitamente il suo stato a entrambi Meeting e Received usando SetStateForced. Quindi salva l’elemento del calendario come file .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);