ソリューションが他の電子メールクライアントとスムーズに統合できるようにするために、しばしば「既視」または「緊急」などの情報を追加する必要があります。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()
新機能の詳細については、ドキュメントをご覧ください。