Správa příznaků IMAP

Automaticky přeloženo z Deepl

Aby se vaše řešení hladce integrovalo s jinými e-mailovými klienty, je často třeba přidat informace, jako je „již viděno“ nebo „naléhavé“. Protokol IMAP umožňuje přiřadit ke zprávě seznam příznaků, které umožňují spravovat tyto dodatečné informace. 4D v18 R6 obsahuje sadu funkcí pro objekt IMAP Transporter, které umožňují přidávat nebo odebírat příznaky IMAP.

Pomocí protokolu IMAP můžete spravovat pět příznaků :

  • \Seen: Zpráva byla přečtena
  • \Odpovězeno: Zpráva byla zodpovězena
  • \Flagged: Zpráva je označena jako „označená“ pro naléhavou/zvláštní pozornost
  • \Smazáno: Zpráva je označena jako „ke smazání“. Všimněte si, že skutečné odstranění se projeví, když se expunge() funkce zavolána, když přepnete poštovní schránku nebo uzavřete spojení. Tento příznak je již přidán funkcí delete() funkce
  • \Draft: Zpráva nebyla dokončena (je označena jako koncept).

Přidat příznaky

Chcete-li spravovat příznaky e-mailů, musíte být připojeni k poštovnímu serveru a mít vybranou poštovní schránku. V následujících příkladech použijeme schránku doručené pošty:

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

Chcete-li přidat příznaky do pošty, stejně jako do objektu e-mailu, vytvořte objekt klíčových slov, který obsahuje všechny příznaky, které chcete nastavit, a předejte je jako parametr funkci addFlags() funkci. Například pokud chcete některé e-maily označit jako koncept:

$mails:=$transporter.searchMails("SUBJECT \"4D\"")
$keywords :=New object
$ keywords .$draft:=True

$transporter .addFlags($mails; $keywords )

Odstranění příznaků

Stejně tak chcete-li příznaky z e-mailů odstranit, vytvořte objekt klíčových slov a předejte jej funkci. removeFlags() funkci. Například pokud chcete odstranit všechny příznaky \Deleted v poštovní schránce, abyste zabránili odstranění označených e-mailů:

$mails:=$transporter.searchMails("ODSTRANĚNO")
$ keywords :=New object
$
keywords .$deleted:=True
$transporter .removeFlags($mails; $keywords )

Vymazat e-maily

V předchozím příspěvku na blogu jsme si ukázali, jak přidat příznak /Deleted do e-mailu pomocí funkce delete() funkce.

Kromě příznaku delete() funkce jsme přidali novou funkci expunge() funkci, která vám umožní použít příznak /Deleted, aniž byste museli čekat na přepnutí schránky nebo uzavření spojení. Například pokud chcete odstranit všechny e-maily ze schránky Nevyžádaná pošta:

$boxInfo:=$transporter.selectBox("Nevyžádaná pošta")

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

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

Podívejte se do dokumentace a zjistěte více o nových funkcích!

Fabrice Mainguené
- Product Owner -Fabrice Mainguené se připojil k týmu 4D Program v listopadu 2016. Jako Product Owner má na starosti psaní uživatelských příběhů, které následně převádí do funkčních specifikací. Jeho úkolem je také zajistit, aby dodaná implementace funkcí splňovala potřeby zákazníků.Po získání bakalářského titulu v oboru informatiky na CNAM nastoupil Fabrice do malé softwarové vydavatelské společnosti jako vývojář Windev. Poté pracoval pro různé společnosti v oblasti průmyslu a obchodu jako vývojář aplikací Windev a webových aplikací a také jako technický poradce pro nové funkce.