Tag: exchange server 2007

如何使用SmtpClient和DefaultNetworkCredentials将邮件发送到仅允许经过身份validation的发件人的通讯组列表?

我正在尝试通过我们的内部Exchange 2007服务器(使用SMTP)将C#控制台应用程序中的自动电子邮件从机器发送到同一域中的所有客户端,但我遇到了只允许经过身份validation的发件人的分发列表。 基本上我发送的邮件被Exchange拒绝: #550 5.7.1 RESOLVER.RST.AuthRequired; authentication required ##rfc822;AuthTESTGroup@example.com 我正在使用System.Net.Mail.SmtpClient并将Credentials属性设置为System.Net.CredentialCache.DefaultNetworkCredentials ,但是在该行的某个位置,运行此程序的帐户的凭据(我是一个有效的域用户,具有有效的邮箱) )没有正确传递给Exchange。 我正在使用System.Net.CredentialCache.DefaultNetworkCredentials因为我不想硬编码用户名或密码(在代码本身或任何类型的配置文件中); 我希望该进程使用Windows身份validation对我们的SMTP服务器进行身份validation。 这是我一直用来重现问题的测试程序(域名已被分类化): using System; using System.Net.Mail; namespace ConsoleApplication1 { class Program { static void Main() { var smtpClient = new SmtpClient { Host = “MAIL”, Port = 25, DeliveryMethod = SmtpDeliveryMethod.Network, Credentials = System.Net.CredentialCache.DefaultNetworkCredentials }; var mailMessage = new MailMessage { Body […]

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

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

在Exchange上使用扩展属性慢速搜索项目

手头的问题 我们的C#Windows应用程序使用EWS Managed API 2.0在用户的日历中创建约会。 每个约会都有一个具有独特价值的扩展财产。 它稍后使用FindItems和ItemView定位约会。 用户在第一次执行此搜索时会遇到严重延迟。 后续响应时间完全可以接受。 (“第一次”在这里有点模糊,因为用户可能会在当天晚些时候再次遇到延迟) // locate ID of appointment where extended property value equals 1234: var filter = new Ews.SearchFilter.IsEqualTo(extendedPropertyDefinition, 1234); var view = new ItemView(1, 0); view.PropertySet = BasePropertySet.IdOnly; var folder = new FolderId(WellKnownFolderName.Calendar, new Mailbox(“…”)); var result = service.FindItems(folder, filter, view); 远程服务器是Exchange Server 2007 SP1 。 研究 […]

如何使用Exchange 2007和c#在我的域外发送电子邮件

只要from和to地址都在我的域中,我就能够在Exchange 2007上使用典型的C#SMTP代码发送电子邮件。 一旦我尝试在域外发送电子邮件,我就会得到: exception详细信息:System.Net.Mail.SmtpFailedRecipientException:邮箱不可用。 服务器响应为:5.7.1无法中继 我如何获得交换接受我的电子邮件并将其发送到互联网?

该帐户无权模拟所请求的用户

我尝试访问资源邮箱时收到此错误。 请任何人帮助我。 我是EWS的新手。 我可以通过OWA(Outlook Web应用程序)访问资源邮箱。 但我不是这个邮箱的所有者,因为它是共享邮箱。 我的代码: ServicePointManager.ServerCertificateValidationCallback = CertificateValidationCallBack; ExchangeService newExchangeService = new ExchangeService (ExchangeVersion.Exchange2007_SP1); newExchangeService.Credentials = new NetworkCredential(username, password, domain); newExchangeService.AutodiscoverUrl(email-id, RedirectionUrlValidationCallback); newExchangeService.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.SmtpAddress, email_which_i_want_to_access); Folder visitorsFolder = Folder.Bind(newExchangeService, WellKnownFolderName.Inbox); foreach (Folder childfolder in visitorsFolder.FindFolders(new FolderView(10))) { Console.WriteLine(childfolder.DisplayName); }

Microsoft.Exchange.WebServices在VS2010中不起作用

我使用EWS ExchangeService来阅读来自outlook的电子邮件……我已经在Console项目和VS2008中编码…一切正常,因为它是……我可以阅读电子邮件。 为了与VS2010变得更加熟悉,我创建了一个控制台项目并将复制复制到VS2010项目。 所以我在Microsoft \ Exchange \ Web Services \ 1.1 \ Microsoft.Exchange.WebServices.dll文件夹中添加了引用“Microsoft.Exchange.WebServices”(版本14.2.51.0)。 一切都按原样运行,所以我看到了intellisence,我看到Exhange组件的方法属性等… 使用Microsoft.Exchange.WebServices.Data; 第一个问题: 问题: – 当我单击VS2010中的构建按钮时……我收到此错误:命名空间“Microsoft”中不存在类型或命名空间名称“Exchange”(您是否缺少程序集引用?)表单在这里,Exchange程序集的所有方法/属性都被挤压下划线… Intellisence不再适用于Exchange程序集。 当我从引用中删除程序集并重新添加时,我再次获得了Exchange程序集的intellesence …但是当我点击build时再次发生:(所以我转到我的代码并输入“Microsoft”。我看不到交换词再也出现…. 所以我不明白为什么会这样,它适用于VS2008和VS2010,它不起作用? 我认为VS的唯一方法是Framework 3.5,VS2010是V4.0 任何想法在哪里看? 以及如何解决这个问题? 第二个问题: 我需要获取电子邮件的附件..所以当电子邮件到达特殊电子邮件帐户时,我需要获取附件并将​​附件文件保存到特定文件夹。 这里最好的方法是什么? 在Console项目中创建代码并创建Windows服务项目? 或只是控制台项目或只是Classlibrry项目并添加到任务计划程序? 所以我需要一些关于如何在项目级别进行处理的建议…编程逻辑已经存在。 但正如我在第一个问题中所说,我在VS2008中使用它,但在按下Build按钮后VS2010不知道Exchange汇编。

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 […]

使用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 Service API和401未经授权的例外

当我尝试使用EWS API发送电子邮件时,我收到以下错误:(在message.Send(); ) 请求失败。 远程服务器返回错误:(401)未经授权。 我的代码如下: ExchangeService exchangeService = new ExchangeService(ExchangeVersion.Exchange2007_SP1); //WebService Uri try { exchangeService.Url = new Uri(“https://exchangeserver/ews/exchange.asmx”); } catch (Exception ex) { throw new Exception(string.Format(“WebService Uri:” + ex)); } //Credentials try { exchangeService.Credentials = new WebCredentials(“user@domain”, “pwd”, “domain”); } catch (Exception ex) { throw new Exception(string.Format(“Credentials:” + ex)); } //Send a mail try […]