0

サイトの電子メール パーサーを作成していますが、ベスト プラクティスがよくわかりません。具体的には、解析済みのメールにマークを付ける方法がわからないため、メールボックスにアクセスするたびにメールにアクセスすることはありません。

PS -メールの解析は行ったことがありません

Flourish ライブラリを (Codeigniter と共に) 使用しています。これまでのところ、cron ジョブで cronjobs/parseMail を呼び出しています。

public function parseMail(){
    // Connect to a remote imap server
    $mailbox = new fMailbox('imap', 'mysite.com', 'user', 'password');

    // Retrieve an overview of all messages
    $messages = $mailbox->listMessages();

    foreach ( $messages as $message ){
        $messageBody = $message['text'];
        // parse it
    }
}

ですから、メールを「処理」したら、それを削除するだけでよいのでしょうか? または、既に行った電子メールを解析していないことを保証するより良い方法はありますか?

BONUS QUESTION > 特定の電子メール アカウントをどこかに提供する必要はありませんか? 「admin@mysite.com」と「addressForParsing@mysite.com」がある場合..後者にのみ関心があることはどこで指定されますか? 解析した情報から "To:" を取り出すだけですか、それとももっと良い方法がありますか?

4

1 に答える 1

1
  1. Flourish: うわー... これは、標準の PHP 関数よりもさらに役に立ちません。何かが処理されたかどうかを追跡するために、IMAP の外部にメッセージ UID を保存する必要があります。

  2. PHP/CodeIgniter: CI には IMAP ライブラリがないようなので、PHP 関数を使用しています。メッセージが処理されたかどうかを追跡するために使用できるメッセージにフラグimap-setflag-full()を設定できます。\Flagged

  3. カスタムソケットコード:このコードのようなものを使用してカスタム IMAP フラグを設定/取得できますが、他のすべてを機能させるには、おそらくいくつかの IMAP RFC を読む必要があります。

于 2013-01-18T17:43:53.440 に答える