2011-01-19 7 views
3

私がやろうとしているのは、特定のアドレスにメールを送信するようにメールサーバーを設定する方法です。件名をMySQLデータベースに挿入するなどです。これはLAMPのWebアプリケーションのためのものです。基本的に、Webインターフェイスを使用するよりも、電子メールを使って自動的に追加することができます。種類のようなもの。 Evernoteではカスタムアドレスにメールを送ってそのようにメモを追加することができます。特定のアドレスへのメールをWebサーバー上でトリガーするにはどうすればいいですか?

私はこれがかなり漠然とした質問であることを認識しています。私が探しているのは、見た目と学習を開始する一般的な場所です。私は合理的にウェブサイトの技術に精通しているが、メールサーバに関しては私は完全に無知だ。特定の実装を探しているわけではありません。むしろ、私は問題を攻撃できるようにするために必要な基本が何であるかを知りたいだけです。

+1

これは、使用されるメールサーバによって異なります。一部はディレクトリスプールのドロップに配信できますが、他のユーザーは配信に「標準」[mbox](http://en.wikipedia.org/wiki/Mbox)システムを使用しています。考えられるもう1つのアプローチは、SMTPサーバーへのPOPアクセスを使用することです。通常、このピックアップは「プル」(例えば1分ごとにメールをチェックするcron)に基づいて行われるが、「プッシュ」することができるいくつかの統合された/結合されたアプローチが存在する可能性がある。 –

+0

ポストフィックスの周りを見てください。 – ykatchou

答えて

3

あなたがあなた自身のメールサーバとあなたの最高の仕事「リアルタイムに」アクションをトリガし、procmailのようなものを使用したい場合:ここでは受信メールに対してアクションをトリガーする方法をprocmailのよくある質問の例です:http://porkmail.org/era/procmail/mini-faq.html#rtfm

しかし、場合これを避けることができます。メールサーバーの仕事の楽しいものがあなたのプロバイダを処理し、cron-job(linux/unix上で)トリガーされたスクリプトを通して1つ以上のメールボックスをスキャンします。クレーンは、例えば、コマンドラインでPHPスクリプトを実行するか、Webサーバースクリプトでアクションを開始するためのHTTPリクエストを実行するwgetスクリプトになります。スクリプトはhttp://pear.php.net/manual/en/package.networking.net-pop3.php のような形式で実際のメールを読み込みます(メールのメッセージIDを使用するか、メールの本文や本文にSHA1/MD5ハッシュを作成して同じメールを2回インポートすることは避けてください)。

多くのチケットシステムがこのように機能します(たとえば、OTRS:http://otrs.org/downloads)。

+0

私はprocmailを使ってこの+1を提案しましたが、メールボックスを繰り返しポーリングする(POPまたはIMAPを介して)ことを避けるべきであると述べたときに気を付けました。いいえ!到着時にメッセージを同期的に処理することが適切な解決策です! – symcbean

+2

いいえ、「正しい」解決策ではありません。 「オンデマンド」のパスを使用する場合は、セキュリティコンテキストに関する多くの知識、データベース接続が利用できない状況(メールがまだ流入している状況)の回避策、メモリリークの回避、procmail /スクリプト言語の更新の監視等々。長時間実行されているFCGIプロセス(たとえば、IMAPを使用している)を実行する場合、メールサーバーを習得する必要はありません。 – initall

1

これは伝統的には、fetchmailおよび/またはprocmailを使用するUNIX系システムで処理されます。

関連する問題