• ベストアンサー
  • すぐに回答を!

メールをPHPスクリプトに転送させたい

コアサーバー(qmail)・独自ドメインで運用しています。 指定したメールアドレスに送信されたメールを、PHPスクリプトに転送させて処理したいと思っています。 「アカウント名\Maildir」と同じ階層に「.mailfilter」というファイルを作り、 to "|/usr/local/bin/php /virtual/user_name/hoge/mail.php" exit と記述したのですがうまくいきませんでした。 PHPのパスは、サポートページに書いてあったので間違ってはいないと思います。 もちろん、mail.phpまでのパスも確認しました。 PHPには、転送されたことが確実にわかるように mb_send_mail("mail_address", "TEST", "OK", "mail_address"); とだけ記述しています。 .mailfilterの書き方がおかしいのか、設置するディレクトリがおかしいのか、そもそもコアサーバーでこのようなことが可能なのか、さっぱりわかりません。 これから、どのようなことを確認・試行すればいいのか教えていただけないでしょうか。 宜しくお願いいたします。 なお、コアサーバーはサポートが悪く、1ヶ月待っても返事が返ってきませんので、こちらで質問させていただきました。

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数334
  • ありがとう数2

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

  • ベストアンサー
  • 回答No.2

コアサーバーとは XREA の CORESERVER の事でしょうか? だとすれば、メールの転送先をスクリプト等のプログラムに設定はできなかったと思いますよ。 http://sb.xrea.com/showthread.php?t=9343 行うとすれば、crontab で定期的にphpを起動し、 そのphpから、pop受信するしかないのではなかったかと思います。 http://ml.php.gr.jp/pipermail/php-users/2004-August/023482.html

共感・感謝の気持ちを伝えよう!

質問者からのお礼

そうです。 CORE SERVERです。 サポートしてくれないCORE SERVERですw 転送はできないんですか・・・。 PHPからPOP受信は難しそうですね。 違うディレクトリのファイルが読み込まれるなど不具合が多いのでVPSへの移行も検討しているところです。 これでますますコアが嫌になった・・・

関連するQ&A

  • PHPメールフォームの設定

    コアサーバーに、PHPのメールフォームのインストールをしようとしていますが、 うまくいきません。 どなたか、ご教授頂ければ幸いです。 インストールしようとした、PHPメールフォームは、下記の2つです。 1.ES-FORM 2.Mailform+ Version1.24 (携帯対応埋め込み型PHPメールフォームスクリプト) どちらもサーバーに設置して、アクセスなどをしますが、 フォームがキチンを表示されません。 どちらも、.htaccessを設置したりして、試行錯誤していますが、うまく動きません。 ES-FORMは、フォームがうまく表示できないので、 サーバーの説明によるエラー対策を http://www.coreserver.jp/help/index.php/phperror/ を試みましたが、うまくいきません。 Mailform+ Version1.24 は、パスの設定がうまくいかないようです。 Warning: include() [function.include]: Unable to access /virtual/ken/public_html/■■■■.■■■■/mail/mfp/config.inc.php in /virtual/■■■■/public_html/■■■■/mail/index.php on line 5 などのエラーがでます。 いま、完全にはまってしまい、暗中模索になってしまいました。 恐縮ですが、素人ゆえ、わかりやすく解説、設定方法など ご教授頂ければ幸いです。 以上、よろしくお願いいたします。

    • 締切済み
    • PHP
  • PHPのCLI(コマンドライン)について

    PHPのCLI版について教えていただきたいことがあります。 まず、前提条件として、 OS:Redhat Linux 9.0 PHP:4.4.1 WEB:Apache2.0 MAIL:qmail となっています。 確認事項としてphpのパスを確かめるために、SSHなどのコマンドラインから、 (A)のようにパスを指定して実行した場合、正常に処理できます。 (A) [/ ]# /usr/local/bin/php <?php phpinfo(); ?> 実行→phpinfoの内容が表示される 次に、qmailの転送機能を利用し、受信したメールを自動的に前述の test.phpに渡すとmaillogに以下のようにログが残っています。 delivery 1488: deferral: /bin/sh:  /var/www/sample/test.php:  /usr/local/bin/php :  bad interpreter:  No such file or directory test.phpのパスは正しく設定されており、 [/ ]# /usr/local/bin/php /var/www/sample/test.php とした場合、正しく読み込みます。 また、test.phpの1行目には #!/usr/local/bin/php と記述してあり、もう一台のサーバー(Redhat Linux 2.1AS)では 正しく動いております。 実行できない原因を調べる手段として、 ・この設定を確認 ・このコマンドを実行 など、まず何をチェックすればいいのか 教えていただけると助かります。 以上、よろしくお願いします。

    • ベストアンサー
    • PHP
  • dot-qmailが機能しない!

    Linuxとqmailでメールサーバを構築しています。 メールの送受信までは問題なく辿り着いたのですが、 その後、ユーザ別.qmailを使って処理を行う段階で躓いています。 ググったり本を読んだりして確認しているのですが、 どうしても動かすことが出来ないので、 ・メールの送受信は問題なくできている。 ・.qmailのパーミッションは600 ・オーナ、グループはvpopmail:vchkpw ・転送以外の処理を記述した.qmailを設置すると、  受信フォルダに何も入らなくなる。  .qmailの処理も行われない。 例1: ./Maildir/ 例2: |./test.sh ・&メールアドレス といったメールの転送は機能する ・空行なし、最後尾の改行等は確認 ・転送と他処理を同時に記述すると、  他処理をスルーして転送処理のみ実行される。 &メルアドA ./Maildir/ |./test.sh $メルアドB 結果: メルアドAとメルアドBには転送される。 プログラム実行などは処理されない。 という状況になっております。 どうしても原因が分からないため、 理由や確認すべき場所等ありましたら、 一言お願いできないでしょうか。 よろしくお願いします。

その他の回答 (1)

  • 回答No.1
  • memphis
  • ベストアンサー率40% (971/2389)

なぜ.mailfilter ファイルを使う? それを使う環境ならmaildropを設定してないのでしょう。 普通、転送なら.qmailを使います

共感・感謝の気持ちを伝えよう!

質問者からのお礼

他の方法を知らないというのが正直なところです。 .qmailについて教えていただけませんか?

関連するQ&A

  • メール転送でPHPの正規表現です。

    sakuraサーバーで、mailfilterを使用して、パイプでメール転送しようという魂胆です。 http://ameblo.jp/topepe/entry-10325428465.html ※PHPにて正規表現を使って整形してメール転送しようと思っています。 #!/usr/local/php/5.2.17/bin/php-cgi <?php $content = null; $fp=fopen("php://stdin",'r') or die('File Open Error'); while( !feof($fp) ){ $content .= fgets( $fp ,1024); } mb_language("japanese"); mb_internal_encoding("UTF-8"); mb_send_mail("xxx@example.com","subject",$content); ?> のような簡単な転送では成功しています。 そこでpreg_replaceでメールヘッダーを削ったり、本文中の日本語句を削除してから転送しようとしているのですが、preg_replaceをかけるとすべて消えてしまいます。 ◎英数字だけの正規表現(/\A(.*?).jp/sなど)の場合はうまく動きます。 ×日本語が入ると駄目です。(/\A(.*?).受信者/usなど) sakuraの場合、パイプで動かすPHPファイルはEUC+LFでないと動きません。 なので $content_utf8 = mb_convert_encoding($content,"UTF-8","EUC-JP"); $patturn_utf8 = mb_convert_encoding("/\A(.*?)受信者/us","UTF-8","EUC-JP"); $c = preg_replace($patturn_utf8,"",$content_utf8); mb_send_mail("xxx@example.com","subject",$c); などとしていますが、駄目です。 preg_matchだとメールすら転送されません。 ※ヘッダーを削るだけならPEARもありだと思いますが、本文のもろもろを削るので、 PEARがあろうが、preg_replaceを使いたいことには変わりありません。 できればPEARはインストールしないでただの正規表現で行きたい、という段階です。 なにかヒントはありますでしょうか。 sakuraサーバー php/5.2.17 php-cgi PHPファイルはEUC+LF

    • ベストアンサー
    • PHP
  • postfix 受信時 php スクリプト実行

    ※一部、ドメイン名が隠れてなかったので再度投稿しました。 【環境】 os: freebsd 8.4 php: 5.4.13 postfix:2.9.5 メールの送受信はエラーなくできています。 【やりたいこと】 メール受信時にPHPスクリプトを実行したい!(メールでブログ上げたい!!!!) 【困っていること】 メールログみると、PHPが実行されずに”転送”しようとしている。 <maillog> Jan 22 23:42:31 postfix/qmgr[36840]: from=<送信元>, size=38495, nrcpt=1 (queue active) Jan 22 23:42:31 postfix/virtual[36877]: to=<|php /usr/home/ユーザー名/htdocs/実行したい.php@ドメイン>, orig_to=<送信先>, relay=virtual, delay=0.32, delays=0.31/0/0/0, dsn=5.1.1, status=bounced (unknown user: "|php /usr/home/ユーザー名/htdocs/実行したい.php@ドメイン") ※なぜか PHP 実行したいのに、PHPのパスのあとに@ドメインが! このアドレスはあるわけないので送信元にエラーメールが戻ってきたのでした。 <エラーメール> Undelivered Mail Returned to Sender 中略 <"|php /usr/home/ユーザー名/htdocs/実行したい.php"@ドメイン> (expanded from <送信先>): unknown user: "|php /usr/home/ユーザー名/htdocs/実行したい.php@ドメイン" 【試したこと】 バーチャルメールボックスなので virtual_alias_maps(ファイル名:/usr/local/etc/postfix/virtual_alias) に 下記を記述しました。 blog@ドメイン  | "/usr/local/bin/php /usr/home/ユーザー名/htdocs/実行したい.php" そして、 postmap /usr/local/etc/postfix/virtual_alias として、postfix stop → postfix start してメールを送信すると、上記エラーに…。 ※blog@ドメイン までをバーチャルなユーザー名にしています。 (バーチャルドメインで現在2ドメイン運用しています。今回の「blog@ドメイン」というのはサーバのユーザーにはいなくてvirtual_mailbox_mapsに登録しているバーチャルなユーザーです。) バーチャルなユーザーは ユーザーID:グループID を 5000:5000 としています。 実行したい.php は 持ち主 5000:5000 で、 パーミッション 744 です。 また、このPHPはファイルの書き込みをします。 書きこみ対象のフォルダのパーミッションは777にしてあります。 (持ち主はwww:www になっています) あとで調べてみたらmain.cf の default_privs という項目が気になったので サーバーのユーザーを指定してPHPもそのユーザーのものにしましたが 結果、なんらかわらなかったので元に戻しました…。

  • .qmailにftpで転送設定

    いま、メールを受信したら添付ファイルをFTPで送信することをしようとしています。 添付ファイルをuudeviewで抽出することはできているのですが、 その抽出したファイルを自動でftp送信することができなくて困ってます。 以下の設定にしているのですがメール受信時にmail-ftp/ftp/dataに添付ファイルの抽出はできます。しかしftp送信部分が自動で動いてくれません。 しかし、手動で./tensou.shとすると抽出から転送まですべて動いてくれます。 どこが間違っているのでしょうか? ---.qmail-------------------- ./Maildir/ |./ftp/tensou.sh ----------------------- ---tensou.sh------------- /usr/local/bin/uudeview -i -p /home/mail-ftp/ftp/data /home/mail-ftp/Maildir/new/* /usr/bin/ftp -n -i <ftpconfig rm -f /home/mail-ftp/Maildir/new/* rm -f /home/mail-ftp/ftp/data/* -----------------------------------------------

  • .forward転送のエラーメールについて

    空メール受信でPHPに転送して自動返信するというシステムを勉強しながらやっています。 いろいろ調べてみたのですが、 postfixの解説は見つけたのですが、 違うパターンのがなかなか見つからないので質問します。 ちなみに現在構築中のレンタルサーバーはRedHatです。 .forwardには転送先のパスを | /home/xxxxx/xxxxx01/www/karamail/kara_mail.php のように入力しました。 そしてkara_mail.phpの先頭には #!/usr/local/bin/php-c と入力。 これで空メールを送信してみると ----- Transcript of session follows ----- 451 4.0.0 putbody: write error: Broken pipe sh: /home/xxxxx/xxxxx01/www/karamail/kara_mail.php: Permission denied 554 5.3.0 unknown mailer error 126 というエラーが返ってきます。 これはやはりパーミッションの設定が間違えているだけなのでしょうか? いろいろ調べていると.forwardの設定だけでは動かないように書いているところが多かったのですが、いったいどうすればいいのか頭の中でごちゃごちゃになってしまいました。 サーバーのRedHatというのもなんだか問題があるような記述もあったり・・ 一応レンタルサーバーに.forwardの設定方法がわからない~と電話したら上のであっていると言われました。 そのあたりについてわかる方もしくは経験者の方いらっしゃいましたら、どうか教えてください。 ちなみにサーバーの知識はこれをするまで全くありませんでした。 初心者に近いです。PHPも勉強中です。。。 どうぞよろしくお願いします。

  • PHPでメールを送信するには

    PHP超初心者です。 参考本をもとにPHPでメールを送信するということにチャレンジしているのですが、次のような文章が出ます。 Warning: mb_send_mail() [function.mb-send-mail]: "sendmail_from" not set in php.ini or custom "From:" header missing in C:\Program Files\Apache Group\Apache2\htdocs\php10\mail.php on line 11 エラー:送信に失敗しました 参考本に書いてあるとおり、 php.iniのSMTP=localhost を自分が使っているoooooo@ocn.ne.jpに書き換え、sendmailには自分の別アドレスを記述したのですが。 11行目のエラーも何を指しているのかわかりません。 ご回答よろしくお願いします。 【mail.php】 <html> <head><title>mail.php</title></head> <body> <?php $address=$_POST['address']; $subject=$_POST['subject']; $message=$_POST['message']; $header="Content-Type:text/plain;charset=iso-2022-jp"; mb_language("Japanese"); if(mb_send_mail($address, $subject, mb_convert_encoding($message,"JIS","EUC-JP"),$header)){ print("送信完了しました。"); }else{ print("エラー:送信に失敗しました"); } ?> </body> </html> 【mail_form.html】 <html> <head><title>メールの送信</title></head> <body> <h2>メールの送信</h2> <form action="mail.php" method="post"> 宛先:<input type="text" name="address"><br /> 件名:<input type="text" name="subject"><br /> 本文:<br /><textarea name="message" rows="5" cols="30"></textarea><br /> <input type="submit" value="送信"> </form> </body> </html>

    • ベストアンサー
    • PHP
  • PHPのメール送信のやり方をご教授ください。

    PHPで以下の様に記述したのですが、メールが届きません。どうしたらメールが届くのかご存知の方はご教授お願い致します。私はPHP初心者です。 <?php if (mb_send_mail("メールアドレス", "テストメール", "これはテストです。", "From: メールアドレス")) { echo "メールが送信されました。"; } else { echo "メールの送信に失敗しました。"; } ?>    メールアドレスの部分は普段使っているアドレスを入力しています。また、php.iniは以下のように変更致しました。 [mail function] ; XAMPP: Comment out this if you want to work with an SMTP Server like Mercury SMTP = mail.biglobe.ne.jp smtp_port = 587 username = アカウント名@kmf.biglobe.ne.jp password = パスワード ; For Win32 only. ;http://php.net/sendmail-from sendmail_from = アカウント名@kmf.biglobe.ne.jp アカウント名とパスワードは与えられたものを入力しています。試しにヤフーのsmtpを使っても届きませんでした。

    • ベストアンサー
    • PHP
  • コアサーバーでの空メール自動送信について

    コアサーバーを利用して、「空メールを受信したら、PHPファイルを起動して、データベースに問い合わせをして、なければ登録し、メールを返信する」というシステムを作りたいです。 どうすれば、メール受信→PHPスクリプトの起動ができますか??? ちなみにさくらインターネットでは、 .mailfilterファイルに以下の記述でうまくいってます。 cc "| /home/アカウント/www/test.php" よろしくお願いします。

    • 締切済み
    • PHP
  • 受信メールを携帯へ自動転送 但し添付ファイルは自動削除

    タイトルの通りです。 レンタルサーバを借りてEメールを使用しています。 営業という立場上外回りが多く、 PCメールに届いたメールを即時確認したいので、 自動転送機能を使っています。 .mailfilterの「cc "!xxxxx@ezweb.ne.jp"」 添付ファイルが届くとそれ自体も携帯へ転送してしまい、 送信者へエラーメッセージが届いてしまいます。 これを避けたいので、 添付ファイルがある場合は、ファイル自体は転送せず、 「添付ファイルあり」とのメッセージだけが 本文の後ろに記述されるようなプログラムはありますか? 調べてみましたが、phpしか触ったことがない私には、 perlなどawkなどが出てきてよくわかりませんでした。 もともと「ASJ」というレンタルサーバを借りていました。 そこにはワープメールなる、希望に近い機能があったようですが、 先日資金的な面で「さくらインターネット」へ変更しました。 そちらには転送メールの機能しかなく、困っている次第です。

  • qmail の alias

    環境は、 ・Vine Linux 2.5 ・djbdns ・qmail です。 ~alias/.qmail-ユーザ名のエイリアス で、 ユーザ名 または、 /home/ユーザ名/Maildir/ がうまくいきません。 &ユーザ名 や ./home/ユーザ名/Maildir/ にしても同様です。 メイルキューに入ったままです。 ユーザ名@マイドメイン.**.jp では、問題なく /home/ユーザ名/Maildir/ に配送されます。 これでもいいのですが、できるとされているのにできないのは気になります。 関連して。 ~alias/.qmail-default で、 認識されなかったユーザ名宛のメイルを他ホストに転送で、 | forward "$LOCAL@マイドメイン.**.jp" がうまくいきません。 認識や記述が違っているのでしょうか? 詳しい方いらっしゃいましたら、情報をお願いします。 過去に有力と思われる回答がございましたら、ご教示いただけると幸いです。 ちょっと、探せなかったので。。。

  • メールをトリガーにPHPを自動起動したい

    PHPでも聞いてみたのですが、考えてみるとPHPと言うよりもLinuxのほうかもしれないということでお願いいたします 空メールの内容をPHPに渡したいと言うことで、いろいろ試してみましたが、なかなかうまくいきません Webminを使ってサーバの管理をしています MTAはsendmailを使っています sendmailの/etc/aliases にはこのように記述しました hoge: "|/usr/bin/procmail" /etc/procmailrc にはこのように記述しています PATH=/usr/bin:/bin:/usr/local/bin MAILDIR=/var/spool/mail LOGFILE=/var/www/html/****/procmail.log LOCKFILE=/var/www/html/****/procmail.lock :0 |/var/www/html/****/empty_mail_regist.php 私の考えでは hoge@hoge.comにメールが来る      ↓ sendmailが/usr/bin/procmailの起動      ↓ procmailが/etc/procmailrc を読み込んでプログラム実行 となると思っているのですが間違うでしょうか? /etc/aliases に hoge: "|/var/www/html/***/empty_mail_regist.php" と記述した場合、PHPのエラー(#!/usr/bin/php -q が抜けているなど)の場合はエラーメールが帰ってきます PHPにアクセスはしているが実行できていない理由がわかりません プログラム的なものだと思い、きめうちでメールを送るスクリプトを書きましたがダメでした もちろん、コマンドラインで実行するとメールの送信はできます スクリプトの所有者とメールアドレスのユーザは別なのでどれがダメなのかと思い、chownでhogeに変更してみましたが変わりはありませんでした 参考にしたサイトはこちらです メール配信時のPHPスクリプト起動(Sendmail編)http://www.dolphy.gr.jp/webap/topic/smrsh.html