Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# EWS获取邮箱类型(用户/资源/共享)_C#_Exchangewebservices - Fatal编程技术网

C# EWS获取邮箱类型(用户/资源/共享)

C# EWS获取邮箱类型(用户/资源/共享),c#,exchangewebservices,C#,Exchangewebservices,仅给定一个电子邮件地址,我连接到接收发送到该地址的电子邮件的邮箱: ews.autodiscoverUrl(email); var m = new Mailbox(email); var folderId = new FolderId(WellKnownFolderName.Inbox, m); var folder = Folder.Bind(ews,folderId); 有没有办法找到我打开的邮箱类型?是用户邮箱、资源邮箱还是共享邮箱?您可以通过调用ResolveName找到给定电子邮件地

仅给定一个电子邮件地址,我连接到接收发送到该地址的电子邮件的邮箱:

ews.autodiscoverUrl(email);
var m = new Mailbox(email);
var folderId = new FolderId(WellKnownFolderName.Inbox, m);
var folder = Folder.Bind(ews,folderId);

有没有办法找到我打开的邮箱类型?是用户邮箱、资源邮箱还是共享邮箱?

您可以通过调用
ResolveName
找到给定电子邮件地址的邮箱类型:

var mailboxes = ews.ResolveName(email);
if (mailboxes.Any()) {
    var mailbox = mailboxes.First();
    if (mailbox.MailboxType == MailboxType.PublicFolder) {
        // your magic
    }
}
看这个

使现代化 普通邮箱和房间邮箱之间没有区别。如果您想知道Exchange服务器中存在哪些文件室,可以使用

通过将上面的代码片段与
GetRoomLists
/
GetRooms
相结合,您可以获得房间的邮箱。但请记住:有些房间可能没有邮箱

更新2 使用
GetRoomLists
/
GetRooms
的方法是唯一允许您使用EWS识别房间邮箱的方法。但它确实要求您将房间添加到房间列表中,这可能需要您贿赂一两名管理员

另一种方法是在Active Directory中查找相关信息,显然Outlook就是这样做的。看这个,但这是要点:

Outlook有自己的目录接口,它不使用EWS获取此信息。如果您打算只使用EWS,您需要让管理员创建一个房间列表供您使用

最后一种选择是使用PowerShell获取邮箱类型。这就是我刚才在Exchange Online服务器中获取房间的方法:

PS H:\> Get-Mailbox | Where {$_.ResourceType -eq "Room"}
输出:

Name                      Alias                ServerName       ProhibitSendQuota
----                      -----                ----------       -----------------
Frank's room              franksroom           db3pr03mb058     49.5 GB (53,150,220,288 bytes)
另一个生成相同输出的示例:

PS H:\> Get-Mailbox -Filter '(RecipientTypeDetails -eq "RoomMailBox")'
通过此输出,我可以使用以下任一项获取邮箱:

exchange.ResolveName("Frank's room");
exchange.ResolveName("franksroom@myorganization.onmicrosoft.com");
这方面的一些相关链接:


您可以通过调用
ResolveName
找到给定电子邮件地址的邮箱类型:

var mailboxes = ews.ResolveName(email);
if (mailboxes.Any()) {
    var mailbox = mailboxes.First();
    if (mailbox.MailboxType == MailboxType.PublicFolder) {
        // your magic
    }
}
看这个

使现代化 普通邮箱和房间邮箱之间没有区别。如果您想知道Exchange服务器中存在哪些文件室,可以使用

通过将上面的代码片段与
GetRoomLists
/
GetRooms
相结合,您可以获得房间的邮箱。但请记住:有些房间可能没有邮箱

更新2 使用
GetRoomLists
/
GetRooms
的方法是唯一允许您使用EWS识别房间邮箱的方法。但它确实要求您将房间添加到房间列表中,这可能需要您贿赂一两名管理员

另一种方法是在Active Directory中查找相关信息,显然Outlook就是这样做的。看这个,但这是要点:

Outlook有自己的目录接口,它不使用EWS获取此信息。如果您打算只使用EWS,您需要让管理员创建一个房间列表供您使用

最后一种选择是使用PowerShell获取邮箱类型。这就是我刚才在Exchange Online服务器中获取房间的方法:

PS H:\> Get-Mailbox | Where {$_.ResourceType -eq "Room"}
输出:

Name                      Alias                ServerName       ProhibitSendQuota
----                      -----                ----------       -----------------
Frank's room              franksroom           db3pr03mb058     49.5 GB (53,150,220,288 bytes)
另一个生成相同输出的示例:

PS H:\> Get-Mailbox -Filter '(RecipientTypeDetails -eq "RoomMailBox")'
通过此输出,我可以使用以下任一项获取邮箱:

exchange.ResolveName("Frank's room");
exchange.ResolveName("franksroom@myorganization.onmicrosoft.com");
这方面的一些相关链接:


Thx谢谢您的帮助,但MailboxType不区分用户和文件室/资源-它同时返回MailboxType.Mailbox。您需要使用
GetRoomList
/
GetRooms
。看看我刚刚添加的更新。嗯。。。如果您没有房间列表,这种方法将不起作用。请参阅Thx以获取帮助,但MailboxType不区分用户和文件室/资源-它返回两个文件室的MailboxType.Mailbox。您需要使用
GetRoomList
/
GetRooms
。看看我刚刚添加的更新。嗯。。。如果您没有房间列表,这种方法将不起作用。看见