OutLook会议室预定提醒

项目组采用敏捷开发管理,每两周一个迭代。写个工具做会议室预定。

代码下载:https://download.csdn.net/download/linmilove/10547579

AppointmentItem agendaMeeting = (AppointmentItem)new Microsoft.Office.Interop.Outlook.ApplicationClass().CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olAppointmentItem);
agendaMeeting.MeetingStatus = OlMeetingStatus.olMeeting;

agendaMeeting.Location = localtion[0];
agendaMeeting.Subject = string.Format("{0} {1:yyyy-MM-dd} {2}", txtSubject.Text, dtpStart.Value, agendaMeeting.Location);
agendaMeeting.Body = txtBody.Text;
agendaMeeting.Start = dtpStart.Value;
agendaMeeting.End = dtpEnd.Value;

Recipient recipient = agendaMeeting.Recipients.Add(localtion[1]);
recipient.Type = (int)OlMeetingRecipientType.olRequired;
System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex("([A-Za-z0-9_-]+(\\.\\w+)*@(\\w+\\.)+\\w{2,5})", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
var match = regex.Matches(txtRecipients.Text);
foreach (System.Text.RegularExpressions.Match item2 in match)
{
    agendaMeeting.Recipients.Add(item2.Value);
}
((_AppointmentItem)agendaMeeting).Send();
Thread.Sleep(3000);
AppointmentItem appt = (new Microsoft.Office.Interop.Outlook.ApplicationClass()).Session
    .GetDefaultFolder(OlDefaultFolders.olFolderCalendar).Items.Find(string.Format("[Subject]='{0}'", agendaMeeting.Subject)) as AppointmentItem;
if (appt != null)
{
    bool isDeclined = false;
    foreach (Recipient recip in appt.Recipients)
    {
        if (recip.Name.Contains("会议室") && recip.MeetingResponseStatus == OlResponseStatus.olResponseDeclined)
        {
            //预定失败
            isDeclined = true;
            break;
        }
    }
    if (!isDeclined)
    {
        break;
    }
}

界面预览:

 

posted @ 2018-07-17 22:46  随便取个名字算了  阅读(781)  评论(0编辑  收藏  举报