Une nouvelle façon d’envoyer des mails

Traduit automatiquement de Deepl

Nous connaissons l’importance de l’envoi d’e-mails et la banalité de cette tâche dans les applications d’aujourd’hui. Par exemple, imaginez que vous êtes dans une entreprise et que vous voulez envoyer un e-mail attrayant basé sur HTML avec quelques images ou même une vidéo, et y joindre un fichier(par exemple, un bon de commande ou une facture). Et vous voulez faire tout cela avec seulement quelques lignes de code. Un code facile à écrire et à comprendre. Eh bien, à partir de 4D v17 R4, le scénario précédent est maintenant possible. C’est pourquoi nous avons élargi l’ensemble des fonctionnalités liées aux e-mails.

La commande SMTP New transporter vous permet d’envoyer un courriel en trois étapes faciles :

  • Créez votre transporteur SMTP
  • Créez votre email
  • Envoyez votre email

HDI créer et envoyer un email

Créer un email

Un email est un objet avec de nombreuses propriétés décrites dans la documentation de transporter.send() documentation. Vous trouverez ci-dessous un exemple de création d’un e-mail contenant des informations telles que l’auteur, les destinataires, l’objet, le corps du message et les pièces jointes.

Commençons par spécifier l’auteur de l’email :

$email:=New object
$email .from:= "noreply.mail@4d.com
 »

Puis les destinataires (en utilisant des syntaxes différentes) :

//Originating addresses
$email.to:= "address1@mail.com,address2@mail.com"
// Carbon Copy
$email .cc:=New object("nom" ; "Stephen" ; "email" ; "address3@mail.com")
// Blind Carbon Copy
$email .bcc:= "address4@mail.com,address5@mail.com"

Ensuite, ajoutons un sujet :

$email.subject:="Bonjour le monde"

Et le corps … Vous pouvez spécifier deux types, un texte :

$email.textBody:="Test mail \r\n Ceci est juste un e-mail de test \r\n Veuillez l'ignorer"

ou du HTML :

$email.htmlBody:="<html><body><h1>Test mail </h1> Ceci est juste un e-mail de test <br />Veuillez l'ignorer</body></html>"

Vous pouvez utiliser les deux en même temps ou séparément. Si vous utilisez les deux, l’affichage dépend de l’email client utilisé par le destinataire.

Enfin, nous pouvons ajouter un fichier joint avec la commande MAIL New attachment pour ajouter une pièce jointe :

$email.attachments:=New collection(MAIL New attachment("c:\\tmp\\4d.png"))

créer un transporteur SMTP

Maintenant que nous avons notre email, nous devons l’envoyer. Pour cela, il est nécessaire d’indiquer quel serveur SMTP nous voulons utiliser avec la commande SMTP New transporter commande :

$smtp:=New object
$smtp .host:= "smtp.hostname"
$smtp .port:=25
$smtp .user:= "User"
$smtp .password:= "Password"
$smtpTransporter :=SMTP New transporter($smtp)

Envoyez l’email

L’étape finale est l’ envoi de l’email :

$status:=$smtpTransporter.send($email)

Voici l’e-mail de test reçu dans votre boîte aux lettres :

Comme vous pouvez le voir dans les exemples ci-dessus, la création et l’envoi d’e-mails ont été considérablement améliorés et sont très faciles à utiliser. Il y a beaucoup de puissance cachée. Vous pouvez facilement tester les paramètres du transporteur (informations d’identification de l’utilisateur, données du serveur), les pièces jointes peuvent être spécifiées en tant que pièces jointes ou en ligne (à l’intérieur du HTML), et bien plus encore. Il s’agit de la première d’une série de fonctionnalités en cours d’élaboration et nous publierons de plus en plus de fonctionnalités de manière itérative à chaque version de la R.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené a rejoint l'équipe du programme 4D en novembre 2016. En tant que Product Owner, il est en charge de rédiger les user stories puis de les traduire en spécifications fonctionnelles. Son rôle est également de s'assurer que l'implémentation de la fonctionnalité livrée répond au besoin du client.Après avoir obtenu une licence en informatique au CNAM, Fabrice a rejoint une petite société d'édition de logiciels en tant que développeur Windev. Il a ensuite travaillé pour différentes entreprises dans les domaines de l'industrie et du commerce en tant que développeur Windev et web ainsi que conseiller technique sur les nouvelles fonctionnalités.