• 締切済み

WinXP+Apache1.3.29 + php4で、メール受信する方法

こんにちは。 WinXP+Apache1.3.29という環境で、php4でメールを受信したいと思っています。 IMAP,POP3,NNTP関数関連のphp本家のドキュメントに目を通したのですが、linux用の設定方法しか掲載されていませんでした。 WinXPではどのように設定をしたら良いのか、ご教授ください。

  • PHP
  • 回答数3
  • ありがとう数5

みんなの回答

  • kusukusu
  • ベストアンサー率38% (141/363)
回答No.3

> jamesあたりを使えばなんとかなるかなぁ、とか考えているのですが、なにか良い案があったら、 > 頂けるととてもうれしいです。 ごめんなさい。それは知りません(^^;

  • kusukusu
  • ベストアンサー率38% (141/363)
回答No.2

> メールサーバーにメールが着信したのが、トリガーになって ごめんなさい(^^; 実はWindowsはよく知りません。UNIXならcronで回して…と言うのですが。 まあ、しかし対応策はあります!(笑) 1.まず不特定多数の誰かが、特定のメールアドレスにメールしたとします。 2.その時、PHPのメールフォーム側で、送信者に「http://www.sample.com/~hoge/confirm.phpにアクセスしてください」らしきことを書いたメールを自動で返信する。 3.confirm.phpにアクセスがあったことをトリガーにすれば、vaccusさんのやりたいことを実現できると思います。 (別にメールを自動返信しなくても、フォームからメールが来た後、移行先のページで、<a href="./confirm.php">次へ</a>とか入れるのもOK) 重要なのはconfirm.phpにアクセスしてもらうことです。 > 「ポート110にSock接続し」とありますが、phpのどのような関数を使えばよいのか こちらは通常の telnet mail.sample.com 110 としたときの流れをコーディングしてあげればいいだけです。 例を挙げると $sock=fsockopen("mail.sample.com",110,$err,$errno,10); $buf=fgets($sock,4096); ↑これでメールサーバーに接続できます。 ちゃんと接続できていれば、 +0K <…………> とサーバーから返事が来ますから、その後 fwrite($sock,"USER hoge\r\n"); $buf=fgets($sock,4096); fwrite($sock,"PASS hogefuga\r\n"); $buf=fgets($sock,4096); のように通常のTELNETコマンドをコーディングしてやるだけです。 TELNETコマンドに関しては、ネット上にいくらでもドキュメントが転がっていますので、探してみてください。 では頑張ってください。

vacuus
質問者

補足

おはようございます。 詳しい説明ありがとうございます。おかげさまで、 1.携帯端末から画像ファイル添付ファイルをメールサーバーに送信 2.携帯端末からhogehoge.phpにアクセス 3.hogehoge.phpが、メールサーバーにソケット接続、マルチパート処理し、ウェブコンテンツを更新 というシステムが完成しました。 上記2を省く、つまりメール送信がトリガーになって、hogehoge.phpが、起動してくれるようなシステムに本来はしたいのですが、なにせ環境がWinなので、cronが使えないためどうしたものか、なやんでいます。 Apacheプロジェクトの、jamesあたりを使えばなんとかなるかなぁ、とか考えているのですが、なにか良い案があったら、頂けるととてもうれしいです。 補足のはずが、更なる質問のようになってしまいすみません。よろしくお願いします。

  • kusukusu
  • ベストアンサー率38% (141/363)
回答No.1

PHPでメールを受信したい…と言う意味がよく分かりません(^^; これは、POPサーバーを利用せずにメールを受信したいと言うことでしょうか? もしメールサーバーソフト自体を作りたいのであれば、果たしてPHPが向くかという所に行き着いてしまいます(笑) それとも、サーバーが受信したメールをPHPで見たいって事でしょうか? (簡単に言えばWebメールです) それであれば、ポート110にSock接続し、fgets等の関数で、サーバーにコマンドを送ればいいですよ。 (マルチパートの処理などは別途勉強しないと行けませんが)

vacuus
質問者

補足

おはようございます。 ちょっと質問が言葉足らずだったようですね。補足します。 やりたい事は、メールサーバーにメールが着信したのが、トリガーになって、phpプログラムが作動し、メール記載されたメッセージと添付されたjpeg画像を利用し、webサーバーのコンテンツを更新する、そういうシステムを作りたいと思っているのです。 >ポート110にSock接続し、fgets等の関数で、サーバーにコマンドを送ればいい ふむふむ、「ポート110にSock接続し」とありますが、phpのどのような関数を使えばよいのか、ご教授いただけるとうれしいです。

関連するQ&A

  • PHP(最新)によるメールの受信について

    お世話になります。 PHP(最新)をコマンドラインで使用し メールの受信を行うことを考えています。 POPサーバに接続してメールを受信するためのドキュメントを紹介ください。

    • 締切済み
    • PHP
  • Linux Apache MySQL PHP (LAMP)

    今までWindows+Apache+MySQL+PHPの環境で作業をしていたのですが、 別のPCにLinuxをインストールしたので、そちらでもApache+MySQL+PHPをインストールしようと思いました。 ですが、Linuxを触るのは初めてなので、インストール方法やApache+PHPの関連付けの仕方などがサッパリわかりません。 どこか詳しく解説しているサイトなどはないでしょうか? 環境 Linux Fedora Core 5 Apache 2.0.59 (予定) PHP 5.1.6 (予定) MySQL 5.0 (予定) どなたかよろしくお願いします。

    • 締切済み
    • PHP
  • iPhoneとThunderbirdでメール受信

    iPhoneとThunderbirdで会社のメールを受信したいのですが、やりたい事がうまくいきません。 ★やりたいこと →Thunderbirdで基本メールを受信し、受信データは貯めておきたい。(POP) →iPhoneでは外出先でのメール確認するだけでいい。(IMAP) ★今の設定 【Thunderbird】 →POPにて設定。受信はできている。 【iPhone】 →IMAPにて設定。受信はできている。 ★困っていること →iPhoneで受信はできるのですが、受信したメールがThunderbirdで受信できません。  Thunderbirdにメールは貯めていきたいので、iPhoneで読んだメールもThunderbirdでも読める  ようにしたいです。 ??ご教授いただけますか??

  • WinXP+Apache2にeRubyを入れたい。

    Ruby初心者です。 「WinXp+Apache2+PHP5+MySQL5」の環境を使用しています。 今度Rubyも入れようと考えています。 PHPのようにRubyを動かしたくてネットを検索すると「eRuby」を使い 「mod_ruby.so」をApacheのモジュールとして組込む必要が有る と書かれています。が・・・ネットに記載のある 「http://rtokiwa.s55.xrea.com/wiki/index.php?mod_ruby_win32bin」や 「http://www.modruby.net」が接続できません。 mod_rubyのWindowsバイナリーは何処で入手出来るのでしょうか? 同様にeRubyのWindowsバイナリーは何処で入手出来るのでしょうか? ネットの記載も古い物が多く、最近は「mod_ruby.so」や「eRuby」を使わなくても 「WinXp+Apache2」環境でPHPの様に使用出来る環境設定が有るのでしょうか? 初心者なもので自分の環境にRubyを構築できず困っています。 どなたか、ご教授ください。 よろしくお願いします。

  • サーバー(WinXP pro)にApacheとPHPを入れました。

    サーバー(WinXP pro)にApacheとPHPを入れました。 スクリプトを作成して、クライアントからTelnetで実行したいのですが、 Telnetでサーバにアクセスできません。 クライアントからTeratermを使用して接続を試みていますが、 ID・Passwordを聞かれます。 これは何を入れれば良いのでしょうか? 気付かずにどこかで設定しているのでしょうか? サーバーのアカウントにはパスワード設定をしていません。 [サーバー] OS:WinXp Pro Sp3 [クライアント] OS:WinXp Pro Sp3

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

    現在PHPでメールを受信するプログラムを作ろうと思っています。素人ですので、いつもつまづきながらなんとか乗り越えてきています。どうしても解決できないときは、時々こちらのサイトを利用させていただき大変助かっております。 サーバーは、「お名前comのVPS」を使っています。使用できる関数には「IMAP」とありますので、PHPを使ってのメール受信は可能と思われます。PHPのバージョンは、「5.16」です。手元にある、PHPの教則本を頼りに、shhで php.iniのextension=php_imap.dll のコメントを外そうとしましたところ、 extension=php_imap.dll なるものがありませんでした。散々php.iniを見ましたがやはりありませんでした。それでは、localにあるxamppのphp.iniはどうなのかと調べてみますと、そこにはきちんと extension=php_imap.dll という一行がありました。再度「お名前com」のphp.iniを眺めていますと、なにやら If you wish to have an extension loaded automatically, use the following ; syntax: ; extension=modulename.extension ; For example: ; extension=msql.so このような文面を見つけ、さらに 拡張ファイルが php.dというフォルダにあるようなことが書いてあったので、php.dフォルダにアクセスしてみたところ、imap.iniとうファイルがありました。そこで、そのファイルを開いてみますと、 ; Enable imap extension module extension=imap.so このような記述がありました。 そこで、php.iniに extension=imap.so を書き足してみました。 これで、どうにかなるのかなと思い、次のphpファイルでテストをしました。 <?php ini_set('display_errors', 'on'); ini_set('error_reporting', E_ALL ^ E_NOTICE); $MAILSERVER="****"; $MAILUSER="*****"; $MAILPASSWORD="****"; if($mbox=imap_open("{".$MAILSERVER.":110/pop3}INBOX",$MAILUSER,$MAILPASSWORD)){ print "メールサーバーに接続しました。"; } else{ print "接続失敗"; } print "test"; ?> ***の部分は実際には、必要な情報をいれております。 しかし、その結果は、 Warning: imap_open() [function.imap-open]: Couldn't open stream {localhost:110/pop3}INBOX in /var/www/****/****/***/****/****.php 接続失敗 上のように接続はできませんでした。 php(バージョン5.16)ではphp.iniは、以前のものとは変わってしまって、どうもアチコチを検索して物まねをして、書き換えているだけの私では、どう設定してよいかわかりません。 また、imap関数を使うには、何かインストールする必要があるのでしょうか? phpinfo()でも見てみましたが、よくわかりませんでした。 phpinfo()ではConfigure Command のところには、 ./configure' '--host=x86_64-redhat-linux-gnu' '--build=x86_64-redhat-linux-gnu' '--target=x86_64-redhat-linux' '--program-prefix=' '--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib64' '--libexecdir=/usr/libexec' '--localstatedir=/var' '--sharedstatedir=/usr/com' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--cache-file=../config.cache' '--with-libdir=lib64' '--with-config-file-path=/etc' '--with-config-file-scan-dir=/etc/php.d' '--disable-debug' '--with-pic' '--disable-rpath' '--without-pear' '--with-bz2' '--with-curl' '--with-exec-dir=/usr/bin' '--with-freetype-dir=/usr' '--with-png-dir=/usr' '--enable-gd-native-ttf' '--without-gdbm' '--with-gettext' '--with-gmp' '--with-iconv' '--with-jpeg-dir=/usr' '--with-openssl' '--with-png' '--with-pspell' '--with-expat-dir=/usr' '--with-pcre-regex=/usr' '--with-zlib' '--with-layout=GNU' '--enable-exif' '--enable-ftp' '--enable-magic-quotes' '--enable-sockets' '--enable-sysvsem' '--enable-sysvshm' '--enable-sysvmsg' '--enable-track-vars' '--enable-trans-sid' '--enable-yp' '--enable-wddx' '--with-kerberos' '--enable-ucd-snmp-hack' '--with-unixODBC=shared,/usr' '--enable-memory-limit' '--enable-shmop' '--enable-calendar' '--enable-dbx' '--enable-dio' '--with-mime-magic=/usr/share/file/magic.mime' '--with-libxml-dir=/usr' '--with-xml' '--with-system-tzdata' '--with-apxs2=/usr/sbin/apxs' '--without-mysql' '--without-gd' '--without-odbc' '--disable-dom' '--without-sqlite' '--disable-dba' '--without-unixODBC' '--disable-pdo' '--disable-xmlreader' '--disable-xmlwriter' additional .ini files parsedのところには /etc/php.d/bcmath.ini, /etc/php.d/dba.ini, /etc/php.d/dbase.ini, /etc/php.d/dom.ini, /etc/php.d/gd.ini, /etc/php.d/imap.ini, /etc/php.d/mbstring.ini, /etc/php.d/mcrypt.ini, /etc/php.d/mysql.ini, /etc/php.d/mysqli.ini, /etc/php.d/ncurses.ini, /etc/php.d/pdo.ini, /etc/php.d/pdo_mysql.ini, /etc/php.d/pdo_pgsql.ini, /etc/php.d/pdo_sqlite.ini, /etc/php.d/pgsql.ini, /etc/php.d/soap.ini, /etc/php.d/sqlite.ini, /etc/php.d/xmlreader.ini, /etc/php.d/xmlrpc.ini, /etc/php.d/xmlwriter.ini, /etc/php.d/xsl.ini この中には、imap.iniという文字が見えました。 と書いてあります。 どなたか、ご専門の方ご教授宜しくお願いいたします。

    • 締切済み
    • PHP
  • Apache 2.4.0でphp5.3を使うには?

    Apacheをインストールし、ApacheからPHPを使える状態にしたいです。 Apacheのインストールは、 http://www.apachelounge.com/download/から Apache 2.4.0 httpd-2.4.0-win32.zip をダウンロードし、c:/pg/にApache24という名前のフォルダで配置しました。 ドキュメントルートのhtmlファイルをブラウザで表示できるところまでできています。 PHPのインストールは http://windows.php.net/download/から PHP 5.3 (5.3.9) Zip [14.94MB] sha1: 4149d79a877ae7ccb0e5419b13152b5bd3074825 php-5.3.9-nts-Win32-VC9-x86.zipをダウンロードし デスクトップにphpというフォルダを作成し、その中に全て展開しました。 展開されたphpフォルダをc:/pg/Apache24に配置しました。c:/pg/Apache24/php PHP利用のための設定 モジュールの追加 http://www.adminweb.jp/apache/php/index1.html を参考にするとApacheでphpを利用するためには、 Apache2.2系を使う場合は、"httpd.conf"ファイルの中の "Dynamic Shared Object (DSO) Support"ブロックの一番最後に 次の行を追加すればよいという説明があります。 LoadModule php5_module c:/php/php5apache2_2.dll Apache2.4系を使う場合はどのようにしたら良いのでしょうか。 展開したphpフォルダの中にphp5apacheで始まるdllファイルが存在しません。 php5apacheで始まるdllファイルを自分で用意して配置しないといけないのでしょうか。

  • PHPとApacheの設定について

    Win2000でPHPとApacheの設定を試みています。phpinfo()関数を指定のディレクトリに入れて、アクセスしてもPHPのバージョンに関する情報が出てきません。代わりに、「Index Of/」と書いて、いろいろな言語でApacheの設定ができたときに出てくる「あなたの予想に反してこのページが見えていますか?」と書いたページへのリンクが出て、最後に「Apache/2.0.53 (Win32) PHP/5.0.5 Server at localhost Port 80」と書いてあります。エラーのチェックをしてみても、エラーは出てきません。何が原因なのか検討もつかない為、何かおわかりの方がいらっしゃいましたら、ぜひアドバイスをお願いいたします。

    • 締切済み
    • PHP
  • LiveメールでIMAPのフィルタリング方法

    こんにちは どなたか教えてください。 Windows LiveメールとiPhoneにてIMAPでメールを受信しています。 このIMAPメールをフィルタリングをして受信したいのですが 【メッセージルール】から【指名のフォルダに移動する】を選択したのですが、 移動先にIMAPで設定したアカウントが表示されず、設定できませんでした。 また、試しにIMAPではなくPOP受信でフィルタリングを設定しようとした場合は問題ありませんでした。 これはIMAPだからフィルタリングの設定ができないのでしょうか。 どなたかご教授いただけると助かります。 よろしくお願いします。

  • 受信トレイ以外にあるメールの受信(outlook)

    Outlook2010にYahooMailやGmailのアカウントを設定して使用しています。 (POP3で設定しています。) 最近YahooやGmail内でメールを分類ごとに分けるフォルダーを作り、自動で振り分けするようなフィルタ機能を追加しました。 そうしたら振り分け設定していないメール、つまり、ブラウザの受信トレイに残っているメールはOutlookでちゃんと受信できるのですが、振り分けされて受信トレイ以外のフォルダーに入っているメールは受信できなくなりました。 受信トレイ以外のフォルダーのメールも受信できるようにする設定をご存知の方がいらっしゃいましたらどうぞお教えください。 【追記】 POP3からIMAPへの変更はできないという前提でお願いします。 なぜか私のOutlook2010では、YahooMailのみIMAPで設定すると同期時にOutlookが停止してしまうので、IMAPではなくPOP3で設定しています。

専門家に質問してみよう