こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

自動返信でのMail_mimeDecode

//メールソースを読み込む
$source = file_get_contents("php://stdin");
if(!$source){
exit();
}


$params['include_bodies'] = true;
$params['decode_bodies'] = true;
$params['decode_headers'] = true;
$params['input'] = file_get_contents("php://stdin");
$params['crlf'] = "\r\n";

$mail_data = Mail_mimeDecode::decode($params);
$MailBody = getbody($mail_data);
if (!$MailBody) {
print "cannot get MailBody"; // エラー処理
}// $MailBodyを使った処理
function getbody($arg) {
if ($arg->ctype_primary == 'multipart') {
foreach($arg->parts as $parts) {
$ret = getbody($parts);
if ($ret) { return $ret; }
}
}
if ($arg->ctype_primary == 'text') {
if ($arg->ctype_secondary == 'plain') {
if (strtolower($arg->ctype_parameters['charset']) == 'iso-2022-jp') {
return mb_convert_encoding($arg->body, "UTF-8", 'JIS');
} else {
return $arg->body;
}
}
}
return false;
}



//メールを解析する
$decoder = new Mail_mimeDecode($source);
$structure = $decoder->decode($params);

//送信元を取得する
$mail = $structure->headers['from'];
$mail = addslashes($mail);
$mail = str_replace('"','',$mail);
$from = $structure -> headers['from'];
$from = mb_decode_mimeheader($from);
$from = mb_convert_encoding($from, mb_internal_encoding(),'auto');
if(preg_match( '/<(.*?)>$/' , $from , $match)){
$from = $match[1];
}
$from = trim($from);
$from = strtolower($from);



//送信データを設定する
$recipients = $from;
$new_from = 'get@hoge.com';
mb_language('ja');
mb_internal_encoding('sjis');
$subject = mb_encode_mimeheader(mb_convert_encoding("登録URL", "JIS", "auto"), "JIS");



$body = "下記のURLをクリックして登録を行ってください
http://hoge.com/regist.php?". $MailBody . "". session_name()."=". htmlspecialchars(session_id());

とメールを自分のHPに送る際に本文にデータがあるのですが、そのデータを取り出し登録URLに付加し、情報を維持させたいのですが、上記のソースですと$MailBodyに情報がはいっていません。ベテランさん!ご指導、ご教授お願い致します

投稿日時 - 2011-02-10 21:54:02

QNo.6513022

すぐに回答ほしいです

質問者が選んだベストアンサー

ちゃんと読んでいませんので、見当違いなこと書いてたらすみません。
更に、俺は 標準入力(stdin)の挙動も分かってません。

最初の数行に ↓の2行がありますけど、

$source = file_get_contents("php://stdin");
$params['input'] = file_get_contents("php://stdin");

下の方は ↓でいいんじゃないん?と思いました。

$params['input'] = $source;

投稿日時 - 2011-02-12 13:22:45

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問