原文: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. 解决 Error:No suitable device found: no device found for connection "System eth0"

    一.底 我们安装在虚拟机,.想模拟几台server.这时就想直接复制已经有的安装好的虚拟机.这样比較省事,不要在反复的安装虚拟机并配置JAVA环境,省掉做相同的事情,这时直接复制,这样之前配置的JAV ...

  2. POJ1149 PIGS 【最大流量】

    PIGS Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 16555   Accepted: 7416 Description ...

  3. C++ Primer 学习笔记_41_STL实践与分析(15)--先来看看算法【下一个】

    STL实践与分析 --初窥算法[下] 一.写容器元素的算法 一些算法写入元素值.在使用这些算法写元素时一定要当心.必须.写入输入序列的元素 写入到输入序列的算法本质上是安全的--仅仅会写入与指定输入范 ...

  4. ABP项目中的使用AutoMapper

    AutoMapper之ABP项目中的使用 最近在研究ABP项目,昨天写了Castle Windsor常用介绍以及其在ABP项目的应用介绍 欢迎各位拍砖,有关ABP的介绍请看阳光铭睿 博客 AutoMa ...

  5. 【jQuery】使用JQ要准备的主要淡入淡出效果

    jQuery是JavaScript 库.也就是JavaScript延期,加入满足不同效果的不断增长的需求.事实上质量JavaScript 下面写的一大JQ方案说明JQ. .基本目标 网页中有例如以下三 ...

  6. Properties类读写.properties配置文件

    package com.hzk.utils; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFo ...

  7. Vim 命令 【转】

    高级一些的编辑器,都会包含宏功能,vim当然不能缺少了,在vim中使用宏是非常方便的: :qx     开始记录宏,并将结果存入寄存器xq     退出记录模式@x     播放记录在x寄存器中的宏命 ...

  8. java多线程学习(两)——创建一个线程

    一个.java创建两个线程的方法 1.从java.lang.Thread派生一个新类线程类,其覆盖run()方法 2.实现Runnable接口.重载Runnable接口中的run()方法. 使用Thr ...

  9. Display Database Image using MS SQL Server 2008 Reporting Services

    原文 Display Database Image using MS SQL Server 2008 Reporting Services With the new release of MS SQL ...

  10. Sky数 2097

    Problem Description Sky从小喜欢奇特的东西,而且天生对数字特别敏感,一次偶然的机会,他发现了一个有趣的四位数2992,这个数,它的十进制数表示,其四位数字之和为2+9+9+2=2 ...