C#中调用Outlook API 发起会议

原文: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/* [email protected]
 8////////////////////
 9namespace OutlookAPI
10{
11    class Program
12    {
13        static void Main(string[] args)
14        {
15            try
16            {
17                ApplicationClass oApp = new Microsoft.Office.Interop.Outlook.ApplicationClass();
18
19                //会议是约会的一种
20                AppointmentItem oItem = (AppointmentItem)oApp.CreateItem(OlItemType.olAppointmentItem);
21                oItem.MeetingStatus = OlMeetingStatus.olMeeting;
22
23                oItem.Subject = "主题";
24
25                oItem.Body = "内容";
26
27                oItem.Location = "地点";
28
29                //开始时间 
30                oItem.Start = DateTime.Now.AddDays(1);
31
32                //结束时间
33                oItem.End = DateTime.Now.AddDays(2);
34
35                //提醒设置
36                oItem.ReminderSet = true;
37                oItem.ReminderMinutesBeforeStart = 5;
38
39                //是否全天事件
40                oItem.AllDayEvent = false;
41
42                oItem.BusyStatus = OlBusyStatus.olBusy;                
43
44                //索引从1开始,而不是从0
45                //发件人的帐号信息
46                oItem.SendUsingAccount = oApp.Session.Accounts[2];               
47
48                //添加必选人
49                Recipient force = oItem.Recipients.Add("[email protected]");
50                force.Type = (int)OlMeetingRecipientType.olRequired;
51                //添加可选人
52                Recipient opt = oItem.Recipients.Add("[email protected]");
53                opt.Type = (int)OlMeetingRecipientType.olOptional;
54                //添加会议发起者
55                Recipient sender = oItem.Recipients.Add("[email protected]");
56                sender.Type = (int)OlMeetingRecipientType.olOrganizer;                    
57               
58                oItem.Recipients.ResolveAll();
59
60                //oItem.SaveAs("d:/TEST.MSG", OlSaveAsType.olMSG);
61
62                oItem.Send();
63
64                //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;
71
72                Console.WriteLine("OK");
73            }
74            catch (System.Exception ex)
75            {
76                Console.WriteLine(ex.Message);
77            }
78
79            Console.ReadLine();
80        }
81    }
82}
83

时间: 2024-08-28 00:57:07

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

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

http://tech.it168.com/a2012/0606/1357/000001357231_all.shtml [IT168技术]当今的软件开发中,设计软件的服务并将其通过网络对外发布,让各种客户端去使用服务已经是十分普遍的做法.就.NET而言,目前提供了Remoting,WebService和WCF服务,这都能开发出功能十分强大的服务.然而,越来越多的互联网应用,希望将服务只是通过HTTP发布出去,而不是使用复杂的SOAP协议.为了解决这个问题,ASP.NET WebAPI就出现了.

MFC中调用web api

使用COM组件来调用,需要catch com error. IXMLHTTPRequestPtr pIXMLHTTPRequest = NULL; BSTR bstrString = NULL; HRESULT hr; ? try { hr=pIXMLHTTPRequest.CreateInstance("Msxml2.XMLHTTP.6.0"); SUCCEEDED(hr) ? 0 : throw hr; ? hr=pIXMLHTTPRequest->open("PO

IOS问题汇总:2014-12-10 在程序中调用Safari和发起电话呼叫

NSURL* url = [[NSURL alloc] initWithString:@“http://blog.csdn.net/iukey”]; [[ UIApplication sharedApplication]openURL:url]; NSURL* url = [[NSURL alloc] initWithString:@“tel:110”];[[ UIApplication sharedApplication]openURL:url]; ios 调用打电话 三种方式 // 第一种方

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

https://blog.csdn.net/u010251278/article/details/52877370 以下内容转自上述网站,为了以后的学习方便,为此才特地将该网站内容转到自己的博客,多谢博主,见谅! step1:获取密钥 为了统一平台服务的配额管理,JavaScript API在新版本引入ak机制.JavaScript API v1.4及以前版本无须申请密钥(ak),自v1.5版本开始需要先申请密钥(ak),才可使用.申请密钥的链接:点击打开链接 打开链接后点击创建应用,填入相关的

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

https://blog.csdn.net/u010251278/article/details/52877370 以下内容转自上述网站,为了以后的学习方便,为此才特地将该网站内容转到自己的博客,多谢博主,见谅! step1:获取密钥 为了统一平台服务的配额管理,JavaScript API在新版本引入ak机制.JavaScript API v1.4及以前版本无须申请密钥(ak),自v1.5版本开始需要先申请密钥(ak),才可使用.申请密钥的链接:点击打开链接 打开链接后点击创建应用,填入相关的

[windows菜鸟]C#中调用Windows API参考工具

很多windows API都不知道签名,可以从下面几种方式进行查询 1.微软出的工具 P/Invoke Interop Assistant version 1.0 2.网站 pinvoke.net 3.ReactOS官网源码 reactos.org 原文地址:https://www.cnblogs.com/code1992/p/11698316.html

Unity在Android和iOS中如何调用Native API

本文主要是对unity中如何在Android和iOS中调用Native API进行介绍. 首先unity支持在C#中调用C++ dll,这样可以在Android和iOS中提供C++接口在unity中调用.利用这一特性,可以扩展unity的功能.例如集成和调用第三方库.同时为了满足对unity接口的一致性,可以考虑在android和iOS上提供相同的接口供C#调用. 这里列举以下两个例子. 1. 1. 以弹出一个覆盖部分屏幕的webview为例来说明如何从C#调用Native接口. 2. 2. 简

在VBA中使用Windows API

VBA是一种强大的编程语言,可用于自定义Microsoft Office解决方案.通过使用VBA处理一个或多个Office应用程序对象模型,可以容易地修改Office应用程序的功能或者能够使两个或多个Office应用程序协同工作以完成单个应用程序无法完成的任务.然而,使用VBA仅能控制操作系统的一小部分.Windows API提供了控制操作系统绝大多数方面的功能.下面,介绍在VBA中使用Windows API的一些知识. 理解APIs API只是一组函数,可用于处理组件.应用程序或操作系统.通常

iOS中调用短信、电话、邮件、Safari浏览器API

//调用短信 - (void)callMsg:(id)sender { [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms://135587"]]; } //调用电话 - (void)callTel:(id)sender { [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://135587"