Per consentire alla vostra soluzione di integrarsi senza problemi con altri client di posta elettronica, spesso è necessario aggiungere informazioni come “già visto” o “urgente”. Il protocollo IMAP consente di associare un elenco di flag a un messaggio per gestire queste informazioni aggiuntive. 4D v18 R6 include una serie di funzioni per l’oggetto IMAP Transporter per aggiungere o rimuovere i flag IMAP.
Con il protocollo IMAP è possibile gestire cinque flag :
- \Visto: Il messaggio è stato letto
- \Risposto: Il messaggio è stato risposto
- \Segnalato: Il messaggio è stato contrassegnato come “segnalato” per un’attenzione urgente/speciale.
- \Eliminato: Il messaggio è contrassegnato come “da eliminare”. Si noti che la rimozione effettiva avviene quando viene richiamata la funzione expunge() quando viene richiamata la funzione, quando si cambia la casella di posta o si chiude la connessione. Questo flag è già aggiunto dalla funzione delete() funzione
- \Bozza: Il messaggio non ha completato la composizione (è contrassegnato come bozza).
Aggiungere i flag
Per gestire i flag delle e-mail, è necessario essere connessi al server di posta e avere una casella di posta selezionata. Per gli esempi seguenti, si utilizzerà la casella di posta in arrivo:
var $transporter : 4D.IMAPTransporter
$transporter :=IMAP New transporter($serverInfo)
$boxInfo :=$transporter.selectBox("inbox")
Per aggiungere flag nelle mail, come nell’oggetto email, creare un oggetto keywords che contenga tutti i flag che si vogliono impostare e passarli come parametro alla funzione addFlags() alla funzione. Ad esempio, se si desidera contrassegnare alcune email come bozze:
$mails:=$transporter.searchMails("SUBJECT \"4D\"")
$keywords :=New object
$ keywords .$draft:=True
$transporter .
addFlags($mails; $
keywords )
Rimuovere i flag
Allo stesso modo, per rimuovere i flag dalle email, creare un oggetto keywords e passarlo alla funzione removeFlags() alla funzione. Ad esempio, se si desidera rimuovere tutti i flag “Eliminato” nella casella di posta elettronica, per evitare la cancellazione delle e-mail contrassegnate:
$mails:=$transporter.searchMails("DELETED")
$ keywords :=New object
$ keywords .$deleted:=True
$transporter .
removeFlags($mails; $
keywords )
Espungere le e-mail
In un precedente post del blog, abbiamo mostrato come aggiungere il flag /Cancellato a un’email con la funzione delete() funzione.
Oltre alla funzione delete() abbiamo aggiunto la nuova funzione expunge() per consentire di applicare il flag /Cancellato senza attendere il passaggio alla casella di posta elettronica o la chiusura della connessione. Ad esempio, se si desidera rimuovere tutte le e-mail nella casella di posta indesiderata:
$boxInfo:=$transporter.selectBox("Email spazzatura")
// marks all the email in the current mail box for deletion
$status:=$transporter.delete(IMAP all)
// deletes all the marked emails
$transporter .
expunge()
Consultate la documentazione per saperne di più sulle nuove funzionalità!