使用MS Graph API C# SDK回复邮件遇类型及依赖冲突问题
问题原因
你当前使用的是MS Graph SDK v4.34.0,而微软文档里的邮件回复示例基于v5版本的API结构。v4与v5是重大版本迭代,命名空间、请求构造逻辑完全不同,所以会出现找不到Me相关类型的错误。直接升级到v5会导致原有v4代码(OneDrive、收件箱功能)失效,因为API已全面重构。
适配v4.34.0的邮件回复代码
无需升级NuGet包,用v4版本的API写法即可实现邮件回复,替换你提供的示例代码:
// 构造回复的收件人信息 var replyMessage = new Message { ToRecipients = new List<Recipient> { new Recipient { EmailAddress = new EmailAddress { Address = "samanthab@contoso.onmicrosoft.com", Name = "Samantha Booth" } }, new Recipient { EmailAddress = new EmailAddress { Address = "randiw@contoso.onmicrosoft.com", Name = "Randi Welch" } } } }; // 执行邮件回复,第二个参数为回复的正文评论 await _graphServiceClient.Me.Messages["{message-id}"].Reply(replyMessage, "Samantha, Randi, would you name the group please?").Request().PostAsync();
关键差异说明
- v4版本中,
Reply是直接调用的方法,传入Message对象和回复评论即可,不需要构造ReplyPostRequestBody这类嵌套类型 Microsoft.Graph.Me.Messages.Item.Reply.ReplyPostRequestBody是v5版本才引入的结构,v4中不存在该类型- 保持现有NuGet包版本(由Microsoft.Identity.Web.MicrosoftGraph依赖的v4.34.0),不会影响已正常运行的OneDrive及收件箱功能
内容的提问来源于stack exchange,提问作者Qiuzman
相关产品推荐
相关产品推荐

