【问题标题】:Sending Email with attachments which are > 4MB发送带有大于 4MB 附件的电子邮件
【发布时间】:2021-03-04 10:00:44
【问题描述】:

从以下代码中检索令牌

var token = await GetAccessToken();
GraphServiceClient graphServiceClient =
  new GraphServiceClient($"{graphApi}/v1.0",
    new DelegateAuthenticationProvider(async(requestMessage) =>
    {
      requestMessage.Headers.Authorization =
        new AuthenticationHeaderValue("Bearer", token);
    })
  );

使用应用权限发送电子邮件

graphServiceClient.Users[fromAddress]
  .SendMail(message, false)
  .Request()
  .PostAsync().Wait();

动态创建时附加附件

attachments.Add(new FileAttachment
{
  ODataType = "#microsoft.graph.fileAttachment",
    ContentBytes = System.IO.File.ReadAllBytes(getAttachmentLocation() + attach.Name),
    ContentId = attach.Name,
    ContentType = "csv/html",
    Name = attach.Name,
    IsInline = false
});

现在的问题是当附件大小超过 4MB 时不会触发电子邮件。

有人可以帮助我了解如何解决此问题吗?

我们是否有任何实际增加此 4MB 或支持大于 4 MB 附件的新版本 Graph 的阈值的东西?

【问题讨论】:

  • 不要使用.Wait()
  • 我可以将附件保存为 Outlook 邮件中的草稿,但我面临的问题是邮件未发送。在收件箱中接收传递失败消息。如何在单个消息中发送包含 >3MB 和
  • 看起来如果附件大小小于 3MB 也不会触发电子邮件。经过大量研究后知道这是由于 API 请求长度仅为 4MB。我们如何增加它。

标签: c# microsoft-graph-api microsoft-graph-sdks microsoft-graph-mail


【解决方案1】:

要发送较大的邮件,您必须创建邮件草稿,然后添加附件。 如果附件大于 3MB,则无法一次发送。请改用 UploadSession,如下所述:https://docs.microsoft.com/en-us/graph/sdks/large-file-upload?tabs=csharp

【讨论】:

    猜你喜欢
    • 2015-09-09
    • 2017-01-07
    • 2015-08-28
    • 2013-11-26
    • 2014-11-09
    相关资源
    最近更新 更多