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 以下内容转自上述网站,为了以后的学习方便,为此才特地将该网站内容转到自己的博客,多谢 ...
随机推荐
- 使用live delegate on解决js后装html故障问题
今天写一个前端的东西.每学到更多的知识.几下就能写几行代码.代码行数十个.代码几个文件量--这是真的.一直以来研究的前端遇到的问题仍然在实践百度谷歌问答. 我今天遇到这样的问题:已经写js代码,正确a ...
- EEPlat的元数据驱动的运行引擎
EEPlat採用了元数据驱动的核心思想,因而EEPlat最重要的就是完好的元模型体系及高效灵活的解析运行引擎.EEPlat的运行引擎通过解析基于元模型的元数据,解释运行形成终于的业务系统. EEPla ...
- Kafka logo分布式发布订阅消息系统 Kafka
分布式发布订阅消息系统 Kafka kafka是一种高吞吐量的分布式发布订阅消息系统,她有如下特性: 通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳 ...
- eclipse 在win7 64两个图标出现位操作系统无法锁定到任务栏或任务栏
eclipse 在win7 64位操作系统无法锁定到任务栏或者任务栏上出现两个图标 解决的方法 eclipse在win7 64bit下无法锁定到任务栏问题(或是锁定后任务栏出现两个eclipse图标) ...
- CentOS7 安装NFS SSH免密码登陆
配置5台虚拟机 ip为192.168.1.160 - 164,使用160作为共享服务器 使用yum安装nfs 以及rpcbind,有很多文章介绍,这里不再赘述 一.启动服务 1.启动rpcbind s ...
- malloc实现原理
记得早一段时间,看到一本书上写过delete的一个..今天突然找啦一下资料: malloc()是C语言中动态存储管理 的一组标准库函数之中的一个.其作用是在内存的动态存储区中分配一个长度为size的连 ...
- 面向对象三大特征之封装与static——(Java学习笔记四)
面向对象 编程本质:以类的方式组织代码,以对象的方式组织(封装)数据 对象:具体的事物,某个类的对象(实例) 类:是对对象的抽象,用于描述同一类型的对象的一个抽象概念 对象和类的关系:特殊到一 ...
- WebService到底是什么? [转]
一.序言 大家或多或少都听过WebService(Web服务),有一段时间很多计算机期刊.书籍和网站都大肆的提及和宣传WebService技术,其中不乏很多吹嘘和做广告的成分.但是不得不承认的是Web ...
- 关于Promise的一个案例
题目:红灯三秒亮一次,绿灯一秒亮一次,黄灯2秒亮一次:如何让三个灯不断交替重复亮灯?(用Promise实现) 解答思路一: function red(){ console.log('red'); } ...
- C语言移位运算符
位移位运算符是将数据看成二进制数,对其进行向左或向右移动若干位的运算.位移位运算符分为左移和右移两种,均为双目运算符.第一运算对象是移位对象,第二个运算对象是所移的二进制位数. 位移位运算符的运算对象 ...