Tag: exchange server

在C#错误中运行powershell命令,“无法调用此函数,因为当前主机未实现它”

我有一个应用程序,用于在C#代码中运行Exchange Powershell命令,如下所示。 这是我用来运行powershell命令的相关行的示例。 RunspaceConfiguration rsConfig = RunspaceConfiguration.Create(); PSSnapInException snapInException = null; //load Exchange shell rsConfig.AddPSSnapIn(“Microsoft.Exchange.Management.PowerShell.E2010”, out snapInException); Runspace runSpace = RunspaceFactory.CreateRunspace(rsConfig); //open runspace runSpace.Open(); //setup pipeline Pipeline pipeLine = runSpace.CreatePipeline(); String sScript = “get-mailbox -identity ‘rj'”; //add script to pipeline pipeLine.Commands.AddScript(sScript); //run the script pipeLine.Invoke(); pipeLine.Dispose(); 到目前为止,此代码在所有情况下都是完美的 我试图运行的脚本而不是上面的脚本是为邮箱设置RetentionPolicy。 我试图运行的脚本如下所示: Set-Mailbox -Identity’rj’-RetentionPolicy’主要校园保留政策’ 当我在powershell中运行它时,它运行得很好但是当我尝试使用下面的代码运行它时,我得到错误,“无法调用此函数,因为当前主机没有实现它。” 从这个错误来看,几乎看起来在C#中运行的命令无法运行RetentionPolicy命令,但这没有多大意义。 我用谷歌搜索了所有的建议,但没有运气。 如果有人知道为什么会这样,那将非常有帮助。

在asp.net中使用EXCHANGE SERVER(Microsoft Outlook Web访问)发送邮件

我知道如何使用安装在同一台机器上的outlook发送邮件,我正在运行我的代码。 现在,这里的要求是访问我组织的Exchange服务器(Microsoft OWA),以便在asp.net代码中发送邮件。 可能吗? 如果是,那么请扔掉一些光。 日Thnx UPDATE 得到了解决方案。 在这里为任何想要帮助的人发布我的工作代码。 快乐的编码! protected void Button1_Click(object sender, EventArgs e) { ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1); //service.AutodiscoverUrl(“youremailaddress@yourdomain.com”); service.Url = new Uri(“https://yourwebmailaddress.com/ews/Exchange.asmx”); service.UseDefaultCredentials = true; //service.Credentials = new WebCredentials(“username”, “password”); EmailMessage message = new EmailMessage(service); message.Subject = “My auto mail from exchange server”; message.Body = “hi everyone !”; message.ToRecipients.Add(“brad.pitt@hollywood.com”); message.Save(); […]

c#以编程方式从Exchange服务器读取电子邮件

当您在网上搜索时,您会找到“如何以编程方式阅读电子邮件”的简单答案…… Al网站正在解释大部分内容,如此页面。 http://omegacoder.com/?p=454 // depends from Exchange server version service.Credentials = new NetworkCredential(“MDR”, “password”, “zzz”); service.AutodiscoverUrl(“mdr@zzz.be”); object o = service.FindItems(WellKnownFolderName.Inbox, new ItemView(10)); FindItemsResults findResults = service.FindItems(WellKnownFolderName.Inbox, new ItemView(10)); foreach (Item item in findResults.Items) { Console.WriteLine(item.Subject); } 它在执行autodiscoverURL行时失败。 错误显示“无法找到自动发现服务”。 所以我进一步搜索并从微软https://www.testexchangeconnectivity.com/#&&/wEXAQUBcwUBME93h2+JjI0+MV2gTqcRL0g43z9m找到了这个网站。在这里你可以测试你的邮件服务器……当我传递参数时,我得到以下错误。 … 但我仍然不明白问题是什么? 我是否需要向DNS添加记录? 有人可以帮忙吗? Attempting to test potential Autodiscover URL https://autodiscover.zzz.be/AutoDiscover/AutoDiscover.xml Testing of this potential Autodiscover […]

Exchange Web Services 2010入门

我的任务是在.Net中编写一个SOAP Web服务,作为EWS2010和之前使用WebDAV连接到Exchange的应用服务器之间的中间件。 ( 据我所知,WebDAV正在消失EWS2010,因此应用服务器将无法再像以前那样连接,并且在没有WebDAV的情况下连接到EWS的指数更难。理论上就是在.Net中实现它。应该比其他任何事情都容易……对吧?! ) 我的最终目标是能够获取和更新指定Exchange帐户的电子邮件,日历项目,联系人和待办事项列表项。 (删除目前不是必需的,但我可以将其构建以供将来考虑,如果它很容易的话)。 我最初得到了一些示例代码,实际上确实有效,但我很快意识到它已经过时了。 使用的类型和类在当前文档中没有出现。 例如,用于创建与Exchange服务器的连接的方法是: ExchangeService svc = new ExchangeService(); svc.Credentials = new WebCredentials(AuthEmailAddress, AuthEmailPassword); svc.AutodiscoverUrl(AutoDiscoverEmailAddress); 对于它的价值,这是使用示例代码附带的程序集: Microsoft.Exchange.WebServices.dll (“MEWS”)。 在我意识到这不是当前实现连接的标准方法之前,它起作用了,我尝试在它上面构建并添加一个创建日历项的方法,我从这里复制了 : static void CreateAppointment(ExchangeServiceBinding esb) { // Create the appointment. CalendarItemType appointment = new CalendarItemType(); … } 马上,我遇到了ExchangeService和ExchangeServiceBinding (“ESB”)之间的区别; 所以我开始谷歌搜索试图找出如何获得ESB定义,以便CreateAppointment方法将编译。 我发现这篇博文解释了如何从WSDL生成代理类,我做了。 不幸的是,这导致了一些冲突,其中原始程序集中定义的类型, Microsoft.Exchange.WebServices.dll (示例代码附带)与我的新EWS.dll程序EWS.dll类型重叠(我从生成的代码编译Exchange服务器提供的services.wsdl )。 我排除了MEWSassembly,这只会让事情变得更糟。 我从一些错误和警告转到了25个错误和2,510个警告。 没有找到各种类型和方法。 这里显然有些不对劲。 所以我回去追捕。 […]

使用EWS和Exchange 2007通过对话实现Outlook 2010的组

我们正在使用EWS在我们的某些邮箱上生成一些分析。 部分原因是获得对话的计数/名称/开始/结束。 对话类似于Outlook 2010在按对话分组时显示的方式。 我希望能够使用ConversationId对项目进行分组,但这似乎只是Exchange 2010的一项function。 我可以按文件夹中的主题进行分组以获得线程的简单概念…但是这不会处理拆分对话,因为Outlook 2010会这样做 – 具体而言,它不会处理引入已发送项目中的回复(这些对我们来说很重要 – 如果不看回复,我们就无法获得好的指标。 我目前获取线程信息的代码如下所示: private IEnumerable GetThreads(Folder folder) { var view = new ItemView(int.MaxValue) {PropertySet = new PropertySet(BasePropertySet.IdOnly)}; // view.PropertySet.Add(ItemSchema.ConversationId); – Can’t use this as we’re stuck on Exchange 2007 !!! view.PropertySet.Add(ItemSchema.Subject); view.PropertySet.Add(ItemSchema.DateTimeReceived); var grouping = new Grouping(ItemSchema.Subject, SortDirection.Descending, ItemSchema.DateTimeReceived, AggregateType.Maximum); var groupResults = folder.FindItems(view, grouping); […]

所有文件夹中的Exchange Web服务(EWS)FindItems

我使用以下代码查找用户发送的所有电子邮件,但这只搜索主收件箱文件夹,不检查任何子文件夹。 我想搜索所有邮件项目,包括任何子文件夹。 我尝试过WellKnownFolderName.Root和WellKnownFolderName.Inbox,这些只搜索那些文件夹,而不是子文件夹。 private static void SearchItems(string email) { ItemView iv = new ItemView(10); FindItemsResults fiitems = _service.FindItems(WellKnownFolderName.Inbox, “from:username@example.com”, iv); foreach (Item item in fiitems) { Console.WriteLine(“Subject:\t” + item.Subject); Console.WriteLine(“Received At:\t\t” + item.DateTimeReceived.ToString(“dd MMMM yyyy”)); Console.WriteLine(); } Console.WriteLine(“Press Enter to continue”); Console.ReadLine(); }

获取Outlook 2007中当前用户的电子邮件地址

我有一个用C#编写的Outlook添加。 我想知道如何获得当前用户的电子邮件地址? 谢谢

从Exchange Web服务托管API获取收件箱中的所有邮件,并将其存储为.eml文件

我想使用EWS托管API获取收件箱文件夹中的所有邮件,并将它们存储为.eml 。 问题在于获取(1)所有邮件(2)所有标题(如from,to,subject) (我在其他地方保留from , to和其他属性的值的信息,所以我也需要它们)和(3)byte[] EmailMessage.MimeContent.Content 。 其实我对此缺乏了解 Microsoft.Exchange.WebServices.Data.ItemView , Microsoft.Exchange.WebServices.Data.BasePropertySet和 Microsoft.Exchange.WebServices.Data.ItemSchema 这就是为什么我发现它很难。 我的主要代码是: 当我按如下方式创建PropertySet : PropertySet properties = new PropertySet(BasePropertySet.FirstClassProperties, ItemSchema.MimeContent); 我得到以下exception: The property MimeContent can’t be used in FindItem requests. 我不明白 (1)这些ItemSchema和BasePropertySet是什么 (2)我们应该如何使用它们 所以我删除了ItemSchema.MimeContent : PropertySet properties = new PropertySet(BasePropertySet.FirstClassProperties); 我编写了简单的以下代码来获取收件箱中的所有邮件: ItemView view = new ItemView(50); view.PropertySet = properties; FindItemsResults findResults; List […]

如何从Exchange Server获取联系人列表?

谁能告诉我从Exchange Server获取联系人列表的最简单方法? 我正在使用C# 根据我的发现, Exchange Web服务仅适用于Exchange Server 2007及更高版本。 这将是我的第一个选择,但我也喜欢以前版本的Exchange(WebDav或其他)的替代品。 目录服务不是一种选择。

如何使用EWS托管API从PublicFolders的文件夹和子文件夹中获取所有ITEMS

如何从Exchange Server2010 uisng托管API中的“公共文件夹”及其“子文件夹”中检索所有项目??? rootfolder = Folder.Bind(service,WellKnownFolderName.PublicFoldersRoot); rootfolder.Load(); foreach (Folder folder in rootfolder.FindFolders(new FolderView(int.MaxValue))) { FindItemsResults findResults = folder.FindItems(iv); foreach (Item item in findResults) { //get item info; } } “如果我这样做,我不会在它的子文件夹中存在项目..公共文件夹也不支持深度遍历查询..如何从公用文件夹的子文件夹中获取项目???”