如何创建和发送约会到Microsoft Outlook日历?

时间:2009-12-23 11:39:35

标签: c# .net automation outlook-2003

我正在尝试使用以下代码在另一个人的Microsoft Outlook(2003)日历中创建约会。运行此程序时,约会将保存在我的日历中。但不会发送给收件人。

try
{
    Microsoft.Office.Interop.Outlook.Application app = null;
    Microsoft.Office.Interop.Outlook.AppointmentItem appt = null;

    app = new Microsoft.Office.Interop.Outlook.Application();

    appt = (Microsoft.Office.Interop.Outlook.AppointmentItem)app
        .CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olAppointmentItem);
    appt.Subject = "Meeting ";
    appt.Body = "Test Appointment body";
    appt.Location = "TBD";
    appt.Start = Convert.ToDateTime("12/23/2009 05:00:00 PM");
    appt.Recipients.Add("smuthumari@mycompany.com");
    appt.End = Convert.ToDateTime("12/23/2009 6:00:00 PM");
    appt.ReminderSet = true;
    appt.ReminderMinutesBeforeStart = 15;
    appt.Importance = Microsoft.Office.Interop.Outlook.OlImportance.olImportanceHigh;
    appt.BusyStatus = Microsoft.Office.Interop.Outlook.OlBusyStatus.olBusy;
    appt.Save();
    appt.Send();
}
catch (COMException ex)
{
    Response.Write(ex.ToString());
}

我错过了什么吗?任何人都可以帮我解决这个问题吗?

3 个答案:

答案 0 :(得分:5)

预约后:

Outlook.MailItem mailItem = appt.ForwardAsVcal();
mailItem.To = "recipient's email address";
mailItem.Send();

答案 1 :(得分:3)

尝试添加:

appt.MeetingStatus = Microsoft.Office.Interop.Outlook.OlMeetingStatus.olMeeting;

默认状态是我不确定正在发送的约会。

答案 2 :(得分:1)

以下是我解决此问题的方法:

我把(像Sonny Boy的帖子):

Outlook.MailItem mailItem = appt.ForwardAsVcal();
mailItem.To = "firstname.lastname@email.com";
mailItem.Send();

但我还必须创建一个web.config文件,并设置授权访问以避免任何COMException:

<system.web>
  <authorization>
    <deny users="?"/>
  </authorization>
</system.web>