携帯からの空メールの処理
こんにちは。今、PHP5.3で、携帯からの空メールを処理するプログラムを作っています。
具体的には、空メールが携帯から送られてくると、エイリアスでPHPプログラムに渡し、送信者に自動返信するというプログラムです。
現在、以下のようなプログラムを作っていますが、うまく動きません。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
<?php
require_once("/opt/lampp/lib/php/PEAR.php");
// PEAR::Mailライブラリ
require_once("/opt/lampp/lib/php/Mail.php");
// PEAR::Mail_mimeライブラリ
require_once("/opt/lampp/lib/php/Mail/mimeDecode.php");
$params['include_bodies'] = false;
$params['decode_bodies'] = false;
$params['decode_headers'] = true;
$params['input'] = file_get_contents("php://stdin");
$params['crlf'] = "\r\n";
//メールを解析する
$structure = Mail_mimeDecode::decode($params);
print_r($structure);
//送信元を取得する
$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;
//送信データを設定する
$recipients = $mail;
$new_from = 'register@7ws.jp';
$subject = 'empty mail OK!';
$body ='登録が完了しました。';
$headers = "From:".$new_from;
//メールを送信する
$headers = array();
$headers['From'] = $new_from;
$headers['To'] = $recipients;
$headers['Subject'] = $subject;
$headers['Sender'] = $new_from;
$mail = Mail::factory('sendmail');
$result = $mail->send($recipients, $headers, $body);
?>
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
参考にしたのは、http://www.phppro.jp/phptips/archives/vol35/1
と「PHP×携帯サイト デベロッパーズバイブル」です。
プログラムを実行しても、空メールの送信者のアドレスが取得できず、
送り先を空白のまま、メールを送信していまい、エラーとなります。
正常に送信者アドレスを取る方法をご存知の方が、いらっしゃいましたら、ご教授お願いします。
なお、$structure = Mail_mimeDecode::decode($params);の下で、
print_r($structure);を実行したところ、
print_r($structure);
(
[headers] => Array
(
[] =>
)
[ctype_primary] => text
[ctype_secondary] => plain
)
という表示なっていました。headersがArrayなのに空っぽなところに、
問題があるのではないかと思います。以上、よろしくお願いします。
お礼
回答ありがとうございました。 やりたい事が実現できそうです。