IMAPプロトコルでメールを検索

Deeplからの自動翻訳

メールサーバーにある未読メールをすべて見つけてダウンロードし、クライアントに表示する必要がある場合があります。このような場合 searchMailsメソッドがそれをやってくれます!これは IMAP 検索プロトコルを使用しており、完全にサーバー側で行われます。つまり、高速で、目的のメールだけを取得することができます。

HDI IMAPMailsSearching

メール検索

メール検索を行うには、メールサーバーに接続し、メールボックスを選択する必要があります。例では、Inboxメールボックスを使用します。

$transporter:=IMAP New transporter($serverInfo)
$boxInfo :=$transporter.selectBox("inbox")

Inboxメールボックス内を検索するには、IMAPサーバーにクエリーを送信します。未読のメールをすべて検索するには、”unread ” フラグを付けたリクエストを作成し、それをサーバーに searchMailsメソッドでサーバに送信します。

$mailIds:=$transporter.searchMails("未読")

いくつかのフラグを組み合わせることで、より複雑な検索を行うことができます。たとえば、2020年8月1日以降に「imap.test@4d.com」から受信した未読のメールをすべて検索したい場合、次のようになります。

$mailIds:=$transporter.searchMails("unread SINCE \"1-Aug-2020" FROM \"imap.test@4d.com"")

使用可能なフラグの完全なリストは searchMailsメソッドのドキュメントを参照してください。

この検索のお返しに、リクエストにマッチしたメールIDをすべて含むコレクションを取得します。

ダウンロードメール

見つかったメールをすべてダウンロードするには、新しい getMailsメソッドを使用します。このメソッドは、パラメータにメール ID のコレクションを受け取ります。

$mails:=$transporter.getMails($mailsIds)

これで完了です。たった数行のコードで、2020年8月1日以降に「imap.test@4d.com」から受信したすべての未読メールを取得できましたね。

Fabrice Mainguené
- Product Owner -Fabrice Mainguenéは、2016年11月に4D Programチームに参加しました。プロダクトオーナーとして、彼はユーザーストーリーを書き、それを機能仕様に変換する役割を担っています。CNAMでコンピュータサイエンスの学士号を取得した後、FabriceはWindev開発者として小さなソフトウェア出版社に入社しました。その後、彼は産業および貿易分野のさまざまな企業で、Windev および Web 開発者として、また新機能の技術アドバイザーとして働きました。