• 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,希望对你有所帮助。

  • 相关阅读:
    Spring
    dispatcher配置
    Filter链执行顺序
    Filter在放行请求前后对response操作导致页面输出差异的剖析
    Javaweb三大组件之Filter
    TensorFlow中loss与val_loss、accuracy和val_accuracy分别是什么含义
    Tomcat启动失败,Failed to destroy end point associated with ProtocolHandler["ajp-nio-8009"] Duplicate unique value [HelloServlet] declared for identity;
    Servlet之创建Servlet基本步骤
    谈谈做oj
    spring实战之获取bean
  • 原文地址:https://www.cnblogs.com/ayforver/p/3305736.html
Copyright © 2020-2023  润新知