現在PHP5を利用して携帯の空メールを実装しており、3日ほどトライし続けておりますが、携帯側にエラーが返信される所で先に進めずにいます(;;)プログラムは勉強し始めて4ヶ月程度の未熟者です。どなたか是非ご教授頂ければと思います。よろしくお願いします!!
ちなみに、pearは使えているのを、他のライブラリで確認しました。
【使用言語とライブラリ】
PHP5、pearの『Mail.php』『mimeDecode.php』
【参考書籍】
PHP携帯 デベロッパーズバイブル
【利用サーバー】
Xサーバー
【メールの振り分け設定】
『条件』あて先が ○○○@△△.com を一致する
『処理方法』
| /home/サーバーID/ドメイン/public_html/フォルダ名/フォルダ名/empty_mail.php へ 転送する
【PHPのソース】
#!/usr/bin/php5
<?php
//PEAR::Mailライブラリ
ini_set('include_path', '/home/サーバーID/ドメイン/public_html/pear/PEAR');
require_once 'Mail/Mail.php';
//PEAR::Mail_mimeライブラリ
ini_set('include_path', '/home/サーバーID/ドメイン/public_html/pear/PEAR');
require_once 'Mail/mimeDecode.php';
//メールソースを読み込む
$source = file_get_contents("php://stdin","r");
if(!$source){
exit("標準入力に失敗");
}
//メールを解析する
$decoder = new Mail_mimeDecode($source);
$structure = $decoder->decode($params);
//送信元を取得する
$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 = ○○○@△△.com';
$subject = 'empty mail ok!';
$body = '(仮)こんにちわ';
//メールを送信する
$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);
ini_set('log_errors', '1');
ini_set('error_log', 'エラーです');
【エラー内容(すごく長いですが…)】
This is the Postfix program at host sv225.xserver.jp.
I'm sorry to have to inform you that your message could not be
delivered to one or more recipients. It's attached below.
For further assistance, please send mail to <postmaster>
If you do so, please include this problem report. You can delete your
own text from the attached returned message.
The Postfix program
<○○○@△△.com>: Command died with status 255: "/usr/bin/maildrop". Command
output: PHP Warning:
require_once(/home/サーバーID/ドメイン名/public_html/pear/PEAR/Mail/Mail.php)
[<a href='function.require-once'>function.require-once</a>]: failed to open
stream: No such file or directory in
/home/サーバーID/ドメイン名/public_html/mobile_search/gotempty_mail2.php on
line 7 PHP Fatal error: require_once() [<a
href='function.require'>function.require</a>]: Failed opening required
'/home/サーバーID/ドメイン名/public_html/pear/PEAR/Mail/Mail.php'
(include_path='home/サーバーID/ドメイン名/public_html/pear/PEAR') in
/home/サーバーID/ドメイン名/public_html/mobile_search/gotempty_mail2.php on
line 7 X-Powered-By: PHP/5.1.6_ Content-type: text/html_ _
とても煩雑でごめんなさい(;;)
どうかよろしくお願いします。
お礼
メールサーバーには携帯やPCから送ったメールがそのまま残っているという状態でした。 でも、解決できました!! すごくうれしいです!! 原因は、転送設定が破壊していました。ためしにmailフォルダの.filterを開いてみたら、いくつか作ったおいた転送用のurlで、空メールを発動するphpファイルに該当するurl(メールアドレス?)だけが何故か文字化けしまくっていました。 きっと僕がその該当フォルダの設定をするときに、すごいスピードで入れなおしたり削除したりを繰り返し過ぎたのだと思います。 迷惑メール対策はこれから取り組んでみたいと思います。 アドバイスありがとうございました(^^)