Tag: exchange server

使用System.Net.Mail通过Exchange Online发送SMTP电子邮件(Office 365)

我们正在testing新的Office 365testing版,并且在Exchange Online服务上有一个邮件帐户。 现在我试图连接一个LOB应用程序,可以从我的testing帐户发送smtp电子邮件。 但是,Exchange 365平台需要在端口587上进行TLSencryption,并且System.Net.Mail有一个“function”,不允许隐式SSLencryption。 有没有人设法让C#通过这个平台发送邮件? 我有以下基本的代码,应该发送邮件 – 任何意见,将不胜感激。 SmtpClient server = new SmtpClient("ServerAddress"); server.Port = 587; server.EnableSsl = true; server.Credentials = new System.Net.NetworkCredential("username@mydomain.com", "password"); server.Timeout = 5000; server.UseDefaultCredentials = false; MailMessage mail = new MailMessage(); mail.From = new MailAddress("recipent@anyaddress"); mail.To.Add("username@mydomain.com"); mail.Subject = "test out message sending"; mail.Body = "this is my message body"; […]

检索日历项目(Outlook API,WebDAV) – 奇怪的行为

我们正在写一个微软的Outlook插件,以满足我们的业务逻辑应检查所有date之间的约会,我们遇到几个问题从日历中检索所有项目。 我们尝试了2个选项: Outlook API。 我们使用MSDN中描述的标准逻辑 – 按[Start]对项目进行sorting,将IncludeRecurrences设置为True,并对日历项目运行Find \ Restrict查询(如http://msdn.microsoft.com/zh-cn/library/office/ aa220093(v = office.11​​).aspx )。 它在我们的testing环境中工作正常。 但是,在我们客户的定期约会环境中,开始和结束date被设置为“主约会”的相应date。 例如,在某个房间的日历中,我们每周都有一个在一月份创build的约会,如果我们在八月份试图find所有的项目,我们就会获得这个周期性约会的4个项目,但是他们的开始和结束date都设置为一月。 但Outlook在相同的日历中显示正确的date… 非常糟糕,但我们仍然有WebDAV! 我们编写一个简单的testing应用程序,并尝试使用WebDAV从日历中查询所有项目。 当然,我们不会重新发明轮子,只需从文档粘贴代码 – http://msdn.microsoft.com/en-us/library/exchange/aa123570(v=exchg.65).aspx 。 上一个问题解决了,但是下一个问题出现了:它不会返回创build超过大约6个月前的重复项目。 而我无法find一个线索 – 没有任何参数限制“旧”的项目! 哪里不对? 我们错过了重要的东西吗? 技术细节:Exchange 2003,Outlook 2003-2010。 坦白说,如果我们打开cachingExchange模式,第一个错误消失,但我们不能这样做。 var nameSpace = application.GetNamespace("MAPI"); var recepient = nameSpace.CreateRecipient(roomEMail); recepient.Resolve(); var calendar = nameSpace.GetSharedDefaultFolder(recepient, OlDefaultFolders.olFolderCalendar); var filter = string.Format("[Start]<'{1}' AND [End]>'{0}'", dateFrom.ToString("dd/MM/yyyy HH:mm", […]

EWS API – 重新创build通知订阅时出错

在处理与Office365日历文件夹的订阅时,我在SendNotification请求中收到了很多ErrorReadEventsFailed消息。 这个错误基本上意味着订阅不能再被发现,并且服务器不应该再期望新的通知。 检查微软build议的error handling ,解决scheme是使用自动发现重新发现ExternalEwsUrl或EwsPartnerUrl,并创build一个新的订阅。 使用Office365,AutoDiscovery服务似乎几乎不可能与OAuth2服务帐户的组合,所以我一直使用https://outlook.office365.com/EWS/Exchange.asmx作为主要的EWS端点。 但是,当我尝试创build新的订阅特定的日历文件夹,我不断得到一个通用的500 ErrorNoRespondingCASInDestinationSite错误: Exchange Web服务目前不可用于此请求,因为目标站点中的任何客户端访问服务器都不能处理该请求。 奇怪的部分是这只发生在收到最初的ErrorReadEventsFailed错误后直接发生 。 如果我再次尝试,例如30秒,请求就会顺利通过。 在做了一些研究之后,似乎大多数用户发现有助于确保为服务帐户希望模拟的用户正确设置X-AnchorMailbox头。 我仔细检查了这个头,这确实是在请求重新订阅发送。 这个问题可以通过指数回退解决scheme解决,也可以通过重试X次直到请求通过。 在我看来,当订阅“丢失”,O365服务需要时间来更改Exchange服务器的DNS(这是我能想到的唯一的事情)。 任何帮助将不胜感激!

通过MAPI使用Python从Outlook中阅读电子邮件

我试图编写一个简短的程序,将读取我的Exchange / Outlookconfiguration文件中的文件夹内的电子邮件内容,以便我可以操纵数据。 不过,我有一个问题,find有关Python和Exchange / Outlook集成的很多信息。 很多东西要么很旧/没有文档/没有解释。 我已经尝试了几个片段,但似乎得到相同的错误。 我试过Tim Golden的代码: import win32com.client session = win32com.client.gencache.EnsureDispatch ("MAPI.Session") # # Leave blank to be prompted for a session, or use # your own profile name if not "Outlook". It is also # possible to pull the default profile from the registry. # session.Logon ("Outlook") messages = session.Inbox.Messages […]

EWS – 访问所有共享日历

我有以下代码: private void ListCalendarFolders(ref List<EBCalendar> items, int offset) { var pageSize = 100; var view = new FolderView(pageSize, offset, OffsetBasePoint.Beginning); view.PropertySet = new PropertySet(BasePropertySet.FirstClassProperties); view.PropertySet.Add(FolderSchema.DisplayName); view.PropertySet.Add(FolderSchema.EffectiveRights); view.Traversal = FolderTraversal.Deep; FindFoldersResults findFolderResults = service.FindFolders(WellKnownFolderName.MsgFolderRoot, view); foreach (Folder myFolder in findFolderResults.Folders) { if (myFolder is CalendarFolder) { var folder = myFolder as CalendarFolder; items.Add(EBCalendar.FromEWSFolder(folder)); } } if […]