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!