Gestion des éléments du calendrier Outlook
Aspose.Email MapiCalendar La classe fournit des méthodes et des attributs pour définir diverses propriétés d’un élément de calendrier. Cette section fournit des exemples de code pour :
- Créer et enregistrer des éléments de calendrier
- Enregistrer les éléments du calendrier en fichiers MSG
- Enregistrer les ID de produit pour les éléments de calendrier MAPI au format ICS
- Obtenir le nombre total d’événements
- Ajouter des rappels d’affichage
- Ajouter des rappels audio
- Ajouter/Récupérer des pièces jointes à partir de fichiers de calendrier
- Vérifier le statut des destinataires dans les demandes de réunion
- Créer un fuseau horaire MAPI Calendar à partir d’un fuseau horaire standard
- Définir des rappels pour les rendez‑vous
- Convertir le rendez‑vous EML en MSG avec corps HTML
Créer et enregistrer des éléments du calendrier
L’extrait de code suivant montre comment créer et enregistrer un élément de calendrier au format ICS.
Enregistrer les éléments du calendrier en fichiers MSG
L’extrait de code suivant montre comment enregistrer l’élément de calendrier au format MSG.
Enregistrer les ID de produit pour les éléments de calendrier MAPI au format ICS
Le ProductIdentifier propriété du MapiCalendarIcsSaveOptions la classe est utilisée pour enregistrer un élément de calendrier MAPI dans un fichier iCalendar (ICS) en préservant les informations de date et d’heure d’origine ainsi qu’un identifiant de produit personnalisé. La propriété spécifie l’identifiant du produit qui a créé l’objet iCalendar.
L’exemple de code suivant montre comment travailler avec les données iCalendar (ICS) au sein d’un objet de calendrier MAPI :
var icsSaveOptions = new MapiCalendarIcsSaveOptions
{
KeepOriginalDateTimeStamp = true,
ProductIdentifier = "Foo Ltd"
};
mapiCalendar.Save("my.ics", icsSaveOptions);
Obtenir le nombre total d’événements
La classe CalendarReader permet de gérer les événements de calendrier sans effort. Les propriétés suivantes et une méthode vous permettent de travailler avec plusieurs événements :
- CalendarReader.Count - La propriété Count de la classe CalendarReader vous permet de récupérer le nombre de composants Vevent (événements) présents dans le calendrier, ce qui facilite le suivi du nombre total d’événements.
- CalendarReader.IsMultiEvents - Cette propriété détermine si le calendrier contient plusieurs événements. Elle renvoie une valeur booléenne indiquant si le calendrier comporte plus d’un événement, aidant à identifier les calendriers à événements uniques ou multiples.
- CalendarReader.Method - La propriété Method récupère le type de méthode iCalendar associé à l’objet calendrier. Elle renvoie le type de méthode, tel que « REQUEST », « PUBLISH » ou « CANCEL », fournissant des informations précieuses sur le but du calendrier.
- CalendarReader.Version - Obtient la version d’iCalendar.
- CalendarReader.LoadAsMultiple() Cette méthode permet de charger une liste d’événements depuis un calendrier contenant plusieurs événements. Elle renvoie une liste d’objets Appointment, facilitant l’accès et le traitement de chaque événement individuellement.
L’exemple de code suivant montre comment vous pouvez implémenter ces capacités dans votre projet :
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();
Ajouter des rappels d’affichage
L’extrait de code suivant montre comment ajouter un rappel d’affichage à un calendrier.
Ajouter des rappels audio
L’extrait de code suivant montre comment ajouter un rappel audio à un calendrier.
Ajouter/Récupérer des pièces jointes à partir de fichiers de calendrier
L’extrait de code suivant montre comment ajouter/récupérer des pièces jointes à partir de fichiers de calendrier.
Vérifier le statut des destinataires dans les demandes de réunion
L’extrait de code suivant montre comment afficher le statut des destinataires d’une demande de réunion.
Créer un fuseau horaire MAPI Calendar à partir d’un fuseau horaire standard
L’extrait de code suivant montre comment créer un MapiCalendarTimeZone à partir d’un fuseau horaire standard.
Définir des rappels pour les rendez‑vous
Un rappel peut être ajouté lors de la création d’un rendez‑vous. Ces alarmes peuvent se déclencher selon différents critères tels que n minutes avant le début de la planification, se répéter n fois à des intervalles de n. Différentes balises peuvent être utilisées pour créer ces déclencheurs dans le script encadré par BEGIN:VALARM et END:VALARM au sein d’un rendez‑vous. Il existe plusieurs variantes pour définir un rappel sur un rendez‑vous.
Ajouter des balises pour définir des rappels
L’extrait de code suivant montre comment définir un rappel en ajoutant des balises.
Convertir le rendez‑vous EML en MSG avec corps HTML
Depuis la version 19.3, Aspose.Email offre la possibilité de convertir un rendez‑vous EML en MSG tout en conservant le corps HTML du rendez‑vous. Aspose.Email fournit un MapiConversionOptions.ForcedRtfBodyForAppointment propriété qui a une valeur par défaut de true. Lorsque la valeur de MapiConversionOptions.ForcedRtfBodyForAppointment défini sur true, le corps du rendez‑vous est converti au format RTF. Pour conserver le format du corps du rendez‑vous en HTML, définissez la valeur de MapiConversionOptions.ForcedRtfBodyForAppointment à false.
L’exemple suivant montre l’utilisation de MapiConversionOptions.ForcedRtfBodyForAppointment propriété pour conserver le format du corps du rendez‑vous en HTML.
Définir manuellement l’état des éléments du calendrier MAPI
Définissez explicitement l’état d’un objet MAPI Calendar, en surchargeant le comportement par défaut. Cela permet un meilleur contrôle des états des événements de calendrier, notamment lors du traitement des demandes de réunion reçues. Par défaut, lorsqu’une réunion est créée, son état est MapiCalendarState.Meeting. Lorsqu’il est reçu dans la boîte de réception du destinataire, il passe automatiquement à MapiCalendarState.Received, et sa classe de message est mise à jour vers « IPM.Schedule.Meeting.Request ». En utilisant SetStateForced permet de définir manuellement l’état à Received, ce qui peut être utile pour préserver les informations de l’organisateur lors de l’enregistrement du calendrier sous forme de fichier MSG. Cependant, cela peut empêcher le transfert ou l’envoi répété correct de la réunion.
L’exemple de code ci‑dessous montre comment créer un MapiCalendar objet, assigner un organisateur, et définir explicitement son état à la fois Meeting et Received en utilisant SetStateForced. Il enregistre ensuite l’élément du calendrier sous forme de fichier .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);