繁体   English   中英

使用 Exchange web 服务读取 Office 365 邮箱

[英]Read an office 365 mailbox using Exchange web services

我正在使用以下代码,但无法从 C# 代码读取我的 office 365 收件箱电子邮件。 一旦我得到这个工作,然后我需要阅读来自共享邮箱的电子邮件。

如果有人可以帮助我解决此问题或指导我在这里缺少什么,我将不胜感激?

如果我使用 Url 作为 Office365 一个然后收到此错误:“请求失败。远程服务器返回错误 401。未经授权”

如果我使用 Url 作为 casx16 之一(在公司的 Q/A 门户中找到这个)然后收到此错误:“没有具有此类 GUID 的邮箱”

using Microsoft.Exchange.WebServices.Data;

public static void ReadMyMailbox_2()

        {

ExchangeService exchangeService = new ExchangeService();

exchangeService.Credentials = new WebCredentials("ajain", "password ", "MS");    ///  ajain is my MSID

// exchangeService.AutodiscoverUrl("a_jain@xyz.com", RedirectionUrlValidationCallback);

exchangeService.Url = new Uri("https://casx16.xyz.com/ews/exchange.asmx");

// exchangeService.Url = new Uri("https://outlook.office365.com/EWS/Exchange.asmx");

 

FolderId mailbox = new FolderId(WellKnownFolderName.Inbox, "a_jain@xyz.com");

ItemView itemView = new ItemView(10);

 

FindItemsResults<Item> result = exchangeService.FindItems(mailbox, itemView);

foreach (var msg in result)

{

EmailMessage message = EmailMessage.Bind(exchangeService, msg.Id);

                  Console.WriteLine(message.Subject);

}

        }

看起来您正在正确设置 ExchangeService object。 有几件事可以尝试:

  1. 尝试将完整的 email (a_jain@xyz.com) 传递给 WebCredentials
  2. 确保您传递给 WebCredentials 的域是正确的
  3. 尝试只接受用户名和密码的 WebCredentials 构造函数。

注意:我认为自动发现不适用于 O365

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM