通过电子邮件共享日历信息
此代码示例展示了如何通过 iCalendar 格式的电子邮件共享日历信息。
示例
iCalendar 格式允许您通过标准 Internet 邮件格式和协议向其他 Outlook 或非 Outlook 客户端发送项目。 该代码示例使用 CalendarSharing 对象,该对象支持从日历文件夹中将信息导出为 iCalendar 格式。
该代码示例先对默认"日历"文件夹调用 GetCalendarExporter ,以获取 CalendarSharing 对象。 然后,该示例通过设置 CalendarSharing 对象的属性来指定导出条件,如日历信息的日期范围、是否包括附件以及标记为"私有"的约会的详细信息。
此代码示例调用 CalendarSharing 对象的 ForwardAsICal 方法,以通过电子邮件发送日历信息。
如果使用 Visual Studio 测试此代码示例,必须先添加对 Microsoft Outlook 15.0 对象库组件的引用,并在导入 Microsoft.Office.Interop.Outlook 命名空间时指定 Outlook 变量。 不得将 Imports 或 using 语句直接添加到此代码示例中的函数前面,这两个语句必须后跟公共类声明。 下面的代码行演示了如何在 Visual Basic 和 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);
}