• 締切済み

【携帯サイト】空メールの機能について・・・qmail/php

携帯サイトでよく見かける 空メールを送信して自動で登録して返信してくれる機能を作りたいのですが、どうすればいいのかわかりません。。。 qmailでメールを受信した時に自動でphpを実行するようなことはできるのでしょうか? メールアドレスを保存するため「eregi("From: ・・・」で取得しようと思っているのですが。。。 おすすめの方法がございましたらよろしくお願い致します。

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

受けたときに実行したいなら.forward内でスクリプトに標準入力で データを渡してください。 定期処理ならcronでしょうかね。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 携帯サイト空メール処理プログラム(PHP)について

    PHPでできた携帯サイトの空メール処理のプログラムのカスタマイズをしています。 空メールが送られてきたらkaramail.phpが起動し、送信者のメールアドレスを取得して、メッセージの自動送信をするところまでできているのですが、それにメールタイトル(Subject)の取得も付け加えようとしています。 メールアドレスの取得と同様の方法でできるとは思うのですが、文字コード別の処理などもあるので、複雑になると推測しています。 ネットなどで調べると「空メール処理プログラムは様々な場合を想定しなければならないので大変複雑で手間がかかる」とのことです。 携帯機種による違い、送信元のメーラーによる違い、その他いろいろあるのだと思うのですが、あくまでも推測で「これとこれに関する処理が必要」といった具体的な情報が見つからずに困っています。 サンプルプログラムにしても、メールアドレスを取得するものはネットや書籍に出ているのですが、タイトルを取得するものは出てきません。 普段はPCサイトの開発を行っているので、携帯事情がよくわからず、調べても出てくる情報がとても少ないです。 おそらく実務で開発した経験がある人だけが知っていることなのだと思います。 携帯空メールでタイトルを取得する場合、どのような処理が必要なのか。詳しい方、実務で開発している方がいらしたら教えて下さい。 送信されてきたメールのヘッダーを調べる環境は作ってあります。 サーバーはさくらインターネット、karamail.php上のメールアドレス取得スクリプトは下記です。 ------------------------------------- #!/usr/local/bin/php -q <?php // main { $stdin = fopen("php://stdin", "r"); if (!$stdin) { exit(); } $email = ""; while ($line = fgets($stdin)) { $line = trim($line); if (!$line || $email){ break; } // 送信元メールアドレスの取得 if (eregi("^from:", $line)){ $email = getEmail($line); } } // メールアドレス取得関数 function getEmail($line) { if (eregi("(.*)\<(.*)\>", $line, $tmp)){ $from = $tmp[2]; } return strtolower(trim($from)); } -------------------------------------

    • ベストアンサー
    • PHP
  • qmailでパイプ処理。空メール自動返信がうまくいきません・・・

    qmailでパイプ処理。空メール自動返信がうまくいきません・・・ PHP4.xxです。 初心者です。 携帯から空メールを送ってサーバーサイドでパイプ処理して自動返信を行いたいのですが うまくいきません。 サーバーはlinux系 自作サーバーで qmailです。 ネットで色々調べてSSHでサーバに入り、メールアカウントの.qmailの中に 実行するPHPのスクリプトのフルパスを記載。 viで内容を確認すると ------------------------------------------------------------ | /home/httpd/vhosts/domain.com/httpdocs/mail/touroku.php | true ./Maildir/ ------------------------------------------------------------ と3行記載されています。 これでいけますよね・・・? で実行ファイル(touroku.php)の中身はテストとして ------------------------------------------------------------ #!/usr/bin/php -q <?php $to = "送信したいメールアドレス"; $from = "とりあえず送信者アドレス"; $title = "WEBテスト"; $naiyou = "テスト内容"; base64_encode(mb_send_mail($to, $title, $naiyou, "From:$from")); exit(99); ?> ------------------------------------------------------------ 上記のファイルはそのままブラウザで実行すると確かにメールが来ました。 正常に作動しています。 またこのファイルtouroku.phpは属性は755にしてあります。 冒頭の#!/usr/bin/php -q はどこかのサイトで書かれていたのでつけてみました。 はずしても結果は同じです。 また最後の「 -q」はあっても無くても同じ結果でした。 最後のexit(99);はこちらのサイトに書かれてたのでつけて見ました。 http://www.asahi-net.or.jp/~aa4t-nngk/qmail4.html#filterbuild PHPのファイルは正常に作動している・・・となると qmailのパイプ処理がうまくいっていないということですよね・・・? 上記の以外の箇所で何か設定等を変更しないといけないのでしょうか? それとも、パイプとして処理できるphp実行ファイルを置くフォルダが決まっているのでしょうか? 経験者の方お知恵を拝借できましたら幸いです!!

  • 空メールシステムを作りたいのですが・・・

    携帯電話からabcde@*.co.jpというアドレスに空メールを送信します。 そのメールアドレスにメールが届いた瞬間PHPを動かし PHPでそのメールアドレスにあったURLをメールにつけて自動送信したいんですが、実現方法がよくわかりません。 サーバOSはwindows server2003 standard editionを使っています。 調べていたらqmailを使って出来るみたいですがよくわからないのでわかる方お願いします。

    • ベストアンサー
    • PHP
  • 空メールによる自動返信機能をつけたいのですが・・

    いつもこちらで大変お世話になっております。 現在、会員制のサイトを作成中で、登録用のメールアドレスに空メールを送信すると 専用のIDをつけた登録用の専用URLを発行して自動返信するという機能をつけようと 考えていたのですが、いくら調べても構成がわからず困っていました。 わかった事といえば 1.登録用メールアドレスに送信 2..forward(.qmail?)にてプログラムに転送 3.プログラムで解析して専用IDを発行してメール送信 という流れです。 なにがわからないのかというと、 .forwardに書くプログラムへのパスの書き方 (検索するといろいろ出てくるのですがいまいちわからず) その.forwardのファイルの置場とパーミッション 他のアドレスにも反応してしまわないのか? IDの発行やメールを送るPHPファイルはどこに置いてあっても問題ないのか? 途中で動きを確認したい時(エラーなど)の確認方法 などわからない事だらけです。 どなたかご理解のある方がいらっしゃいましたら是非ご教授願います。 よろしくお願い致します。

    • 締切済み
    • PHP
  • 空メールシステムを作りたい

    こんにちは よく携帯サイトで空メールシステムを見かけます 私も会員制の掲示板を作っていますが アドレスを打ち間違えて 登録する人がたくさんいます。 そこで 空メールを送信してもらいメールが届いたら .forwordでphpへ送り 定型文の後ろに取得したアドレス例)"http://xxxx/touroku.php?M=R&S=1?メールアドレス" をつけて返信できるようなのを考えています。  わかりづらい質問で恐縮ですが どなかた力を貸してください。

    • 締切済み
    • PHP
  • 携帯からの空メールの処理

    こんにちは。今、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なのに空っぽなところに、 問題があるのではないかと思います。以上、よろしくお願いします。

    • ベストアンサー
    • PHP
  • qmailでプログラムへの転送が許可されていない環境での空メール登録処理

    質問します。 ホスティング予算的な理由により、とあるホスティング業者でサーバーをレンタルしており、メールサーバーもかねているのでメールアカウントの管理は管理ツールから行っています。 メールサーバOSはqmailなのですが、ホスティング業者によるqmailの転送設定制御でプログラムへの転送が許可されていない(パイプ"|"が弾かれてしまう)のです。 でも、何とか空メールからDBへのメールアドレス登録を実装したいのです。 転送先プログラムはqmailからの転送(リダイレクト)さえ上手くいけば処理するようには作成済みです。 何か方法はありますでしょうか? DBへの登録処理&自動返信処理プログラムはphpで書いているのでこの場所に質問させていただきます。

    • 締切済み
    • PHP
  • PHPで空メールで登録できるシステム(レンタルサーバ)

    PHPで空メールで登録できるシステムの開発を考えております。 ある登録用のメールアドレス(例:register@example.com)に空メールを送ると、確認用の返信メールがすぐに返信されるという、よくあるシステムです。 通常なら、CRONジョブで数秒に一回、新規受信メールがないかをポーリングしてやって、あればPHPスクリプトを実行して処理、といった感じになるのかもしれませんが、 (↑やったことないので想像です) 趣味で作るのでレンタルサーバです。CRONジョブは1時間に一回しか設定できない仕様です。 何か、よい方法はないでしょうか? ※Webブラウザから、5秒に一回、自動リフレッシュでアクセスする。というのは無しで・・・。

  • 空メールから自動返信するスクリプトについて

    携帯サイトで空メールを送信して、自動返信メールに書かれたURLから会員登録させるスクリプトを作成しようとしています。 空メールから自動返信については、.forword等の説明があるサイトを参考にして、なんとかできそうかな?と考えていますが、送信するメールアドレスごとに、自動返信する文章を変更したいのです。 例:aaa@test.com 宛 ⇒ 自動返信文章 : regist.php?u=aaa   bbb@test.com 宛 ⇒ 自動返信文章 : regist.php?u=bbb この場合、メールアドレスを増やす度に、毎回メールアカウントを追加して、設定を追加しなくてはいけないのでしょうか? そうではなく、PHPでの管理画面で、ccc@test.comやddd@test.comのメールアドレスをDBなどに追加して、そのメールアドレスに送られてきたら自動返信メールが送信され、送信される文章も変更したいのです。 ご存知の方がおられたら教えていただければ幸いです。

    • 締切済み
    • PHP
  • 空メールが携帯に届きません・・・

    空メールプログラムについて質問なのですが、 PHPで空メールシステムを作成した所、PCとソフトバンク(携帯)では問題なく返信されるのですが、AU(携帯)、DoCoMo(携帯)には返信されず、エラーも帰って来ませんでした。ログを見る限りでは、AUやDoCoMoのメールサーバーまで行っているのではなく、スクリプトの段階で失敗に終わっているようなのです。 色々、調べては見たものの解決できず、皆さんの力を貸してもらえればと思って投稿しました。 使用しているサーバーとスクリプトは以下になります。宜しくお願いします! 使用しているサーバー(さくらインターネット) →メール受信のタイミングでtest.phpに転送 PC ○ AU × DoCoMo × Softbank ○ [test.php] #!/usr/local/bin/php -q <?php { $stdin = fopen("php://stdin", "r"); if (!$stdin) { exit(); } $email = NULL; while ($line = fgets($stdin)) { $line = trim($line); if (!$line || $email){ break; } if (eregi("^from:", $line)){ $email = getEmail($line); } } if (!$email){ exit(); } $subject = "test_sub"; $body = "test_body"; mb_language("Japanese"); mb_internal_encoding("EUC-JP"); mb_detect_order("ASCII,JIS,UTF-8,EUC-JP,SJIS"); mb_send_mail($email, $subject, $body, "From: test@test.jp"); } function getEmail($line) { if (eregi("(.*)\<(.*)\>", $line, $tmp)){ $from = $tmp[2]; } return strtolower(trim($from)); } ?>

    • 締切済み
    • PHP