私は MailGun アカウントを持っており、設定した MailGun メール アドレスに送信されたメールの添付ファイルを取得する PHP スクリプトを作成しています。
電子メールがアドレスに送信されると、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 Notice: 非オブジェクトのプロパティを取得しようとしています
と
PHP 警告: foreach() に無効な引数が指定されました
$json->attachments
ではなくループで使用しようとしたとき$json2->attachments
。
どんな助けでも素晴らしいでしょう!