4

受信トレイに入ってくる電子メールを解析して内容をデータベースにダンプすると同時に、電子メールから解析された詳細を使用してcurlリクエストを作成する電子メール解析スクリプトを作成する必要があります。

現時点では、受信トレイで受信される電子メールをリアルタイムで解析する方法に関する部分の実装にかなり固執しています。このようなことをするためにトリガーを設定する方法はありますか?私はphpベースのウェブメールクライアントを使った豊富な経験がありますが、これは違うようです。

これをどのように達成できますか-私はcronジョブを想定していますが、別の方法があれば、私はすべての耳です。

4

3 に答える 3

6

はいあります。メールをスクリプトにパイプすることができます。

cPanelを使用していると仮定して、次の手順に従います。

  • cPanelにログインします。
  • Forwardersタブの下にあるアイコンをクリックしMailます。
  • ボタンをクリックしAdd Forwarderます。
  • Address to Forwardメッセージのパイプ元となるメールアドレスを入力して入力します。
  • Pipe to a Programメッセージを処理するスクリプトへのフルパスを選択して入力します。

そして、これは受信した電子メールを他のメールに送信するメールキャッチャーの例です(デモンストレーションのためだけに):

#!/usr/bin/php -q
<?php
 
// read from stdin
$fd = fopen("php://stdin", "r");
$email = "";
while (!feof($fd))
{
    $email .= fread($fd, 1024);
}
fclose($fd);
 
 
mail('you@yoursite.com','From my email pipe!','"' . $email . '"');
 
?>
于 2011-09-24T19:29:50.873 に答える
5

特定の時間に何かをしたい場合は、cronジョブを使用します。メールが届くたびに何かをしたい場合は、コードをメールシステムに結び付ける必要があります。これを行う通常の方法は、Procmailを使用することです(使用できるレシピがあります(Perl / shellのPHPを読むだけです))。

于 2011-09-24T19:17:15.377 に答える
1

私は何年もの間ウェブサイトでPECL拡張メールパースを使用してきましたそしてそれは素晴らしかったです。

特定のホスト宛てのすべてのメールを、mailparseを使用してメッセージを解析してデータベースに挿入し、添付ファイルまたは複数の受信者を処理するphpスクリプトにパイプ処理します。

彼らは私を始めることができたダウンロードにサンプルファイルtry.phpを持っています。

どのメールサーバーを使用するかによって、Quentinが言ったように、受信メッセージをスクリプトにパイプするのが最も簡単な方法です。私はeximを使用しており、ドメイン用に次のようなvariasesファイルを作成するだけでした。*: "|/home/site/process_mail.php"そこからmailparseがほとんどのハードワークを実行し、メッセージを処理してデータベースに追加します。

于 2011-09-24T19:53:23.233 に答える