4D v20 では、IMAPトランスポーターに非常に便利な機能が 2つ追加されました!
IMAPメールサーバーやクライアントの中には、メール内のカスタムキーワードを管理し、固有の機能を利用する必要があるものがあります。
また、IMAPトランスポーターにメールボックスID のサポートを追加し、名前を変更した後でも、メールボックスを識別できるようにしました。
カスタムキーワード
IMAPサーバーの中には、ユーザーによるカスタムキーワードの定義を許可するものがあるため、.addFlags() と .removeFlags() 関数は、任意の単語をキーワードとして受け入れるようになりました:
$transporter:=IMAP New transporter($parameters)
$boxInfo:=$transporter.selectBox("INBOX")
$mailIds:=["122";"123";"124"]
// カスタムキーワード
$keywords:={"myKeyword":true}
// メールのコレクションに対してカスタムキーワードを適用します
$status:=$transporter.addFlags($mailIds; $keywords)
また、.selectBox() 関数は、.flags と .permanentFlags 属性を通して、カレントメールボックスで許可されているフラグのリストを返します:
$selectBox:=$transporter.selectBox("INBOX")
// $selectBox={name:INBOX,
// mailCount:124,
// mailRecent:0,
// id:644737301,
// flags:\\Answered \\Flagged \\Draft \\Deleted \\Seen $NotPhishing $Phishing myKeyword,
// permanentFlags:\\Answered \\Flagged \\Draft \\Deleted \\Seen $NotPhishing $Phishing myKeyword \\*}
メールボックスID
選択したボックスの名前が変更されたか、それとも削除後に再作成されたかを知るには、メールボックス名だけでは不十分なので、IMAPトランスポーターの .selectBox() および .getBoxInfo() 関数が返す情報に id が追加されました:
$boxInfo:=$transporter.getBoxInfo("INBOX")
// {name:INBOX,
// mailCount:125,
// mailRecent:0,
// id:644737301}
これらの機能の詳細については、ドキュメントをご確認ください!