使用 OAuth 身份验证加载附件表单 EWS (0kb)

Load attachment form EWS using OAuth authentication (0kb)

提问人:Maxime V 提问时间:10/9/2023 最后编辑:Maxime V 更新时间:10/9/2023 访问量:34

问:

编辑:感谢 Ralf,我的问题仍然存在,但我尝试了使用 MS Graph 的测试程序,它运行良好!

我正在开发一个 C# 控制台应用程序,该应用程序连接到我们的一个邮箱,阅读邮件,对其进行标记,并将附件下载到本地磁盘上。

去年应用程序运行良好。然后,基本身份验证不再适用于 ews。

添加 OAuth 身份验证后,应用程序将再次执行除下载附件之外的所有步骤。

该文件在本地磁盘上创建,类型正确,但始终为空 (0kb)。

OAuth 令牌具有(在 Azure 上): -Microsoft Graph(Mail.readWrite;用户.read) -Office 365 Exchange Online(full_access_as_app) -MyApp(ExchangeAccess)

我试过了

  if (Attachment is FileAttachment && CheckAttachmentExtension(Attachment.Name))
  {
    FileAttachment fileAttachment = Attachment as FileAttachment;

    Path = @"C:\localPath" + "\\" + Attachment.Name;

    Attachment.Load(Path);
  }
if (Attachment is FileAttachment && CheckAttachmentExtension(Attachment.Name))
{
    FileAttachment fileAttachment = Attachment as FileAttachment;

    Path = @"C:\localPath" + "\\" + Attachment.Name;

    Attachment.Load().Wait();
    Attachment.Load(Path);
}

if (Attachment is FileAttachment && CheckAttachmentExtension(Attachment.Name))
{
    FileAttachment fileAttachment = Attachment as FileAttachment;

    Path = @"C:\localPath" + "\\" + Attachment.Name;

    Attachment.Load().Wait();
    Attachment.Load(Path);

    FileStream theStream = new FileStream(Path, FileMode.OpenOrCreate, FileAccess.ReadWrite);
    Attachment.Load(theStream);
    theStream.Close();
    theStream.Dispose();
}

我希望本地文件不是 0kb,并且具有以前的原始内容

我很确定我遗漏了一些东西,但几天后就想不通了,阅读了很多关于这个主题的话题

非常感谢您的帮助!

C# OAuth ExchangeWebServices 电子邮件附件

评论

0赞 jdweng 10/9/2023
下载文件需要与其他方法(例如将文件放入文件夹中)不同的权限(写入文件)。您需要使用不同的权限。以管理员身份运行、使用其他用户或更改文件的权限。
0赞 Maxime V 10/9/2023
你知道我需要烫发吗?OAuth 令牌已经具有:-Microsoft Graph(Mail.readWrite;User.read) -Office 365 Exchange Online(full_access_as_app) -MyApp(ExchangeAccess) 我退出了 Azure 的新手 谢谢
0赞 jdweng 10/9/2023
请尝试以下其中一项:learn.microsoft.com/en-us/graph/...
1赞 Ralf 10/9/2023
注意:Exchange Online 的 EWS 将在 ~2 年后停用。您可能希望寻找仅限 MS Graph 的解决方案,而不是投资 EWS。
0赞 Maxime V 10/9/2023
感谢您提供的信息,我将仅使用 MS Graph 搜索方法:)

答: 暂无答案