PHP获取exchange会议,exchange服务器之Microsoft Exchange Server 以及 EWS 会议信息 拼接总结...

本文介绍了Microsoft Exchange Server作为邮件和协作系统的应用,并重点讲解了如何通过EWS(Exchange Web Service)与Exchange Server进行交互,获取会议室预定信息。用户通常通过Outlook进行会议预定,而开发人员可以利用EWS接口,通过C#代码示例读取会议的参与人、主题、时间和地址等信息。此外,文章还提供了拼接读取会议信息的C#代码片段。
摘要由CSDN通过智能技术生成

本文将带你了解exchange服务器之Microsoft Exchange Server 以及 EWS 会议信息 拼接总结,希望本文对大家学Exchange有所帮助。

1. Microsoft Exchange Server简介

Microsoft Exchange Server 是个消息与协作系统。Exchange server可以被用来构架应用于企业、学校的邮件系统或免费邮件系统。

Exchange Server主要版本有2003,2007,2010,2013以及云环境的Exchange Online。

我们主要与Exchange Server进行互动,进行会议室相关的会议预定信息的读取。

2.Outlook进行会议室预定及会议预定

需要理解的是Exchange Server本身是提供邮件服务的服务器,用户真正使用和接触的是Outlook或者是网页版的Outlook。

用户通过Outlook进行会议预定的步骤如下(来自百度): http://jingyan.baidu.com/article/4b52d7026e5beffc5c774bc1.html

3.Outlook进行会议室预定及会议预定的说明

与会议信息相关的是 会议的参与人,会议的主题,会议的时间,会议的地址。

会议的参与人:收件者的邮箱地址

会议的地址: 会议室的电子邮箱地址

4.开始与Exchange Server进行拼接,获取会议室的会议预定信息。

我们是通过EWS与Exchange Server进行拼接,获取会议室的信息;如果有足够的权限,也能增、删、改会议室的预订信息。

EWS全称是Exchange Web Service,各种版本的Exchange Server都提供,而且几乎都一样。(这样我们开发一次拼接程序,各种版本的exchange server都能使用)。而且MSDN上有许多EWS拼接相关的C#代码。

Exchange Server也提供其他的拼接方式,相对EWS感觉学习和使用难度比较大。

5.拼接读取会议信息C#代码例子:

class Program

{

public void GetExchangeBinding()

{

//连接exchange server

System.Net.ServicePointManager.CertificatePolicy = new

TrustAllCertificatePolicy();

ExchangeService service = new

ExchangeService(ExchangeVersion.Exchange2010_SP1);

service.Credentials = new

WebCredentials("yonghuyouxiang@aaa.net",

"123456");//需要读权限

// 指定Exchage服务的url地址,Exchange Online;其他版本就是Exchange Server的ip地址

service.Url = new

Uri("https://***.outlook.com/EWS/Exchange.asmx");

//根据会议室名登陆相应的exchange server

FolderId cbfolder = new FolderId(WellKnownFolderName.Calendar,

new

Mailbox(roomaddress.getfullAddress()));//roomaddress.getfullAddress()是会议室邮箱的地址

//开始时间是当前时间

DateTime startDate = currentTime.Date;

//结束时间是今天

DateTime endDate =

currentTime.Date.AddDays(Convert.ToDouble(1));

FindItemsResults findAppoint = null;

try

{

findAppoint =

service.FindAppointments(cbfolder, new CalendarView(startDate, endDate,

300));

}

catch (Exception ex)

{

Console.WriteLine(ex);

Console.WriteLine(ex.Message +

roomaddress.getfullAddress());

}

if (findAppoint != null &&

findAppoint.MoreAvailable) //若还有更多,则扩容到1000个会议信息

{

findAppoint =

service.FindAppointments(cbfolder,

new CalendarView(startDate,

endDate, 1000));

}

if (findAppoint != null &&

findAppoint.Items.Count > 0)

service.LoadPropertiesForItems(findAppoint.Items, new

PropertySet(AppointmentSchema.Location, AppointmentSchema.Body,

AppointmentSchema.Organizer, AppointmentSchema.Subject,

AppointmentSchema.Location, AppointmentSchema.Body,

AppointmentSchema.Start, AppointmentSchema.End,

AppointmentSchema.IsAllDayEvent, AppointmentSchema.Body,

AppointmentSchema.IsRecurring, AppointmentSchema.Recurrence,

AppointmentSchema.IsCancelled));

if (findAppoint != null && findAppoint.Items.Count > 0)

foreach (Appointment a in findAppoint)

{

a.Load();

if (a.IsCancelled)

continue;

if (a.Subject == null)

{

a.Subject = "无主题会议";

}

}

}

}

//该类用于通过CA验证,正对于没有正常安装证书服务器的Exchange服务器。

public class TrustAllCertificatePolicy :

System.Net.ICertificatePolicy

{

public TrustAllCertificatePolicy()

{ }

public bool CheckValidationResult(ServicePoint sp,

System.Security.Cryptography.X509Certificates.X509Certificate cert,

WebRequest req, int problem)

{

return true;

}

}//end of class TrustAllCertificatePolicy

}

//a.Start       会议开始时间

//a.End         会议结束时间

//a.Location    会议地址

//a.Subject     会议主题

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标系统运维之Exchange频道!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值