我有一个 MailGun 帐户,我正在制作一个 PHP 脚本,它将抓取发送到我设置的 MailGun 电子邮件地址的电子邮件附件。
当电子邮件发送到该地址时,MailGun 会向下面的我的 PHP 脚本发送一个通知,其中包含一个指向 JSON 中完整消息内容的 URL。然后我去抓取那条消息。在那之前它工作得很好。我收到了完整的 JSON 消息——问题是尝试使用 JSON。
这是我到目前为止的 PHP 脚本
// Grab contents of message ( Already in JSON format (i think ? ))
$json = file_get_contents($api_url);
$json2 = json_decode($json);
foreach($json2->attachments->url AS $attach) {
file_put_contents('test.txt', $attach, FILE_APPEND);
}
该$json
变量返回以下内容(编辑了大部分不必要的代码):
{
"attachments":[
{
"url":"fullMailGunURLtoAttachment.jpg",
"content-type":"image/jpeg",
"name":"logo-lrg.jpg",
"size":45465
}
],
"body-html":"<html>\r\n<head>\r\n<style><!--\r\n.hmmessage P\r\n{\r\nmargin:0px;\r\npadding:0px\r\n}\r\nbody.hmmessage\r\n{\r\nfont-size: 12pt;\r\nfont-family:Calibri\r\n}\r\n--></style></head>\r\n<body class='hmmessage'><div dir='ltr'> \t\t \t \t\t </div></body>\r\n</html>",
"Mime-Version":"1.0",
"Date":"Thu, 19 Sep 2013 18:11:12 +0000",
"X-Tmn":"[Skvi/kuHvvUw+DlCaQ0136pus9MAs4jm]",
"Content-Type":"multipart/mixed; boundary=\"_733f5ac1-abe1-41b0-9f42-03a4ae524b70_\"",
"body-plain":" \t\t \t \t\t ",
"Subject":"66666"
}
我最终将对其进行编码以获取附件 URL,并将其与另一个经过身份验证的请求一起存储到我的本地文件系统中。身份验证和调用不是问题。我的问题是在 PHP 中使用上面返回的代码。我已经尝试过变体,但出现了以下错误:
PHP 注意:试图获取非对象的属性
和
PHP 警告:为 foreach() 提供的参数无效
当我尝试只$json->attachments
在循环中使用而不是$json2->attachments
.
任何帮助都会很棒!