メール内容をpostで送るコードを利用しています。
php5 から php7 にしたところ、
メール内容[body charset]が入手できなくなりました。
subject 件名は入手できます。
body 本文を読むにはどうすればいいでしょうか。
宜しくお願い致します。
<?php require '/home/xxxxxxx/www/xf/vendor/autoload.php'; // メールデータ取得 $input = file_get_contents("php://stdin"); $params = []; $params['include_bodies'] = true; $params['decode_bodies'] = true; $params['decode_headers'] = true; $params['crlf'] = "\r\n"; $decode = new Mail_mimeDecode($input, "\n"); $structure = $decode->decode($params); //送信者のメールアドレスを抽出 $mail = $structure->headers['from']; $mail = addslashes($mail); $mail = str_replace('"','',$mail); //署名付きの場合の処理を追加 preg_match("/<.*>/",$mail,$str); if($str[0]!=""){ $str=substr($str[0],1,strlen($str[0])-2); $mail = $str; } // 件名を取得 $diary_subject = $structure->headers['subject']; $diary_subject = mb_convert_encoding($diary_subject,'utf-8','auto'); // "iso-2022-jp", "sjis", "auto" //文字コード $diary_charset = $structure->ctype_parameters['charset']; //本文を取得 $diary_body = $structure->body; $diary_body = urlencode($diary_body); $objHttp = new HTTP_Request2(); $objHttp->setUrl("https://hogehoge/hoge_test.php"); $objHttp->setMethod(HTTP_Request2::METHOD_POST); $objHttp->addPostParameter("subject", $diary_subject); $objHttp->addPostParameter("charset", $diary_charset); $objHttp->addPostParameter("body", $diary_body); $objHttp->addPostParameter("from", $mail); if (!PEAR::isError($objHttp->send())) { $body = $objHttp->getBody(); }
あなたの回答
tips
プレビュー