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

解決済みの質問

Mail_mimeDecodeでメール本文取得

index.php
<form action="mailto:info@hoge.com" method="get" id="join">
<input type="hidden" name="body" value="<?php echo $friend;?>" />
</center></form>


empty_mail.php
$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 = 'info@hoge.com';
mb_language('ja');
mb_internal_encoding('sjis');
$subject = mb_encode_mimeheader(mb_convert_encoding("登録URL", "JIS", "auto"), "JIS");



$body = "下記のURLをクリックして登録を行ってください
http://hoge/hoge.php?". $MailBody . "". session_name()."=". htmlspecialchars(session_id());
と$friendを登録フォーム画面にいくまで情報を維持したいのですが、ご教授お願いします。

投稿日時 - 2011-02-09 23:40:26

QNo.6511071

困ってます

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

こんばんは。

何ができてて、何ができてないんですかね?
一応、$friendの値はメール本文として返ってきて、GETのパラメータに引き渡しているように見えますが・・・?
(パラメータの渡し方はおかしそうですが・・・)

投稿日時 - 2011-02-17 23:03:11

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

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

回答(1)

あなたにオススメの質問