Ricevere le e-mail con il protocollo POP3

Tradotto automaticamente da Deepl

4D v18 ha introdotto un nuovo modo facile da usare e potente per creare e inviare e-mail. Un modo che consente di inviare e-mail accattivanti basate su HTML (con immagini, video e allegati), utilizzando solo poche righe di codice. In 4D v18 R2, abbiamo aggiunto la possibilità di scaricare localmente le e-mail e di rimuoverle dal server di posta elettronica. In questo post del blog illustreremo le nuove possibilità offerte.

Il nuovo POP3 New transporter consente di utilizzare il protocollo POP3 per gestire la posta elettronica. Il Post Office Protocol (POP) è un protocollo standard per recuperare le e-mail da un server di posta. È utile per azioni quali la connessione a un server POP3, il recupero dei messaggi da elaborare automaticamente e/o memorizzare nel database locale e la loro eliminazione dal server.

Scaricare la casella di posta elettronica HDI POP3

Creare un trasportatore pop3

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

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

Informazioni sulla posta

È possibile ottenere informazioni su tutti i messaggi presenti nella cassetta postale con il metodo getMailInfoList() dell’oggetto POP3 transporter. L’elenco restituito contiene, in particolare, un numero di messaggio che identifica ogni e-mail durante la transazione POP3:

$mailInfos:=$POP3 transporter.getMailInfoList()

Se si ha bisogno di informazioni solo per un singolo messaggio, si può usare anche il metodo getMailInfo() … basta passare il numero del messaggio come parametro:

$mailInfo:=$POP3 transporter.getMailInfo($mailNumber)

ricevere e-mail

È possibile scaricare tutti i messaggi o messaggi specifici utilizzando il metodo getMail() …. Per scaricare un messaggio specifico, è sufficiente passare il numero del messaggio restituito da getMailInfoList() come parametro a questo metodo. L’esempio seguente mostra come scaricare tutti i messaggi della cassetta postale:

$mailInfos:=$POP3 transporter.getMailInfoList()
$mails :=New collection
For each ($mail;$mailInfos)
// Download email
$mails . push($transporter.getMail($mail.number))
End for each

cancellare l’e-mail

È possibile contrassegnare un messaggio da eliminare durante la chiusura della sessione con il metodo delete() . Allo stesso modo del metodo getMail() passare come parametro il numero del messaggio restituito dal metodo getMailInfoList() come parametro. Ad esempio, se si desidera scaricare ed eliminare tutti i messaggi della propria casella di posta elettronica:

$mailInfos:=$POP3 transporter.getMailInfoList()
For each ($mailInfo;$mailInfos)
// Download email
ProcessMail ($POP3 transporter.getMail($mailInfo.number))

// Flag messages "to be deleted at the end of the session"
. ( . ) $POP3 transporterdelete$mailInfonumber
End for each

// Force the session closure to delete the messages flagged for deletion
$POP3 transporter:=Null

Informazioni sulla casella di posta elettronica

È possibile ottenere il numero di e-mail nella casella di posta e la dimensione della casella di posta con il metodo getBoxInfo() metodo:

$boxInfo:=$POP3 transporter.getBoxInfo()
ALERT ("Dimensione: "+String($boxInfo.size)+" - Conteggio: " +String($boxInfo.mailCount))

transazione di log

Come per i log SMTP, è possibile registrare tutte le transazioni POP3. Esistono due modi per creare il registro:

  • Eseguire un registro POP3 sul server: fare clic sul pulsante “Avvia registri di richiesta e di debug” sul server 4D.
  • Registrare una transazione specifica (ad esempio durante il debug): utilizzare la proprietà logFile dell’oggetto POP3 transporter:

$server.host:="yourpop3server.com"
$server .user:="login"
$server .password:="psw"
// Enter the path of the log file you want to create
$server .logFile:="C:\tmp\\POP3Log.txt"
$transporter :=POP3 New transporter($server)

È possibile testare tutti questi comandi con l’HDI di cui sopra.

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