Tag: exchange server

c#中的powers powershell命令如何

目标是获取Exchange 2010站点的最小数据库,因此我尝试从c#运行以下powershell命令, Get-MailboxDatabase -server Exchange2010 -Status | select-object Name,DatabaseSize 我正在努力的问题是 – 如何管道Select子句命令。 这是我的尝试, WSManConnectionInfo wsConnectionInfo = new WSManConnectionInfo(new Uri(“https://” + ExchangeSite + “/powershell?serializationLevel=Full”), “http://schemas.microsoft.com/powershell/Microsoft.Exchange”, getCredential()); wsConnectionInfo.AuthenticationMechanism = AuthenticationMechanism.Basic; wsConnectionInfo.SkipCACheck = true; wsConnectionInfo.SkipCNCheck = true; rsRemoteRunspace = RunspaceFactory.CreateRunspace(wsConnectionInfo); rsRemoteRunspace.Open(); Pipeline pipeLine = rsRemoteRunspace.CreatePipeline(); Collection DatabaSize = null; Command myCommand = new Command(“Get-MailboxDatabase”); myCommand.Parameters.Add(“Server”, “Exchange2010”); myCommand.Parameters.Add(“Status”, null); […]

C#MS Exchange将电子邮件移动到文件夹

补充:感谢用户@grapkulec,我正在使用 using Microsoft.Exchange.WebServices.Data; 我正在尝试将电子邮件移动到我已在Outlook中创建的文件夹(使用MS Exchange)。 到目前为止,我已经能够将电子邮件移动到草稿或其他众所周知的文件夹名称,但是没有成功将其移动到我创建的名为“示例”的文件夹中。 foreach (Item email in findResults.Items) email.Move(WellKnownFolderName.Drafts); 上面的代码有效; 但我不想使用众所周知的文件夹。 而且,如果我尝试将代码更改为: email.Move(Folder.(Example)); 要么 email.Move(Folder.[“Example”]); 它不移动(在两种情况下都会引发错误)。 我已经找到了很多关于如何将电子邮件移动到MSDN,SO和一般C#上的文件夹的示例 – 但仅限于Outlook(草稿,垃圾邮件等)“知道”的文件夹,这些文件不适用于我创建的文件夹。

如何使用c#将电子邮件发送到Exchange通讯组列表

我需要使用c#向名为“DL-IT”的Exchange通讯组列表发送电子邮件。 有谁知道如何实现这一目标?

使用EWS查找收件箱文件夹的所有子文件夹

我有以下收件箱文件夹结构: Inbox –ABC —-ABC 2 —-ABC 3 –XYZ —-XYZ 2 –123 —-123 A —-123 B —-123 C 我使用Exchange Web服务和以下代码来查找收件箱文件夹的子文件夹: ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010); service.AutodiscoverUrl(“MyName@MyDomain.com”); Mailbox mb = new Mailbox(“MyName@MyDomain.com”); FindFoldersResults findResults = service.FindFolders( WellKnownFolderName.Inbox, new FolderView(int.MaxValue)); foreach (Folder folder in findResults.Folders) { Console.WriteLine(folder.DisplayName); } 这部分有效,因为它返回ABC,XYZ和123文件夹; 不幸的是,它没有返回每个文件夹内的文件夹(ABC 2,ABC 3,XYZ 2,123 A,123 B,123 C)。 此外,文件夹可能在其中包含多个子文件夹级别。 如何编写此代码,以便它将返回所有子文件夹,无论它们的嵌套程度如何?

PowerShell ParameterBindingException

我目前正在构建一个应用程序,以从ASP.NET MVC网站自动执行某些Exchange 2010操作。 现在,当我尝试调用New-AddressList命令时,我遇到了一个ParameterBindingException。 我正在尝试创建以下调用(有效): new-AddressList -Name “7 AL” -RecipientContainer “myDomain.local/Customers/7” -IncludedRecipients ‘AllRecipients’ -Container ‘\’ -DisplayName “7 AL” 我是通过以下方式做到的: var NewAddressList = new Command(“New-AddressList”); NewAddressList.Parameters.Add(“Name”, “7 AL”); NewAddressList.Parameters.Add(“RecipientContainer”, “myDomain.local/Customers/7”); NewAddressList.Parameters.Add(“IncludedRecipients”, “AllRecipients”); NewAddressList.Parameters.Add(“Container”, @”\”); NewAddressList.Parameters.Add(“DisplayName”, “7 AL”); CommandsList.Add(NewAddressList); 此命令列表提供给我调用的管道,给出以下错误: New-AddressList:输入对象不能绑定到命令的任何参数,因为该命令不接受管道输入或输入及其属性与接受管道输入的任何参数都不匹配。 CategoryInfo:InvalidArgument:(7:PSObject)[New-AddressList],ParameterBindingException FullyQualifiedErrorId:InputObjectNotBound,Microsoft.Exchange.Management.SystemConfigurationTasks.NewAddressList 任何可能导致这种情况的线索? 使用Trace-Command输出给出: PS C:\Users\ext_kefu> Trace-Command -Name parameterbinding -Expression {New-AddressList -Name “7 AL” -RecipientContainer “myDomain.local/Customers/7” […]

Outlook PropertyFrom MAPI架构属性ID

我希望从MAPI架构属性中获取实际的属性名称。 我正在获取MAPI Schema属性“ http://schemas.microsoft.com/mapi/proptag/0x67AA000B ”,但我想知道这对应于哪个字段(IE Anniversary,BusinessAddress等)。 任何见解将不胜感激。

以编程方式添加/编辑exchange2010帐户

你必须知道这是我第一次与交流合作。 我必须创建一个程序来在Exchange 2010上添加/编辑帐户。我知道在互联网上有很多关于这个主题的答案,但我没有找到任何最近的完整教程解释如何从头开始(所有完整的)步)。 我想使用此function创建ac#OR vb(.NET)程序(窗口的客户端,或Web,或其他): 添加新的Exchange 2010电子邮件帐户 列出现有帐户 修改现有帐户 我知道很多人看起来很简单,我知道那里有很多很好的教程。 但就像我说的那样,我是一个全新的交流,所有这些教程对我来说都很复杂。 我问你的建议,教程,提示,可以帮助我理解的东西。 我希望这个问题可以帮助像我这样的很多新手。

在远程计算机上删除项目时,在Outlook中未触发BeforeItemMove事件

我正在开发一个outlook加载项,其中有一些事件将在从草稿中删除项目时触发。 因此,当我从我的机器上的草稿中删除文件时,将触发BeforeItemMove事件。 但这里有一个有趣的案例。 另外我还有一个VM,我安装了Outlook并登录到同一个帐户。 所以我的草稿也在那里同步。 当我删除VM上的草稿时,一段时间之后草稿也会在我的系统上删除。 但是这次它不会在我的本地机器上触发BeforeItemMove事件。 我错过了什么? 它甚至依赖于Exchange吗? 或者是我应该订阅的文件夹更新的新事件? 以下是我的代码。 Microsoft.Office.Interop.Outlook.Folder draftsFolder = null; draftsFolder = nameSpace.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderDrafts) as Microsoft.Office.Interop.Outlook.Folder; draftsFolder.BeforeItemMove += new Microsoft.Office.Interop.Outlook.MAPIFolderEvents_12_BeforeItemMoveEventHandler(BeforeItemMoveFromDrafts); 事件方法是 private void BeforeItemMoveFromDrafts(object Item, MAPIFolder MoveTo, ref bool Cancel) { … } PS。 我也有一个文件夹对象的引用,所以这不是问题。

使用MAPI从服务访问Exchange Server

我的任务是构建一个使用MAPI检查电子邮件的应用程序。 我使用了一个用cpp编码的包装类 ,可以从c#访问。 我意识到将托管代码和非托管代码结合起来不一定是最好的路径,但这是我可以开始工作的。 在使用它之后,我被要求将应用程序作为服务,因此可以在系统未登录时运行。 客户端要求我们使用MAPI,并使用Outlook 2007,但我希望它兼容x86和x64架构。 在几个工作站上运行的单独程序将允许使用单个电子邮件地址发送邮件。 该服务将监控此帐户,查看来自Exchange的新电子邮件,说明无法传递邮件。 发生这种情况时,它会在数据库中记录以供将来更正。 我对扩展MAPI如何工作的理解是它使用登录的人员的配置文件来访问Exchange Server。 我的问题是,当没有人登录系统时是否可以通过MAPI访问Exchange Server? 如果无法做到这一点,当没有用户登录时,OOM是否允许访问特定的电子邮件帐户(或配置文件)? 当主要使用c#时,一种方法会比另一种方法更好吗? 下面是一个包装类如何登录的简短示例。我添加了第二种方法,但从来没有让它登录到当前用户的配置文件以外的配置文件。 BOOL CMAPIEx::Login(LPCTSTR szProfileName, BOOL bInitAsService) { DWORD dwFlags=MAPI_EXTENDED | MAPI_USE_DEFAULT | MAPI_NEW_SESSION; if(bInitAsService) dwFlags|=MAPI_EXPLICIT_PROFILE | MAPI_NT_SERVICE; return (MAPILogonEx(NULL, (LPTSTR)szProfileName, NULL, dwFlags, &m_pSession)==S_OK); } BOOL CMAPIEx::Login(LPCTSTR szProfileName, LPCTSTR szProfilePassword, BOOL bInitAsService) { DWORD dwFlags=MAPI_EXTENDED | MAPI_EXPLICIT_PROFILE | MAPI_NEW_SESSION; if(bInitAsService) […]

使用C#确定系统上的Exchange服务器版本

有没有办法通过c#检测哪个版本的Exchange Server正在运行(2007或2010)?