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 发起会议的更多相关文章
- ASP.NET MVC4中调用WEB API的四个方法
http://tech.it168.com/a2012/0606/1357/000001357231_all.shtml [IT168技术]当今的软件开发中,设计软件的服务并将其通过网络对外发布,让各 ...
- C#中调用Windows API的要点 .
介绍 API(Application Programming Interface),我想大家不会陌生,它是我们Windows编程的常客,虽然基于.Net平台的C#有了强大的类库,但是,我们还是不能否认 ...
- C#中调用Windows API时的数据类型对应关系
原文 C#中调用Windows API时的数据类型对应关系 BOOL=System.Int32 BOOLEAN=System.Int32 BYTE=System.UInt16 CHAR=System. ...
- Dynamics 365 CE的插件/自定义工作流活动中调用Web API示例代码
微软动态CRM专家罗勇 ,回复325或者20190428可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me! 现在Web API越来越流行,有时候为了程序更加健壮,需要在插件 ...
- shell中调用jenkins API批量运行历史任务
shell中调用jenkins API批量运行jenkins带参数的任务: #!/bin/sh #startdate=20150127 startdate=20150201 while [ " ...
- [windows菜鸟]C#中调用Windows API的技术要点说明
在.Net Framework SDK文档中,关于调用Windows API的指示比较零散,并且其中稍全面一点的是针对Visual Basic .net讲述的.本文将C#中调用API的要点汇集如下,希 ...
- MFC中调用web api
使用COM组件来调用,需要catch com error. IXMLHTTPRequestPtr pIXMLHTTPRequest = NULL; BSTR bstrString = NULL; HR ...
- C++多线程中调用python api函数
错误场景:一直等待全局锁. 解决方法: 一.首先定义一个封装类,主要是保证PyGILState_Ensure, PyGILState_Release配对使用,而且这个类是可以嵌套使用的. #inclu ...
- 怎样在自己的网页中调用百度API
https://blog.csdn.net/u010251278/article/details/52877370 以下内容转自上述网站,为了以后的学习方便,为此才特地将该网站内容转到自己的博客,多谢 ...
随机推荐
- C++ - 派生类访问模板基类(templatized base class)命名
派生类访问模板基类(templatized base class)命名 本文地址: http://blog.csdn.net/caroline_wendy/article/details/239936 ...
- paip.自适应网页设计 同 响应 与设计的原理的差and实践总结
paip.自适应网页设计 同 响应 与设计的原理的差and实践总结 响应式Web设计(Responsive Web design)的理念是: 1 #-----------自适应布局VS响应式布局 2 ...
- FastJson基本使用
在发展中Android的过程中.假设我们常与server联系,更新数据等,然后,json它必须是一个良好的数据格公式,但随着json.使用原生的解析也能够,可是非常不高效,所以这里介绍两种json数据 ...
- poj2443(简单的状态压缩)
POJ2443 Set Operation Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 2679 Accepted: ...
- 讨论oracle在rowid和rownum
[ 概要 ] 刚刚接触oracle的同学可能经常会被rowid和rownum这两个词弄混, 弄清楚这两个家伙对于我们写sql会有非常大的帮助, 以下偶就抛砖引玉, 简单地谈谈他们之间的差别吧. [ 比 ...
- 一个用于每一天JavaScript示例-SVG中间javaScript画廊
<?xml version="1.0" standalone="no"? > <!DOCTYPE svg PUBLIC "-//W3 ...
- 为什么解析 array_column不可用,
不久前,自己在一个小项目,我要拿出每个元素的一维数组key的值,一维阵列的形成,突然想到php 有一种功能,实现. $array = array ( array ( "id" =& ...
- HTML5 Web SQL Database 与 Indexed Database 的 CRUD 操作
http://www.ibm.com/developerworks/cn/web/1210_jiangjj_html5db/ 版权声明:本文博客原创文章,博客,未经同意,不得转载.
- 基于Android的ELF PLT/GOT符号和重定向过程ELF Hook实现(by 低端农业代码 2014.10.27)
介绍 技术原因写这篇文章,有两种: 一个是在大多数在线叙述性说明发现PLT/GOT第二十符号重定向过程定向x86的,例<Redirecting functions in shared ELF l ...
- js的逻辑 OR 运算符- ||
逻辑or运算大家都很熟悉,都会用.但是在javascript中用的更多,用的更妙.有时候用它来解决兼容问题特别方面.简洁. 比如获取鼠标对象.在 Internet Explorer 里, event ...