Nous connaissons l’importance de l’envoi d’e-mails, et le fait qu’il s’agit d’une tâche courante dans les applications d’aujourd’hui. De nombreuses personnes travaillant avec Office 365 nous ont demandé une API pour envoyer des e-mails via l’API Microsoft Graph. La fonctionnalité OAuth 2.0 était une condition préalable à la connexion au serveur Microsoft et à l’introduction de commandes permettant de récupérer les informations sur les utilisateurs. Nous sommes heureux de procéder à la gestion des emails, en commençant par la commande d’envoi d’email.
Connexion au compte
Avant de créer l’email, nous allons créer l’objet de connexion OAuth2 et l’objet Office 365.
var $oAuth2: cs.NetKit.OAuth2Provider
var $office365 : cs.NetKit.Office365
$oAuth2:=cs.NetKit.OAuth2Provider.new($param)
$office365:=cs.NetKit.Office365.new($oAuth2;\
New object("mailType"; "Microsoft"))
PRÉPARER un email
Vous devez d’abord créer votre objet email. 4D supporte maintenant le type de ressource de message de Microsoft Graph. Les exemples de code dans ce billet et l’IDH sont réalisés avec ce nouvel objet. Mais bien sûr, vous pouvez utiliser un objet mail avec un format JMAP si vous préférez.
Commençons par spécifier l’auteur de l’email. L’auteur doit être l’adresse email de l’utilisateur connecté, nous utilisons donc $office365.user.getCurrent() pour remplir cet attribut automatiquement :
$email:=New object
$email.from:=New object
$email.from.emailAddress:=New object
$email.from.emailAddress.address:=$office365.user.getCurrent().userPrincipalName
Si vous souhaitez spécifier une adresse de réponse différente de l’adresse.
Puis les destinataires (en utilisant des syntaxes différentes) :
$addressTo:=New object
$addressTo.emailAddress:=New object
$addressTo.emailAddress.email:="address1@mail.com"
$addressCC:=New object
$addressCC.emailAddress:=New object
$addressCC.emailAddress.email:="address2@mail.com"
$addressCC.emailAddress.name:="Stephen"
// Originating addresses
$email.toRecipients:=new collection($addressTo)
// Carbon Copy
$email.ccRecipients:=new collection($addressCC)
Ensuite, ajoutons un sujet :
$email.subject:="Hello world"
Et le corps … Vous pouvez spécifier deux types, un texte :
$email.body:=New object
$email.body.content:="Test content mail"
$email.body.contentType:="text"
ou HTML :
$email.body:=New object
$email.body.content:="<html><body><h1>Test content mail </h1></body></html>"
$email.body.contentType:="html"
Vous pouvez ajouter des informations supplémentaires à votre email comme :
- une demande d’accusé de réception :
$email.isDeliveryReceiptRequested:=True
- une demande d’accusé de réception de lecture :
$email.isReadReceiptRequested:=True
- une importance « faible », « normale » ou « importante » :
$email.importance:="high"
et d’autres que vous trouverez dans la documentation!
Créer une pièce jointe
Pour ajouter une pièce jointe, vous devez créer un objet pièce jointe :
var $attachmentText : Text
$attachmentText:="Simple text attachement content"
var $attachment : Object
BASE64 ENCODE($attachmentText)
$attachment:=New object
$attachment["@odata.type"]:="#microsoft.graph.fileAttachment"
$attachment.contentId:=Generate UUID
$attachment.isInline:=False
$attachment.name:="attachment.txt"
$attachment.contentType:="text/plain"
$attachment.contentBytes:=$attachmentText
$attachment.size:=Length($attachmentText)
Et l’ajouter à votre email comme ceci :
$email.attachments:=New collection($attachment)
Envoyer l’email
Maintenant que l’email est prêt, nous pouvons l’envoyer en utilisant la fonction mail.send() de l’objet $office365 que nous avons créé auparavant :
$status:=$office365.mail.send($email)
Et voilà, votre email est envoyé !
Découvrez cette fonctionnalité en action avec l’IDH ci-dessus et la documentation pour plus de détails !