Microsoft.Graph 发送带有附件的邮件附件、邮件、Microsoft、Graph

2023-09-06 17:01:38 作者:傲似你祖宗

using Microsoft.Graph
IMessageAttachmentsCollectionPage Message.Attachments

我似乎无法获取 FileAttachment.ContentBytes 中的任何ContentBytes".

I can not seem to get this to take any "ContentBytes" which is in the FileAttachment.ContentBytes.

我的示例来自 Microsoft https://github.com/microsoftgraph/aspnet-snippets-样本.

My sample is from Microsoft https://github.com/microsoftgraph/aspnet-snippets-sample.

// Create the message.
Message email = new Message
{
    Body = new ItemBody
    {
        Content = Resource.Prop_Body + guid,
        ContentType = BodyType.Text,
    },
    Subject = Resource.Prop_Subject + guid.Substring(0, 8),
    ToRecipients = recipients,
    HasAttachments = true,
    Attachments = new[]
        {
            new FileAttachment
            {
                ODataType = "#microsoft.graph.fileAttachment",
                ContentBytes = contentBytes,
                ContentType = contentType,
                ContentId = "testing",
                Name = "tesing.png"
            }
        }
};

推荐答案

使用上面来自 GitHub 的示例解决了这个问题,见下文:

Using the sample above from GitHub this is resolved, see below:

// Create the message with attachment.
byte[] contentBytes = System.IO.File.ReadAllBytes(@"C:	est	est.png");
string contentType = "image/png";
MessageAttachmentsCollectionPage attachments = new MessageAttachmentsCollectionPage();
attachments.Add(new FileAttachment
{
    ODataType = "#microsoft.graph.fileAttachment",
    ContentBytes = contentBytes,
    ContentType = contentType,
    ContentId = "testing",
    Name = "testing.png"
});
Message email = new Message
{
    Body = new ItemBody
    {
        Content = Resource.Prop_Body + guid,
        ContentType = BodyType.Text,
    },
    Subject = Resource.Prop_Subject + guid.Substring(0, 8),
    ToRecipients = recipients,
    Attachments = attachments
};

// Send the message.
await graphClient.Me.SendMail(email, true).Request().PostAsync();