2010年2月15日

[PHP-users 35004] Re:.forwardでメールの内容がPHPに渡せない

はじめまして。高田と申します。

CentOS5.4、PHP5.1.6、sendmail8.13.8で試してみました。
私の環境では、最初のスクリプトでも/etc/smrsh/にスクリプトを
置かないと正しく動作しませんでした。
sendmailの設定を変更していなければ、同様の動作になると思います。

/var/log/maillogに次のエラーが出ています。

Feb 15 23:22:44 localhost smrsh: uid 999: attempt to use
"mail_parse.php" (stat failed)

/etc/smrsh/にスクリプトを置くと、変更後のスクリプトでも動作しました。
このあたりの問題ではないでしょうか?

後は多分大丈夫だと思いますが、.forwardのpermissionがuser以外にwriteが
付いていると実行されません。

参考になれば幸いです。

(2010/02/15 17:22), Shinichiro Isozaki wrote:
> こんにちは。
>
> .forwardにてメールの内容をパースしようとしているのですが、
> メールの中身をスクリプトに渡すところでつまづいています。
>
> まず.forwardにてメール転送がきちんと行われるか確認しました。
>
> 次に以下のような.forwardとPHPスクリプトを用意し、メール受信時に
> スクリプトが動いているか確認しました。
> ---[.forward]---------------------------------------
> | "/var/www/html/mail_parse.php"
>
> ---[mail_parse.php]----------------------------------
> #!/usr/bin/php -q
> <?php
> set_time_limit( 0 );
> $mail ="12345678901234567890";
> $fp = fopen('/home/account/mail.txt', "a");
> set_file_buffer($fp, 0);
> flock($fp, 2);
> fwrite($fp, $mail);
> flock($fp, 3);
> fclose($fp);
> ?>
> ---------------------------------------------------
>
> この段階では正しく動作しいるのですが、mail_parse.phpを以下の
> ようにメールの中身を受け取るように変更すると動作しません。
> (出力もされず、ファイルも生成されません。)
> ---[mail_parse.php]----------------------------------
> #!/usr/bin/php -q
> <?php
> set_time_limit( 0 );
> $stdin = fopen("php://stdin", "r");
> while(!feof ($stdin)){
> $mail .= fgets($stdin, 4096);
> }
> fclose ($stdin);
> $fp = fopen('/home/account/mail.txt', "a");
> set_file_buffer($fp, 0);
> flock($fp, 2);
> fwrite($fp, $mail);
> flock($fp, 3);
> fclose($fp);
> ?>
> ---------------------------------------------------
>
> CenOS5.4、PHP5.1.6を使っています。
> 情報をお持ちの方お知恵を拝借できますでしょうか?
>
_______________________________________________
PHP-users mailing list PHP-users@xxxxx
http://ml.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://oldwww.php.gr.jp/php/novice.php3


投稿者 xml-rpc : 2010年2月15日 23:48
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/93345
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。