【问题标题】:Microsoft graph - can't add attachments to my messageMicrosoft 图表 - 无法向我的消息添加附件
【发布时间】:2018-04-26 10:26:20
【问题描述】:

所以,今天我又回到了另一个微软 API 问题,

我可以发送邮件,使用microsoft graph api没有任何问题,但是当我想添加附件时出现问题,我按照不同的文档,甚至发现有同样问题的人,但我一直得到同样的问题错误,代码如下:

$b64Doc = chunk_split(base64_encode(file_get_contents($path)));

//send mail
$payload = [
    'Message' => [
        'subject' => $subject,
        'body' => [
            'contentType' => 'Html',
            'content' => $body,
        ],
        'toRecipients' => [
            [
                'emailAddress' => [
                    'address' => $email,
                ]
            ]
        ],
        'attachments' => [
            '@odata.type' => '#microsoft.graph.fileAttachment',
            'Name' => 'file.pdf',
            'ContentBytes' => $b64Doc,
            'contentType' => 'application/pdf',
],
    ],
    'saveToSentItems' => "false",
];

$microsoft_message = $graph->createRequest("POST", "/me/sendmail")
    ->attachBody($payload)
    ->execute();

这是我得到的错误:

{
  "error": {
    "code": "BadRequest",
    "message":
      "Property attachments in payload has a value that does not match schema.",
    "innerError": {
      "request-id": "c060b553-80f9-4f86-8784-291ff9be2082",
      "date": "2018-04-26T09:15:03"
    }
  }
}

我尝试了多个大写/小写名称,因为文档说它是这样写的,但是人们使它使用不同的语法,有什么建议吗?谢谢!

【问题讨论】:

  • 您尝试附加到邮件的 PDF 文件有多大?每个 API 请求有 4MB 的限制。
  • 嗨,很抱歉回复晚了,它的重量是 23Ko,它只是将 HTML 转换为 pdf,谢谢
  • 能否添加(或链接到)base64 编码 PDF 的示例?该消息暗示负载和 application/pdf 内容类型之间存在意外情况。

标签: php microsoft-graph-api outlook-restapi


【解决方案1】:

您的附件周围需要另一组[]attachments 属性是一个对象数组。

'attachments' => [
    [
        '@odata.type' => '#microsoft.graph.fileAttachment',
        'Name' => 'file.pdf',
        'ContentBytes' => $b64Doc,
        'contentType' => 'application/pdf',
    ]
],

【讨论】:

  • 感谢您的回答,解决了问题,挽救了一天!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-03
  • 1970-01-01
  • 1970-01-01
  • 2017-04-22
  • 2020-07-27
  • 2017-12-25
  • 1970-01-01
相关资源
最近更新 更多