Sappiamo quanto sia importante l’invio di e-mail e quanto sia diventata un’attività comune nelle applicazioni odierne. Ad esempio, immaginiamo di avere un’attività commerciale e di voler inviare un’e-mail attraente basata su HTML con alcune immagini o persino un video, allegandovi un file(ad esempio, un ordine di acquisto o una fattura). E volete fare tutto questo con poche righe di codice. Codice che sia facile da scrivere e da capire. A partire da 4D v17 R4, lo scenario precedente è ora possibile. Ecco perché abbiamo ampliato il set di funzionalità relative alle e-mail.
Il comando SMTP New transporter permette di inviare un’e-mail in tre semplici passi:
- Creare il trasportatore SMTP
- Creare l’e-mail
- Inviare l’e-mail
Creare un’e-mail
Un’email è un oggetto con molte proprietà descritte nella documentazione. transporter.send() documentazione. Di seguito è riportato un esempio di come creare un’email con informazioni quali l’autore, i destinatari, l’oggetto, il corpo del messaggio e gli allegati.
Iniziamo specificando l’autore dell’e-mail:
$email:=New object
”
$email .from:="noreply.mail@4d.com
Poi i destinatari (usando sintassi diverse):
//Originating addresses
$email.to:="address1@mail.com,address2@mail.com"
// Carbon Copy
$email .cc:=New object("nome"; "Stefano"; "email"; "address3@mail.com")
// Blind Carbon Copy
$email .bcc:="address4@mail.com,address5@mail.com"
Aggiungiamo poi un oggetto:
$email.subject:="Ciao mondo"
E il corpo … Si possono specificare due tipi: un testo:
$email.textBody:="Posta di prova \r\n Questa è solo un'e-mail di prova \r\n Ignoratela"
.
o HTML:
$email.htmlBody:="<html><body><h1>Mail di prova </h1> Questa è solo un'e-mail di prova <br /> Si prega di ignorarla</body></html>"
.
È possibile utilizzarli entrambi contemporaneamente o separatamente. Se si usano entrambi, la visualizzazione dipende dal client di posta elettronica utilizzato dal destinatario.
Infine, possiamo aggiungere un file allegato con il comando MAIL New attachment :
$email.attachments:=New collection(MAIL New attachment("c:\\tmp\4d.png"))
creare un trasportatore SMTP
Ora che abbiamo la nostra e-mail, dobbiamo inviarla. A tale scopo, è necessario indicare quale server SMTP si vuole utilizzare con il comando SMTP New transporter comando:
$smtp:=New object
$smtp .host:="smtp.hostname"
$smtp .port:=25
$smtp .user:="User"
$smtp .password:="Password"
$smtpTransporter :=SMTP New transporter($smtp)
Inviare l’e-mail
Il passo finale è l’ invio dell’e-mail:
$status:=$smtpTransporter.send($email)
Ecco l’e-mail di prova ricevuta nella casella di posta elettronica:
Come si può vedere negli esempi precedenti, la creazione e l’invio di e-mail è stata drasticamente migliorata ed è molto facile da usare. C’è molta potenza nascosta. È possibile testare facilmente le impostazioni del trasportatore (credenziali utente, dati del server), gli allegati possono essere specificati come allegati o inline (all’interno dell’HTML) e molto altro ancora. Questa è la prima di molte funzionalità in cantiere e ne rilasceremo sempre di più a ogni rilascio di R.