繁体   English   中英

如何使用 Laravel/PHP 下载 Office 365 邮件附件文件

[英]how to download office 365 mail attachment file using laravel/PHP

我正在使用 Microsoft 图形 API 来获取 Office 365 邮件。 我收到了来自 API 调用的所有电子邮件,但我不知道如何从消息对象中保存附件。 如何将contentBytes保存到文件?

Microsoft\Graph\Model\Message Object
(
  [_propDict:protected] => Array
  (
    [@odata.context] => https://graph.microsoft.com/v1.0/$metada
    [@odata.type] => #microsoft.graph.fileAttachment
    [@odata.mediaContentType] => application/pdf
    [id] => AAMkADM4MDYwMDkxLWRmN2UtNDJmMC04NDEwLTljZmQ2N2I4Zjc5NABGAAAAAAAix7kDZj2fRq
    [lastModifiedDateTime] => 2016-04-18T09:44:53Z
    [name] => 1 ) Muhammad Abdullah New.pdf
    [contentType] => application/pdf
    [size] => 104767
    isInline] =>
    [contentId] => C#$F3@eurprd06.prod.outlook.com
    [contentLocation] => 
    [contentBytes] => JVBERi0xLjUNJeLjz9MNyuFJFtfTffYSTIgCjUwNSAwIG9iag08PC9MaW
  )
)

最后我得到了一个解决方案。我们从Graph API获得base64_encoded contentBytes,我们需要将contentBytes转换为base64_decode格式。所以你必须将base64_decoded内容写入文件。

$content=base64_decode($attachment_data->getcontentBytes(),true);
file_put_contents(public_path(). "/sample/".$attachment_data->getname(),$content);
// download code

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM