Mailgun - Laravel检索附件

时间:2017-05-06 19:46:06

标签: laravel attachment mailgun

所以我试了好几个小时。如果您使用laravel,如何从mailgun下载电子邮件中的附件?

1 个答案:

答案 0 :(得分:0)

这不是最优雅的方式,但它有效。我无法找到这样的东西。所以,如果你想在mailgun电子邮件上下载附件。

从收到的电子邮件中获取数据

$request->input('sender')

获取METADATA JSON,我重复附件的JSON

  $request->input('attachments')

附件的示例元数据

'attachments' => '[
                    {
                        "url": "https://se.api.mailgun.net/v3/domains/sandboxcXXXXXXXX19a57487.mailgun.org/messages/XXXXXXXXXXXXXXXXXXX=/attachments/0", 
                        "content-type": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", 
                        "name": "Plan API end points XXXX.docx", 
                        "size": 53185
                        }
                    ]',

从电子邮件中获取文件

步骤1. json首先解码附件

$files = json_decode($request->input('attachments'),true);

步骤2.使用composer安装mailgun API。 (https://github.com/mailgun/mailgun-php

步骤3.创建一个新的mailgun实例并使用您的API密钥,而不是密码。

$mg = new Mailgun('key-xxxxxxxxxxxxxxxxx');
    foreach ($files as $file){
                $fileName = $file['name'];
                $content = $mg->getAttachment($file['url'])->http_response_body;
}

就是这样,你现在可以下载$ content,放入你的cloudstorage,无论如何。