Partage des informations de calendrier par e-mail
Cet exemple montre comment partager des informations d’un calendrier par courrier électronique au format iCalendar.
Exemple
Le format iCalendar vous permet d'envoyer des éléments à d'autres clients Outlook ou non-Outlook par le biais de protocoles et formats de messagerie Internet standard. L'exemple de code utilise l'objet CalendarSharing qui prend en charge l'exportation d'informations d'un dossier de calendrier au format iCalendar.
L'exemple de code appelle tout d'abord GetCalendarExporter sur le dossier Calendrier par défaut afin d'obtenir un objet CalendarSharing. Il définit ensuite les propriétés de l'objet CalendarSharing pour spécifier les critères d'exportation, tels que la plage de dates des informations de calendrier, s'il faut inclure les pièces jointes, et les détails des rendez-vous marqués comme « privés ».
Pour envoyer les informations de calendrier par messagerie, l’exemple de code appelle la méthode ForwardAsICal de l’objet CalendarSharing.
Si vous utilisez Visual Studio pour tester cet exemple de code, vous devez d’abord ajouter une référence au composant Bibliothèque d’objets Microsoft Outlook 15.0 et spécifier la variable lorsque vous importez l’espace de noms Microsoft.Office.Interop.Outlook. L'instruction Importer ou utilisation ne doit pas se produire juste avant les fonctions de l'exemple de code, mais doit être ajoutée avant la déclaration publique. Les lignes de code suivantes montrent comment effectuer l’importation et l’affectation dans Visual Basic et dans C#.
Imports Outlook = Microsoft.Office.Interop.Outlook
using Outlook = Microsoft.Office.Interop.Outlook;
Private Sub SendNextWeekToAddress(ByVal sendToAddresses As String)
If String.IsNullOrEmpty(sendToAddresses) Then
Throw New ArgumentException( _
"Parameter must contain a value.", "sendToAddress")
End If
Dim calendar As Outlook.Folder = TryCast( _
Application.Session.GetDefaultFolder( _
Outlook.OlDefaultFolders.olFolderCalendar), Outlook.Folder)
Dim exporter As Outlook.CalendarSharing = calendar.GetCalendarExporter()
'' Set the properties for the export
exporter.CalendarDetail = Outlook.OlCalendarDetail.olFullDetails
exporter.IncludeAttachments = True
exporter.IncludePrivateDetails = False
exporter.RestrictToWorkingHours = False
exporter.StartDate = DateTime.Today.Date
exporter.EndDate = DateTime.Today.Date.AddDays(7)
'' Create a new mail item
Dim calendarMail As Outlook.MailItem = exporter.ForwardAsICal _
(Outlook.OlCalendarMailFormat. _
olCalendarMailFormatDailySchedule)
calendarMail.To = sendToAddresses
calendarMail.Send()
calendarMail.Display()
End Sub
private void SendNextWeekToAddress(string sendToAddresses)
{
if (string.IsNullOrEmpty(sendToAddresses))
throw new ArgumentException(
"sendToAddress","Parameter must contain a value.");
Outlook.Folder calendar =
Application.Session.GetDefaultFolder(
Outlook.OlDefaultFolders.olFolderCalendar)
as Outlook.Folder;
Outlook.CalendarSharing exporter = calendar.GetCalendarExporter();
// Set the properties for the export
exporter.CalendarDetail = Outlook.OlCalendarDetail.olFullDetails;
exporter.IncludeAttachments = true;
exporter.IncludePrivateDetails = false;
exporter.RestrictToWorkingHours = false;
exporter.StartDate = DateTime.Today.Date;
exporter.EndDate = DateTime.Today.Date.AddDays(7);
// Create a new mail item
Outlook.MailItem calendarMail =
exporter.ForwardAsICal(Outlook.OlCalendarMailFormat.
olCalendarMailFormatDailySchedule);
calendarMail.To = sendToAddresses;
((Outlook.MailItemClass)calendarMail).Send();
((Outlook.MailItemClass)calendarMail).Display(Type.Missing);
}