C# Exchange Web服务-使用服务帐户访问组邮箱的日历

C# Exchange Web服务-使用服务帐户访问组邮箱的日历,c#,exchangewebservices,C#,Exchangewebservices,我正在尝试使用Exchange Web服务访问组邮箱 已设置对组邮箱具有完全访问权限的域帐户,但出现以下错误: 以没有邮箱的帐户进行请求时,必须为任何可分辨文件夹ID指定邮箱主SMTP地址。 我的代码如下: ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013); service.UseDefaultCredentials = false; service.Credentials = new Web

我正在尝试使用Exchange Web服务访问组邮箱

已设置对组邮箱具有完全访问权限的域帐户,但出现以下错误:

以没有邮箱的帐户进行请求时,必须为任何可分辨文件夹ID指定邮箱主SMTP地址。

我的代码如下:

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013);

service.UseDefaultCredentials = false;
service.Credentials = new WebCredentials("ServiceAccount", "<PASSWORD>");

//find web service url
service.AutodiscoverUrl("<GROUP MAILBOX EMAIL ADDRESS>", RedirectionUrlValidationCallback);

//find calendar ID
FolderId folderID = new FolderId(WellKnownFolderName.Calendar, new Mailbox("<GROUP MAILBOX EMAIL ADDRESS>"));

//find calendar
CalendarFolder calendar = CalendarFolder.Bind(service, folderID);

//create CalendarView
CalendarView view = null;

var propertySet = new PropertySet(
    AppointmentSchema.Id,
    AppointmentSchema.Subject,
    AppointmentSchema.Start,
    AppointmentSchema.End
);

view = new CalendarView(DateTime.Now.AddMonths(-1), DateTime.Now.AddMonths(1));
view.PropertySet = propertySet;

//get appointments
var appointments = calendar.FindAppointments(view);
ExchangeService服务=新的ExchangeService(ExchangeVersion.Exchange2013);
service.UseDefaultCredentials=false;
service.Credentials=新的WebCredentials(“ServiceAccount”,即“”);
//查找web服务url
service.AutodiscoverUrl(“,RedirectionUrlValidationCallback”);
//查找日历ID
FolderId FolderId=新的FolderId(WellKnownFolderName.Calendar,新邮箱(“”);
//查找日历
CalendarFolder calendar=CalendarFolder.Bind(服务,folderID);
//创建日历视图
CalendarView=null;
var propertySet=新的propertySet(
AppointSchema.Id,
任命模式。主题,
AppointmentSchema.Start,
任命模式。结束
);
视图=新日历视图(DateTime.Now.AddMonths(-1),DateTime.Now.AddMonths(1));
view.PropertySet=PropertySet;
//预约
var约会=calendar.FindAppoints(视图);
有没有办法不为服务帐户设置邮箱就可以实现这一点

使用凭据运行上述代码时,不会出现任何问题(我对组邮箱和我自己的邮箱拥有完全权限)。

使用。这段代码非常适合我作为服务帐户连接到共享邮箱

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013_SP1);
service.Credentials = new NetworkCredential(service_acct, password);

// Set impersonation to the shared mailbox
service.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.SmtpAddress, "sharedmbx@contoso.com");
使用。这段代码非常适合我作为服务帐户连接到共享邮箱

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013_SP1);
service.Credentials = new NetworkCredential(service_acct, password);

// Set impersonation to the shared mailbox
service.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.SmtpAddress, "sharedmbx@contoso.com");

使用模拟时,我收到以下错误:
SMTP地址没有与其关联的邮箱。
确保您的服务帐户正确配置了ApplicationImpersonation角色(),并且允许模拟组邮箱。使用模拟时,我收到以下错误:
SMTP地址没有与其关联的邮箱。
请确保您的服务帐户正确配置了ApplicationImpersonation角色(),并且允许模拟组邮箱。