您的位置:首页 > 编程语言 > C#

C#中调用Outlook API 发起会议

2013-08-22 11:12 316 查看


C#中调用Outlook API
发起会议

要发起会议之类的特殊邮件的话,可以使用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下运行通过,成功创建会议:





1

using System;

2

using System.Collections.Generic;

3

using System.Text;

4

using Microsoft.Office.Interop.Outlook;

5

////////////////////

6

/* 调用Outlook api 发起会议

7

/* mcjeremy@cnblogs.com

8

////////////////////

9

namespace 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("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();

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


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: