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下运行通过,成功创建会议:
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

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

<h3>
心静似高山流水不动,心清若巫峰雾气不沾。
</h3>
心静似高山流水不动,心清若巫峰雾气不沾。
</h3>
分类:
ASP.NET(C#)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端