调用SyncFolderItems循环(直到MoreChangesAvailable为假)会返回我第一次调用后收到的项SyncFolderItems吗?
例如,假设我的邮箱中有1,000个项目,并且我SyncFolderItems在没有同步状态的情况下拨打电话.在我第一次打电话给SyncFolderItems我收到一个项目后,它会包含我第一次打电话后收到的新电子邮件SyncFolderItems吗?
我想在我的Exchange服务器上收到电子邮件时运行脚本.我真的没有一个如何实现这个的伟大方向.我在VB中编写了我的脚本并在outlook上测试了它.我错误地认为您可以像在Outlook中一样从Exchange中的规则运行脚本.
任何帮助将不胜感激.我应该使用smtpreg.vbs或EWS还是完全不同的东西?
我需要从许多邮件项目中检索和复制附件。问题是每个邮件项目的集合都是空的,即使属性 HasAttachment 为真。
我是否需要在检索邮件项目后以某种方式加载每个邮件项目的附件集合?
以下代码抛出异常“索引超出范围。”:
FindItemsResults<Item> findResults = service.FindItems(
WellKnownFolderName.Inbox,
new ItemView(1));
foreach (Item item in findResults.Items)
{
if (item.HasAttachments && item.Attachments[0] is FileAttachment)
{
//Do stuff
}
}
Run Code Online (Sandbox Code Playgroud) 我们以编程方式(使用Microsoft Exchange Web服务托管API 2.0)访问用户的日历(在Exchange 2010 SP1上).
我们已经能够在我们的开发环境中通过自动发现与EWS成功通信,我们无需在Exchange上进行任何特定设置(我们使用默认的开箱即用设置).
不幸的是,这对客户的环境无效.客户端没有测试环境.我们应该与他们的实时Exchange服务器进行通信.
最初的自动发现不适用于客户端环境.我们收到以下错误:
Microsoft.Exchange.WebServices.Data.AutodiscoverLocalException: The Autodiscover service couldn't be located.
at Microsoft.Exchange.WebServices.Autodiscover.AutodiscoverService.InternalGetLegacyUserSettings[TSettings](String emailAddress, List`1 redirectionEmailAddresses, Int32& currentHop)
at Microsoft.Exchange.WebServices.Autodiscover.AutodiscoverService.GetLegacyUserSettings[TSettings](String emailAddress)
at Microsoft.Exchange.WebServices.Autodiscover.AutodiscoverService.InternalGetLegacyUserSettings(String emailAddress, List`1 requestedSettings)
at Microsoft.Exchange.WebServices.Autodiscover.AutodiscoverService.GetUserSettings(String userSmtpAddress, UserSettingName[] userSettingNames)
at Microsoft.Exchange.WebServices.Data.ExchangeService.GetAutodiscoverUrl(String emailAddress, ExchangeVersion requestedServerVersion, AutodiscoverRedirectionUrlValidationCallback validateRedirectionUrlCallback)
at Microsoft.Exchange.WebServices.Data.ExchangeService.AutodiscoverUrl(String emailAddress, AutodiscoverRedirectionUrlValidationCallback validateRedirectionUrlCallback)
Run Code Online (Sandbox Code Playgroud)
所以现在我们明确指定EWS的URL.这给了我们以下错误:
Microsoft.Exchange.WebServices.Data.ServiceRequestException: The request failed. The remote server returned an error: (401) Unauthorized. ---> System.Net.WebException: The remote server returned an error: (401) Unauthorized.
at System.Net.HttpWebRequest.GetResponse()
at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.GetEwsHttpWebResponse(HttpWebRequest request)
--- End of inner …Run Code Online (Sandbox Code Playgroud) 我们已经使用EWS SDK几年了,经过多次错误之后,我们已经决定是时候重构我们的代码库来反映我们学到的东西了.我们每隔一段时间就会看到一个问题是所有EWS调用都失败了,因为它指的是CAS出现故障.解决方案似乎就像每隔n秒触发后台线程一样简单,其中n代表我们自动发现的频率.
我在网上搜索过,似乎无法找到与此事有关的任何信息.
我应该多久自动发现一次?
我正在尝试阅读特定的电子邮件帐户,以查找包含未读附件的项目,并在主题中包含某些单词.
我有下面的代码,但只能读取我的收件箱,而不是我要检查的收件箱
static void Main(string[] args)
{
ServicePointManager.ServerCertificateValidationCallback=CertificateValidationCallBack;
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);// .Exchange2007_SP1);
service.UseDefaultCredentials = true;
service.AutodiscoverUrl("bbtest@domainname.com"); //, RedirectionUrlValidationCallback); //bbtest@bocuk.local
ItemView view = new ItemView(1);
string querystring = "HasAttachments:true Kind:email";
//From:'Philip Livingstone' Subject:'ATTACHMENT TEST' Kind:email";
// Find the first email message in the Inbox that has attachments.
// This results in a FindItem operation call to EWS.
FindItemsResults<Item> results = service.FindItems(WellKnownFolderName.Inbox, querystring, view);
foreach (EmailMessage email in results)
if (email.IsRead == false) // && email.HasAttachments == …Run Code Online (Sandbox Code Playgroud) 我试图通过尝试运行以下命令来查找asp.net c#中的所有文件夹来同步到交换文件夹.
view.Traversal = FolderTraversal.Deep;
FindFoldersResults findFolderResults = service.FindFolders(new FolderId(WellKnownFolderName.Root, mailbox), view);
Run Code Online (Sandbox Code Playgroud)
但是,之前在另一台邮件服务器上运行的此命令对于我正在使用的当前邮件服 此行返回的错误是
Microsoft.Exchange.WebServices.Data.ServiceVersionException: Exchange Server doesn't support the requested version.
at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ProcessWebException(WebException webException)
at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.GetEwsHttpWebResponse(IEwsHttpWebRequest request)
at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ValidateAndEmitRequest(IEwsHttpWebRequest& request)
at Microsoft.Exchange.WebServices.Data.SimpleServiceRequestBase.InternalExecute()
at Microsoft.Exchange.WebServices.Data.MultiResponseServiceRequest`1.Execute()
at Microsoft.Exchange.WebServices.Data.ExchangeService.InternalFindFolders(IEnumerable`1 parentFolderIds, SearchFilter searchFilter, FolderView view, ServiceErrorHandling errorHandlingMode)
at Microsoft.Exchange.WebServices.Data.ExchangeService.FindFolders(FolderId parentFolderId, FolderView view)
Run Code Online (Sandbox Code Playgroud)
有趣的是交换服务器都是交换2010年,所以任何人都知道这是什么问题?或者究竟是什么导致命令不受支持.
The successful run server is version 14.03.0195.001
The failed server version is 14.00.0722.000
Run Code Online (Sandbox Code Playgroud)
此错误是否真的是由此次错误引起的?我的意思是他们两个都是Exchange 2010服务器真的不应该命令是一样的吗?
c# asp.net exchange-server exchangewebservices exchange-server-2010
我想获取指定邮箱列表的所有权限列表.
要获得只有一个的所有权限,我可以这样做:
Get-MailboxPermission -Identity "Mailbox01"
Run Code Online (Sandbox Code Playgroud)
如果我想一次获取多个邮箱的权限列表,该怎么办?
就像是:
Get-MailboxPermission -Identity "Mailbox01","Mailbox02","Mailbox03"
Run Code Online (Sandbox Code Playgroud)
我怎么能这样做 - 在一个列表中?
我想要文件顶部的最大值(mailboxSize).我有一个cvs作为inport.
当我执行以下排序cmd时:
Import-Csv import.csv| Sort-Object MailboxSize,DisplayName -Descending | Export-Csv SORT.csv
Run Code Online (Sandbox Code Playgroud)
我得到以下结果:
"DisplayName","MailboxSize"
"persone6","9941"
"persone3","8484"
"persone1","7008"
"persone4","4322"
"persone5","3106"
"persone7","27536"
"persone10","24253"
"persone8","1961"
"persone9","17076"
"persone11","17012"
"persone2","15351"
"persone12","11795"
"persone14","1156"
"persone13","1008"
Run Code Online (Sandbox Code Playgroud)
但是我希望这样做!
"persone7","27536"
"persone10","24253"
"persone9","17076"
"persone11","17012"
"persone2","15351"
"persone12","11795"
"persone6","9941"
"persone3","8484"
"persone1","7008"
"persone4","4322"
"persone5","3106"
"persone14","1156"
"persone13","1008"
Run Code Online (Sandbox Code Playgroud) powershell exchange-server powershell-2.0 exchange-server-2010
我正在尝试EWS Managed API获取会议室列表,并为每个房间查看一周的约会列表。
我看到在Exchange使用EWS取得房间列表 并通过在Exchange使用EWS获得约会和会议
我测试了第一个链接,得到0个房间。
同样对于第二个链接,它给了当前用户日历,但没有开会。
我需要三件事:
1)获取我组织中的会议室列表。
2)获取每个房间的会议日历(X天)。
3)对于每次会议,由谁组织会议。
我找不到用于获取此信息的API。
c# exchange-server exchange-server-2007 exchangewebservices exchange-server-2010