IMAPフラグの管理

Deeplからの自動翻訳

ソリューションが他の電子メールクライアントとスムーズに統合できるようにするために、しばしば「既視」または「緊急」などの情報を追加する必要があります。IMAPプロトコルは、この追加情報を管理するために、フラグのリストをメッセージに関連付けることができます。4D v18 R6には、IMAPフラグを追加または削除するIMAP Transporterオブジェクトのための一連の関数が含まれています。

IMAPプロトコルでは、5つのフラグを管理することができます。

  • \¦メッセージが読まれました。メッセージは読み込まれました。
  • \⑭Answered:メッセージに応答しました。
  • \¦フラグ付き。メッセージは緊急/特別な注意のための “フラグ “としてマークされています。
  • \Ȃ 削除メッセージは “削除予定 “としてマークされます。実際に削除が有効になるのは expunge()関数が呼び出されたとき、メールボックスを切り替えたとき、または接続を閉じたときに有効になります。このフラグはすでに delete()関数によって追加されています。
  • \下書きです。メッセージの作成が完了していない(下書きと表示されている)。

フラグを追加する

メールのフラグを管理するには、メールサーバーに接続し、メールボックスを選択する必要があります。以下の例では、受信箱のメールボックスを使用します。

var $transporter :4D.IMAPTransporter
$transporter :=IMAP New transporter($serverInfo)
$boxInfo :=$transporter.selectBox("inbox")

メールにフラグを追加するには、メールオブジェクトのように、設定したいすべてのフラグを含むキーワードオブジェクトを作成し、それらをパラメータとして addFlags()関数のパラメータとして渡します。例えば、いくつかのメールを下書きとしてマークしたい場合です。

$mails:=$transporter.searchMails("subject \")
$keywords :=New object
$ keywords .$draft:=True
$transporter .addFlags($mails;$
keywords )

フラグの削除

同様に、メールからフラグを削除するには、keywordsオブジェクトを作成して removeFlags()関数に渡します。例えば、マークされた電子メールの削除を避けるために、メールボックスのすべての \Deleted フラグを削除したい場合。

$mails:=$transporter.searchMails("deleted")
$ keywords :=New object
$ keywords .$deleted:=True

$transporter .removeFlags($mails;$keywords ))。

メールの削除

以前のブログ記事で、メールに/Deletedフラグを追加する方法として delete()関数を使用しています。

に加えて、今回は delete()関数に加え、新たに expunge()関数を使用すると、メールボックスの切り替えや接続の終了を待たずに /Deleted フラグを適用することができます。例えば、迷惑メールのメールボックスにあるメールを全て削除したい場合。

$boxInfo:=$transporter.selectBox("迷惑メール")

// marks all the email in the current mail box for deletion
$status:=$transporter.delete(IMAP all)

// deletes all the marked emails
$transporter .expunge()

新機能の詳細については、ドキュメントをご覧ください。

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