outlook 会议室

  但是,里面的方法只能用于发送普通电子邮件。如果要发起会议之类的特殊邮件的话,可以C#调用Outlook API,自身的API。

    创建项目后,为它添加.NET引用:“Microsoft.Office.Interop.Outlook"的引用,即可调用,需要注意的是,在添加的时候,注意一下OFFICE版本号。

    在C#调用Outlook API发起会议的过程中,遇到了一个问题:

    创建完一个约会条目后,找了很久没找到如何为这一约会指定“发件人”,后来一想,Window CF 中,查找人员信息有个OutlookSession的东东,

    那这Outlook会不会有同样的方式呢,经过测试,还真的找到方法,原来,它的API指定的发件人是和你机上运行的Outlook的帐户设置直接相关的。

    通过 ApplicationClass.Session.Accounts即可找到您设置的帐户集合,需要特别特别注意的是,在这里,取某个人员时,集合的索引是从1开始,而不是

    从0开始。 找到相关的帐户后,可以通过 AppointmentItem.SendUsingAccount 属性来指定约会的发件人。但是,如果我不使用Outlook里帐户设置的帐户集合,而要指定其它的邮件帐户来发送邮件时该怎么弄?到现在也没有找到或发现办法,希望知道的达人们能

    指点一下门路,拜谢先~~~~

    下面是测试的代码,在WIN2003+OFFICE12下运行通过,成功创建会议:

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Text;  
  4. using Microsoft.Office.Interop.Outlook;  
  5. ////////////////////  
  6. /* 调用Outlook api 发起会议  
  7. /* mcjeremy@cnblogs.com  
  8. ////////////////////  
  9. namespace OutlookAPI  
  10. {  
  11. class Program  
  12. {  
  13. static void Main(string[] args)  
  14. {  
  15. try  
  16. {  
  17. ApplicationClass oApp = 
  18. new Microsoft.Office.Interop.Outlook.ApplicationClass();  
  19.  
  20. //会议是约会的一种  
  21. AppointmentItem oItem = (AppointmentItem)oApp.CreateItem(
  22. OlItemType.olAppointmentItem);  
  23. oItem.MeetingStatus = OlMeetingStatus.olMeeting;  
  24.  
  25. oItem.Subject = "主题";  
  26.  
  27. oItem.Body = "内容";  
  28.  
  29. oItem.Location = "地点";  
  30.  
  31. //开始时间   
  32. oItem.Start = DateTime.Now.AddDays(1);  
  33.  
  34. //结束时间  
  35. oItem.End = DateTime.Now.AddDays(2);  
  36.  
  37. //提醒设置  
  38. oItem.ReminderSet = true;  
  39. oItem.ReminderMinutesBeforeStart = 5;  
  40.  
  41. //是否全天事件  
  42. oItem.AllDayEvent = false;  
  43.  
  44. oItem.BusyStatus = OlBusyStatus.olBusy;  
  45.  
  46. //索引从1开始,而不是从0  
  47. //发件人的帐号信息  
  48. oItem.SendUsingAccount = oApp.Session.Accounts[2];  
  49.  
  50. //添加必选人  
  51. Recipient force = oItem.Recipients.Add("mailuser2@mailserver.com");  
  52. force.Type = (int)OlMeetingRecipientType.olRequired;  
  53. //添加可选人  
  54. Recipient opt = oItem.Recipients.Add("mailuser3@p.mailserver.com");  
  55. opt.Type = (int)OlMeetingRecipientType.olOptional;  
  56. //添加会议发起者  
  57. Recipient sender = oItem.Recipients.Add("mailuser1@mailserver.com");  
  58. sender.Type = (int)OlMeetingRecipientType.olOrganizer;  
  59.  
  60. oItem.Recipients.ResolveAll();  
  61.  
  62. //oItem.SaveAs("d:/TEST.MSG", OlSaveAsType.olMSG);  
  63.  
  64. oItem.Send();  
  65.  
  66. //MailItem mItem = (MailItem)oApp.CreateItem(OlItemType.olMailItem);  
  67. //Recipient rTo = mItem.Recipients.Add("****");  
  68. //rTo.Type = (int)OlMailRecipientType.olTo;  
  69. //Recipient rCC=mItem.Recipients.Add("****");  
  70. //rCC.Type = (int)OlMailRecipientType.olCC;  
  71. //Recipient rBC = mItem.Recipients.Add("****");  
  72. //rBC.Type = (int)OlMailRecipientType.olBCC;  
  73.  
  74. Console.WriteLine("OK");  
  75. }  
  76. catch (System.Exception ex)  
  77. {  
  78. Console.WriteLine(ex.Message);  
  79. }  
  80.  
  81. Console.ReadLine();  
  82. }  
  83. }  

以上介绍C#调用Outlook API,希望对你有所帮助。

posted @ 2013-09-06 16:39  汉水浪子  阅读(915)  评论(0编辑  收藏  举报