Gestione dei flag IMAP

Tradotto automaticamente da Deepl

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à!

Fabrice Mainguené
- Product Owner -Fabrice Mainguené si è unito al team di 4D Program nel novembre 2016. In qualità di Product Owner, è incaricato di scrivere le storie degli utenti e di tradurle in specifiche funzionali. Il suo ruolo è anche quello di assicurarsi che l'implementazione della funzionalità fornita soddisfi le esigenze del cliente.Dopo aver conseguito una laurea in Informatica presso il CNAM, Fabrice è entrato a far parte di una piccola società di pubblicazione di software come sviluppatore Windev. In seguito ha lavorato per diverse aziende del settore industriale e commerciale come sviluppatore Windev e web e come consulente tecnico su nuove funzionalità.