0

所以我一直在研究以编程方式为 Outlook 日历创建日历事件。

我查看了此处此处的文档。

是否有关于在 .ASPX 页面上显示的 asp.net 网络表单或针对该域的代码示例的任何分步操作。

我尝试按照此示例向日历添加约会,但收到错误“HttpApplicationState 不包含“CreateItem”的定义,并且找不到接受“HttpApplicationState”类型的第一个参数的可访问扩展方法“CreateItem”(是您缺少 using 指令或程序集引用?)

private void AddAppointment()
{
    try
    {
        Outlook.AppointmentItem newAppointment = (Outlook.AppointmentItem)
        Application.CreateItem(Outlook.OlItemType.olAppointmentItem);
        newAppointment.Start = DateTime.Now.AddHours(2);
        newAppointment.End = DateTime.Now.AddHours(3);
        newAppointment.Location = "ConferenceRoom #2345";
        newAppointment.Body = "We will discuss progress on the group project.";
        newAppointment.AllDayEvent = false;
        newAppointment.Subject = "Group Project";
        newAppointment.Recipients.Add("Roger Harui");
        Outlook.Recipients sentTo = newAppointment.Recipients;
        Outlook.Recipient sentInvite = null;
        sentInvite = sentTo.Add("Holly Holt");
        sentInvite.Type = (int)Outlook.OlMeetingRecipientType.olRequired;
        sentInvite = sentTo.Add("David Junca ");
        sentInvite.Type = (int)Outlook.OlMeetingRecipientType.olOptional;
        sentTo.ResolveAll();
        newAppointment.Save();
        newAppointment.Display(true);
    }
    catch (Exception ex)
    {
        Console.WriteLine("The following error occurred: " + ex.Message);
    }
}

这些是我的使用:

using System;
using Outlook = Microsoft.Office.Interop.Outlook;

我是不是完全错了?

编辑#1:我想将 Outlook 日历集成到网站中,以便用户可以将约会添加到他们的 Outlook 日历中。我正在寻找简明的文档来在 ASP.NET webforms 站点上用 C# 实现这一点,并且大多数文档都是针对 Microsoft.Office.Interop 的,这对我来说似乎在本地不起作用。

4

1 回答 1

0

您在示例中显示的代码在服务器上执行。通常,Outlook 未安装在服务器上,因此您会收到错误消息。此外,服务器上的用户上下文通常是服务帐户之一,而不是发起请求的用户。通常,有不同的方法用于创建日历项。

使您网站的用户能够将约会添加到他们的日历(独立于他们使用的程序)的一种简单方法是通过单击您网站上的链接从您的网站下载iCalendar文件 (ICS)。该文件在客户端打开,用户可以将约会保存在他们使用的日历应用程序中。有各种nuget 包可以支持您创建文件。

如果它是公司的内部应用程序,您还可以将特定的“添加到 Outlook 日历”功能添加到您的站点,以便您了解有关基础结构的一些详细信息。例如,如果公司使用 Office 365,您可以使用Microsoft Graph创建日历项目。

如果公司使用 Exchange 服务器,您还可以使用Exchange Web 服务 (EWS)访问 Exchange 服务器并创建约会,而无需使用 Outlook。

于 2018-12-03T14:57:00.373 回答