
Xserverで空メールを実装しようとしています。
しかしうまく動作しません。
マニュアルを参考に「メールの振り分け設定」より
条件:あて先が ○○○○○@△△△△ を一致する
処理方法:| /○○○○/□□□□/sippai.php へ 転送する
としました。
しかし、携帯電話より○○○○○@△△△△へメール送信しても、
差出人:MAILER-DAEMON@△△△.xserver.jp
件名:Undelivered Mail Returned to Sender
と返信されてしまいます。
サーバー側の設定が何か必要なのでしょうか?
スクリプトを以下に記載します。
使用スクリプト;PHP5、ライブラリ;PEAR
<?php
//PEAR::MailCu
require_once '/aaaaaa/bbbb/cccc/ddddd/eeeee/fff/Mail.php';
//PEAR::Mail_mimeCu
require_once '//aaaaaa/bbbb/cccc/ddddd/eeeee/ggg/mimeDecode.php';
//メールソースを読み込む
$source = file_get_contents("php://stdin");
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 = '○○○○○@△△△△';
$subject = 'empty mail ok!';
$body = 'http://fmob.jp';
//メールを送信する
$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', 'エラーログのパス');
?>
よろしくお願いします。
No.7ベストアンサー
- 回答日時:
エラーログを採るにあたっては、php.iniで以下を設定すればよいです。
error_reporting = (任意の値)
log_errors = On
error_log = "(ログファイルのパス)"
サーバの環境がよくわかりませんが、ログファイルは予め書き込み可能なファイルとして作成しておく方が無難です。
ブラウザにエラーメッセージが表示されないということですが、まずはphp.iniの設定が正しく反映されているかphpinfo()で確認してみてください(確認済みでしたらすいません)。
うっかりコメントアウトしたままだったとかないですかね。
回答ありがとうございます。
解決しました!
php.iniの設定が正しく反映されているかについて
/○○○○/□□□□/sippai.phpに正しく反映されていませんでした。
php.iniファイルを作成し、配置していたのですが、配置先が誤っていたため、
反映されていませんでした。
こちらで配置できる一番上の階層にphp.iniを配置することで、エラーログをブラウザで確認することができました。
/○○○○/□□□□/sippai.phpのエラーログを確認できるようになったことで、PEARライブラリの呼び出しに失敗していることがわかりました。
原因は恥ずかしいですがスクリプトの記述ミスでした。
UmJammerさんのご指摘がなければ、気づくことができず解決はできなかったと思います。
PHPに触れるようになって1ヶ月程ですが、とても勉強になりました。
本当にありがとうございました。
No.6
- 回答日時:
返送されるメールの内容は前とは異なってますよね、ということは一応前進してると思いますよ。
メッセージの内容は書かれたものがすべてですか?
それだけだとちょっと原因の特定が難しい気もするので、その場合はPHPのエラーログを採ってみてください。
あとは方法自体が正しいかどうかを確認するには、もっと簡単なスクリプトを実行させることです。
たとえばログファイルに適当なメッセージを書き込むものとか簡単です。
この回答への補足
回答ありがとうございます
>PHPのエラーログを採ってみてください。
エラーログの採り方で調べてみましたが、php.iniの設定で
error_reporting=E_ALL & ~E_NOTICE
display_errors=On
display_startup_errors=On
log_errors=On
のようにすれば良いということでしょうか?
php.iniの設定を行うことはxserverではできますが、もし
php.iniの設定が行えない場合は、PHPファイルに
ini_set('display_errors',0);
ini_set('log_errors',1);
のようにすれば良いということでしょうか?。
今回質問させていただいた時点からそうだったのですが、Webブラウザ上でエラーが全く表示されない(白紙のページ)という問題にも直面しています。サポートに問い合わせたところ、「display_errors=Onにしてください。」との回答でした。しかし設定は既にdisplay_errors=Onになっていました。再度サポートに問い合わせてみます。
<?php
print("ababa")
print(ababa");
print("ababa;
?>
のエラーメッセージがWebブラウザ上で表示されません;;
アドバイスありましたら、教えてください。よろしくお願いします。
回答を参考に頑張ります。
No.5
- 回答日時:
たびたびすいません。
#!/usr/bin/php5で改行するようにしてください。
以下のような具合です。
#!/usr/bin/php5
<?PHP
…
?>
この回答への補足
返事が遅くなりすいません。
#!/usr/bin/php5
<?PHP
…
?>
といった具合で、修正してみました。が、
This is the Postfix program at host △△△.xserver.jp.
I'm sorry to have to inform you that your message could not
be delivered to one or more reci
添付あり:Mail
と返信されてきてしまいました。
添付されたものはなぜかサーバーとの接続が切れました、と
内容を把握できませんでした。
おまじないが効かなかったのでしょうか?
現在、「メールの振り分け設定」ではなく.mailfilterに書き込むことでエラーがなくならないか等、試行錯誤中です。
他に考えられる原因があるようでしたら、教えていただけませんか?
よろしくお願いします。
No.4
- 回答日時:
あー、いわゆる「おまじない」を付けとかないとだめでしたかね。
ファイルの先頭(PHPの開始タグより前)に
#!/usr/bin/php5
と書き足してみてください。
No.3
- 回答日時:
>どのようにして実行権限を付与することができるのかわかりません。
UNIXコマンドの chmod で権限を変更することができます。
XserverはSSHで接続できないようなのでFTPクライアントでこれを行うか、あとはPHPスクリプトからコマンドを実行するという方法もあります。
>>パイプの後にphpへのパスが書かれていないのですが、実際は書かれているのでしょうか。
>書いていません。
Xserverの設定を見てみました。別にphpのパスはなくてもいいようですね。ここはとりあえず気にしないでください。
この回答への補足
実行権限の変更をすることができました!
教えていただいたFTPクライアントで変更できました。
ありがとうございます。
しかし、変更後にメールを送信し、返信内容を確認すると
<○○○○○@△△△△>: Command died with status 2: "/usr/bin/maildrop".
Command output:
/○○○○/□□□□/sippai.php:
line 1: ?php_: No such file or directory
/○○○○/□□□□/sippai.php
line 2: _: command not found
/○○○○/□□□□/sippai.php:
line 3: //PEAR::MailCu_: No such file or directory
/○○○○/□□□□/sippai.php:
line 4: //xserverp_: No such file or directory
/○○○○/□□□□/sippai.php:
line 5: require_once: command not found
/○○○○/□□□□/sippai.php:
line 5: _: command not found
/○○○○/□□□□/sippai.php:
line 6: //[Jp_: No such file or directory
/○○○○/□□□□/sippai.php:
|
|
|
/○○○○/□□□□/sippai.php:
line 18: syntax error near unexpected token `('
/○○○○/□□□□/sippai.php:
line 18: `$source = file_get_contents("php://stdin");_'
と返信されました。
このエラーだらけの原因がわかりません。
http://itunesipod.net/modules/pukiwiki/41.html
こちらのサイトを参考にPEAR、Mail、Mail_mimeDecodeのパッケージをインストールしました。
MailやMail_mimeDecodeを呼び出せていないのでしょうか。
解決する方法を教えていただけないでしょうか。
よろしくお願いします。
No.2
- 回答日時:
Permission deniedってありますね。
sippai.phpに実行権限を付与する必要があります。
ところで、質問文中の例示ではパイプの後にphpへのパスが書かれていないのですが、実際は書かれているのでしょうか。
この回答への補足
>sippai.phpに実行権限を付与する必要があります。
どのようにして実行権限を付与することができるのかわかりません。
>パイプの後にphpへのパスが書かれていないのですが、実際は書かれているのでしょうか。
書いていません。
1.メールを受信したらPHPプログラムにメールデータを送る
2.データを受け取ってメールの中身解析し 送信元のアドレス取得し、そのアドレスに返信する
1をxserverの「メールの振り分け設定」、2を記載したスクリプトのみ
で行えると思っていました。知識に乏しいため何が必要なのかわかりません。教えていただけないでしょうか。
よろしくお願いします。
No.1
- 回答日時:
返送されたメールの本文に何かメッセージはありませんか?
この回答への補足
>返送されたメールの本文に何かメッセージはありませんか?
以下のメッセージが返送されました。
--○○○○.□□□□□/△△△.xserver.jp
Content-Description:Notification
Content-Type:text/plain;charset=ISO-2022-JP
This is the Postfix program at host △△△.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
<○○○○○@△△△△>: Command died with status 126: "/usr/bin/maildrop".
Command output: sh:
/○○○○/□□□□/sippai.php:
Permission denied
--○○○○.□□□□□/△△△.xserver.jp
Content-Description:Delivery report
Content-Type:message/delivery-status
Reporting-MTA: dns; △△△.xserver.jp
X-Postfix-Queue-ID: □□□□□
X-Postfix-Sender: rfc822; □□□@○○○
Arrival-Date: Tue, 30 Jun 2009 16:52:37 +0900 (JST)
Final-Recipient: rfc822; ○○○○○@△△△△
Action: failed
Status: 5.0.0
Diagnostic-Code: X-Postfix; Command died with status 126: "/usr/bin/maildrop".
Command output: sh:
/○○○○/□□□□/sippai.php:
Permission denied
--○○○○.□□□□□/△△△.xserver.jp
Content-Description:Undelivered Message
Content-Type:message/rfc822
Received: from △△△.xserver.jp (oooo.xserver.jp [127.0.0.1])
by △△△.xserver.jp (Postfix) with ESMTP id ○○○○
for <○○○○○@△△△△>; Tue, 30 Jun 2009 16:52:37 +0900 (JST)
Received: from oooo.xserver.jp (127.0.0.1)
by △△△.xserver.jp (F-Secure/virusgw_smtp/301/△△△.xserver.jp);
Tue, 30 Jun 2009 16:52:37 +0900 (JST)
X-Virus-Status: clean(F-Secure/virusgw_smtp/301/△△△.xserver.jp)
Received: from mmrts040p01c.softbank.ne.jp (mmrts040p01c.softbank.ne.jp [123.108.236.92])
by △△△.xserver.jp (Postfix) with SMTP id 1E22D858121
for <○○○○○@△△△△>; Tue, 30 Jun 2009 16:52:36 +0900 (JST)
Subject: =?ISO-2022-JP?B?GyRCJC0kaSRzGyhC?=
Mime-Version: 1.0
Content-Type:text/plain;charset=ISO-2022-JP
Content-Transfer-Encoding:7bit
Date: Tue, 30 Jun 2009 16:52:43 +0900
Message-ID: <11111111111111.2222222222222>
From: <□□□@○○○>
To: ○○○○○@△△△△
Sender:□□□@○○○
X-Priority: 3
--○○○○.□□□□□/△△△.xserver.jp--
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHP PEARパッケージのincludeが...
-
他人にphpファイルをダウンロー...
-
別PHPファイルに変数を渡す
-
Ruby URLの分解方法
-
cgi-binでPHP動作しない
-
include先でのinclude元の変数...
-
別ファイルの変数を呼び出した...
-
crontabでPHPスクリプトが実行...
-
シェルスクリプトからphpファイ...
-
PHPでURL後のパラーメータの取...
-
拡張子をphpではなくcgi...
-
ローカルでは動くがサーバーで...
-
a href リンクタグでだけで 送...
-
PHP(.php)及びJavascrpit(.j...
-
phpのプログラムエラー
-
パスワード等が記述されているp...
-
fputcsvで保存せず、そのまま出...
-
インクルードファイルからの相...
-
連続投稿対策
-
#!/usr/local/bin/php
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別ファイルの変数を呼び出した...
-
PHPの拡張子を見せない方法
-
拡張子php画像をbmp画像等に変...
-
PHP Screw が動作しません。
-
PHPで?が消えない現象が起きます。
-
パスワード等が記述されているp...
-
特定のファイルにアクセスさせ...
-
include先でのinclude元の変数...
-
.htaccessについて
-
外部のphpファイルを読み込んで...
-
.phpのファイルを開けない!
-
batファイルの中の値をphp側に...
-
JpGraphがうまく設定できない?
-
PHPから別なPHPへ移動(?)する方法
-
phpのプログラムエラー
-
入力フォームの空白や改行を制...
-
phpとpostgreSQLで接続不可?
-
PHPでプロパティファイル読み込み
-
PHP PEARパッケージのincludeが...
-
インクルードファイルからの相...
おすすめ情報