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