Ricezione di e-mail con protocollo IMAP

Tradotto automaticamente da Deepl

In 4D v18 abbiamo introdotto un nuovo modo di inviare le e-mail. In seguito, in 4D v18 R2, abbiamo aggiunto un nuovo modo per recuperare le e-mail utilizzando POP3. Ora, in 4D v18 R4, stiamo muovendo i primi passi verso un nuovo modo di gestire il protocollo IMAP. Come abbiamo fatto per SMTP e POP3, c’è un nuovo comando IMAP New transporter per gestire il protocollo IMAP.

L’Internet Message Access Protocol (IMAP) è un protocollo standard di Internet usato dai client di posta elettronica per recuperare i messaggi da un server di posta. Questo protocollo consente di gestire più caselle di posta elettronica, di scaricare le e-mail, di eseguire ricerche sul server, di gestire lo stato dei messaggi e molto altro ancora!

Con questa prima funzionalità di IMAP, è possibile aggiungere metodi al transporter per: avere l’elenco delle caselle di posta disponibili, selezionare una casella di posta e ricevere e-mail dalla casella selezionata. Vediamo come.

L’HDI qui sotto mostra come ricevere le e-mail via IMAP:

HDI ricevere e-mail via IMAP

creare un trasportatore IMAP

Come per SMTP e POP3, quando si utilizza il protocollo IMAP, è necessario creare un transporter (tramite il comando IMAP New transporter ):

$server:=New object
$server .host:="yourIMAPhost.com"
$server .port:=995
$server .user:="4D.IMAP@mail.com"
$server .password:="XXXXXX"
// Create a transporter from your server information
$IMAP_Transporter:=IMAP New transporter($server)

Selezionare la casella di posta elettronica

Poiché IMAP supporta più caselle di posta, la prima cosa da fare è specificare la casella di posta desiderata.

È possibile ottenere un elenco di tutte le caselle di posta elettronica disponibili sul server di posta con il metodo getBoxList metodo:

$boxList:=$IMAP_Transporter.getBoxList()
Alert ("Il nome della prima casella di posta è "+$boxList[0].name)

Una volta che si conosce il nome della mailbox specifica di cui si ha bisogno, è sufficiente utilizzare il metodo selectBox:

$boxInfo:=$transporter.selectBox($boxList[$boxId].name)

Questo comando restituisce informazioni utili come

  • il numero di messaggi di posta elettronica presenti nella casella
  • il numero di messaggi recenti

Scaricare la posta elettronica

Ci sono due modi per identificare la posta che si desidera scaricare:

  • Il primo consiste nell’utilizzare la posizione del messaggio nella cassetta postale, proprio come nel caso di POP3. Ad esempio, se si vuole scaricare l’ultimo messaggio ricevuto:

$mail:=$transporter.getMail($boxInfo.mailCount)

  • Il secondo metodo consiste nell’utilizzare l’attributo id dell’oggetto e-mail restituito dal server IMAP. Questo metodo è preferibile quando si vuole recuperare un’email specifica, poiché la posizione di un’email nella casella di posta può essere modificata quando si eliminano le email:

$mail:=$transporter.getMail($emailId)

Come abbiamo detto in precedenza, questa è la prima funzione di IMAP. Ne arriveranno altre. Restate sintonizzati!

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