原文:C#中调用Outlook API 发起会议

在我上一篇博文中曾提到了 SharePoint 中调用传出电子邮件中的邮件服务器及地址发送邮件

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

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

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

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

那这Outlook会不会有同样的方式呢,经过测试,还真的找到方法,原来,它的API指定的发件人是和你机上运行的Outlook的帐户设置直接相关的。
  通过 ApplicationClass.Session.Accounts即可找到您设置的帐户集合,需要特别特别注意的是,在这里,取某个人员时,集合的索引是从1开始,而不是
  从0开始。 找到相关的帐户后,可以通过 AppointmentItem.SendUsingAccount 属性来指定约会的发件人。
 ---但是,如果我不使用Outlook里帐户设置的帐户集合,而要指定其它的邮件帐户来发送邮件时该怎么弄?到现在也没有找到或发现办法,希望知道的达人们能
  指点一下门路,拜谢先~~~~

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

 1using System; 2using System.Collections.Generic; 3using System.Text; 4using Microsoft.Office.Interop.Outlook; 5/**///////////////////// 6/**//* 调用Outlook api 发起会议 7/* mcjeremy@cnblogs.com 8//////////////////// 9namespace OutlookAPI10{11    class Program12    {13        static void Main(string[] args)14        {15            try16            {17                ApplicationClass oApp = new Microsoft.Office.Interop.Outlook.ApplicationClass();1819                //会议是约会的一种20                AppointmentItem oItem = (AppointmentItem)oApp.CreateItem(OlItemType.olAppointmentItem);21                oItem.MeetingStatus = OlMeetingStatus.olMeeting;2223                oItem.Subject = "主题";2425                oItem.Body = "内容";2627                oItem.Location = "地点";2829                //开始时间 30                oItem.Start = DateTime.Now.AddDays(1);3132                //结束时间33                oItem.End = DateTime.Now.AddDays(2);3435                //提醒设置36                oItem.ReminderSet = true;37                oItem.ReminderMinutesBeforeStart = 5;3839                //是否全天事件40                oItem.AllDayEvent = false;4142                oItem.BusyStatus = OlBusyStatus.olBusy;                4344                //索引从1开始,而不是从045                //发件人的帐号信息46                oItem.SendUsingAccount = oApp.Session.Accounts[2];               4748                //添加必选人49                Recipient force = oItem.Recipients.Add("mailuser2@mailserver.com");50                force.Type = (int)OlMeetingRecipientType.olRequired;51                //添加可选人52                Recipient opt = oItem.Recipients.Add("mailuser3@p.mailserver.com");53                opt.Type = (int)OlMeetingRecipientType.olOptional;54                //添加会议发起者55                Recipient sender = oItem.Recipients.Add("mailuser1@mailserver.com");56                sender.Type = (int)OlMeetingRecipientType.olOrganizer;                    57               58                oItem.Recipients.ResolveAll();5960                //oItem.SaveAs("d:/TEST.MSG", OlSaveAsType.olMSG);6162                oItem.Send();6364                //MailItem mItem = (MailItem)oApp.CreateItem(OlItemType.olMailItem);65                //Recipient rTo = mItem.Recipients.Add("****");66                //rTo.Type = (int)OlMailRecipientType.olTo;67                //Recipient rCC=mItem.Recipients.Add("****");68                //rCC.Type = (int)OlMailRecipientType.olCC;69                //Recipient rBC = mItem.Recipients.Add("****");70                //rBC.Type = (int)OlMailRecipientType.olBCC;7172                Console.WriteLine("OK");73            }74            catch (System.Exception ex)75            {76                Console.WriteLine(ex.Message);77            }7879            Console.ReadLine();80        }81    }82}83

C#中调用Outlook API 发起会议的更多相关文章

  1. ASP.NET MVC4中调用WEB API的四个方法

    http://tech.it168.com/a2012/0606/1357/000001357231_all.shtml [IT168技术]当今的软件开发中,设计软件的服务并将其通过网络对外发布,让各 ...

  2. C#中调用Windows API的要点 .

    介绍 API(Application Programming Interface),我想大家不会陌生,它是我们Windows编程的常客,虽然基于.Net平台的C#有了强大的类库,但是,我们还是不能否认 ...

  3. C#中调用Windows API时的数据类型对应关系

    原文 C#中调用Windows API时的数据类型对应关系 BOOL=System.Int32 BOOLEAN=System.Int32 BYTE=System.UInt16 CHAR=System. ...

  4. Dynamics 365 CE的插件/自定义工作流活动中调用Web API示例代码

    微软动态CRM专家罗勇 ,回复325或者20190428可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me! 现在Web API越来越流行,有时候为了程序更加健壮,需要在插件 ...

  5. shell中调用jenkins API批量运行历史任务

    shell中调用jenkins API批量运行jenkins带参数的任务: #!/bin/sh #startdate=20150127 startdate=20150201 while [ " ...

  6. [windows菜鸟]C#中调用Windows API的技术要点说明

    在.Net Framework SDK文档中,关于调用Windows API的指示比较零散,并且其中稍全面一点的是针对Visual Basic .net讲述的.本文将C#中调用API的要点汇集如下,希 ...

  7. MFC中调用web api

    使用COM组件来调用,需要catch com error. IXMLHTTPRequestPtr pIXMLHTTPRequest = NULL; BSTR bstrString = NULL; HR ...

  8. C++多线程中调用python api函数

    错误场景:一直等待全局锁. 解决方法: 一.首先定义一个封装类,主要是保证PyGILState_Ensure, PyGILState_Release配对使用,而且这个类是可以嵌套使用的. #inclu ...

  9. 怎样在自己的网页中调用百度API

    https://blog.csdn.net/u010251278/article/details/52877370 以下内容转自上述网站,为了以后的学习方便,为此才特地将该网站内容转到自己的博客,多谢 ...

随机推荐

  1. NSIS:应用软件自动升级功能的探索与实践

    原文 NSIS:应用软件自动升级功能的探索与实践 记得以前轻狂曾分享过使用第三方软件实现应用软件自动升级功能 (详细http://www.flighty.cn/html/soft/20110106_1 ...

  2. MTK6572横屏的调试过程

    电视剧集:系统MTK缺省的系统源代码,Phone模式.底部有三个虚拟按键.需求为,设置成默认横屏,设定一个合理的虚拟按键方案. ------------------------------------ ...

  3. Ubuntu 当黑屏解决方案安装

    前几天我就已经安装Red hat 企业版,只是可惜它并没有提供数据源.我能够安装自己的软件,但我不能完全靠解决,因此,我们决定改变系统,最后我选择ubuntu.随时下载系统.然后用u盘制作启动盘,全部 ...

  4. IOS ARC和非ARC文件混用

    ARC在SDK4.0的时候增加的,因为要和曾经的项目融合,就会有arc和非arc文件的混合. 当然,也就这两种情况: 1.自己的旧项目没有使用ARC,可是引入的第三方库却是使用了ARC的. 2.自己的 ...

  5. malloc,free简单的实现

    有关标准库首先简要malloc其原理:     标准库内部通过一个双向链表.管理在堆中动态分配的内存.     malloc函数分配内存时会附加若干(一般是12个)字节,存放控制信息.     该信息 ...

  6. Visual Studio Code开发TypeScript

    [Tool] 使用Visual Studio Code开发TypeScript   [Tool] 使用Visual Studio Code开发TypeScript 注意 依照本篇操作步骤实作,就可以在 ...

  7. Java设计模式(七)策略模式 模板模式

    (十三)策略模式 策略图案限定了多个封装算法,该算法可以相互替换包.法的客户.借用还有一位大神的样例. interface ICalculator{ public int calculate(Stri ...

  8. java安全编程

    java安全程序实际上是一个点稍微防御性编程意味着内,竟java作为编程语言,较C,c++,本身被认为是比较安全的,随着C,C++这样的偏底层的编程语言比,java少了显示的指针调用.少了程序上的内存 ...

  9. 也许游戏 它P/N图分析

    关于游戏的问题,更多的时候是使用P/N图分析              p n p n p n p n   n  n n n n n n n   p n p n p n p n   n  n n n  ...

  10. RPC框架实现

    转载RPC框架实现 RPC(Remote Procedure Call,远程过程调用)框架是分布式服务的基石,实现RPC框架需要考虑方方面面.其对业务隐藏了底层通信过程(TCP/UDP.打包/解包.序 ...