1

hMailServer をインストールしており、電子メールをアプリケーションに統合したいと考えています。すべてのフォルダーを取得し (imap_mailboxmsginfo)、すべてのフォルダーからすべてのメッセージを取得し (imap_fetch_overview)、各電子メール (imap_body) からデータを取得するプロトタイプをセットアップしました。これらをローカルに保存できます。

ただし、ユーザーが 100 のフォルダーに 10,000 通の電子メールを持っていて、最後に hMailServer から電子メールをダウンロードしてから特定の電子メールを読んだかどうかを確認したい場合、すべてを取得する必要があります。フォルダからすべての電子メールを取得し、問題の電子メールが見つかるまで一意の message_id を検索します。

「msgno」はまったく一意ではなく、「uid」はフォルダーごとにのみ一意であり、ユーザーがあるフォルダーから別のフォルダーに電子メールを移動すると、「uid」が変更されるため、これを行う必要があります。また、hMailServer データベースの hm_messages テーブルにある "messageid" にアクセスする方法がありません。したがって、「message_id」が電子メールを一意に識別する唯一の方法のようですが、message_id を指定して hMailServer からメッセージを取得できる PHP/IMAP 関数は見つかりません。

(1) hMailServer から message_id を含む電子メールを取得する方法、または (2) 特定のメールが削除、フラグ付け、または別のフォルダに移動さ​​れたなどの通知を hMailServer から取得する方法はありますか? PHP 電子メール クライアントはこの問題をどのように解決しますか?

4

1 に答える 1

0

私が作成したWebメールでは、両方のデータ(メッセージ番号とフォルダ)を読み取りと削除などに使用しており、うまく機能しています。

メールごとに一意の ID を取得したい場合は、この関数 imap_uid を使用します。メールボックス フォルダからの一意の ID とメッセージ番号を返します。

私の意見では、データベースを直接使用することは、単純なアクションまたはルーティング ルールの作成に関する同期の問題には適していません。私が hmail データベースを使用したのは、管理と統計の作成だけでした。

于 2015-06-30T16:03:33.693 に答える