Démarrage rapide : Comment envoyer un e-mail en utilisant Azure Communication Services

Remarque

Partagez avec nous vos réflexions et commentaires à propos d’Azure Communication Services en participant à ce petit sondage.

Dans ce guide de démarrage rapide, vous allez découvrir comment envoyer un e-mail en utilisant nos SDK Messagerie.

Démarrez avec Azure Communication Services en utilisant Communication Services Try Email pour envoyer des e-mails.

Prérequis

Suivre ce guide de démarrage rapide entraîne un coût minime de quelques cents USD tout au plus dans votre compte Azure.

Envoi d’un e-mail à l’aide de Try Email

Try Email vous aide à commencer dans l’envoi d’e-mails aux destinataires souhaités à l’aide d’Azure Communication Services, ainsi qu’à vérifier la configuration permettant à votre application d’envoyer des e-mails. Il permet également de démarrer le développement de votre notification par e-mail avec l’extrait de code dans le langage de votre choix.

Pour envoyer un message à un destinataire et spécifier l’objet et le corps du message :

  1. Dans la page de présentation d’une ressource Azure Communication Services approvisionnée, cliquez sur Essayer l’adresse e-mail dans le volet de navigation de gauche sous Email.

    Screenshot that shows the left navigation panel for Try Email.

  2. Sélectionnez l’un des domaines vérifiés dans la liste déroulante.

    Screenshot that shows the verfied domain from drop-down.

  3. Composez l’e-mail à envoyer

    • Entrez l’adresse e-mail du destinataire
    • Entrez l'objet
    • Écrivez le corps de l’e-mail

    Screenshot that shows how to filter and select one of the verified email domains to connect.

  4. Cliquez sur Envoyer

    Screenshot that shows one of the verified email domains is now connected.

  5. Envoi réussi de l'e-mail.

    Screenshot that shows successful email send.

  6. Vous pouvez désormais également copier l’exemple d’extrait de code pour envoyer un e-mail à utiliser dans votre exemple de projet pour envoyer des notifications.

    • Sélectionnez le langage de votre choix

    • Cliquez sur Insérer ma connexion

    • Cliquez sur Copier

      Screenshot that shows code snippet to send email.

  7. L’extrait de code d’un e-mail est maintenant prêt à être utilisé dans votre projet de notification.

Commencez avec Azure Communication Services en utilisant l’extension de communication Azure CLI pour envoyer des e-mails.

Suivre ce guide de démarrage rapide entraîne un coût minime de quelques cents USD tout au plus dans votre compte Azure.

Prérequis

Vérification du prérequis

  • Dans un terminal ou une fenêtre de commande, exécutez la commande az --version pour vérifier qu’Azure CLI et l’extension de communication sont installés.
  • Pour voir les domaines vérifiés avec votre ressource Email Communication Services, connectez-vous au portail Azure. Localisez votre ressource Email Communication Services, puis ouvrez l’onglet Provisionner des domaines dans le volet de navigation gauche.

Configuration

Ajouter l’extension

Ajoutez l’extension Azure Communication Services pour Azure CLI à l’aide de la commande az extension.

az extension add --name communication

Connectez-vous à Azure CLI

Connectez-vous à Azure CLI. Vous pouvez vous connecter en exécutant la commande az login à partir du terminal et fournir vos informations d’identification.

Stocker votre chaîne de connexion dans une variable d’environnement

Vous pouvez configurer la variable d’environnement AZURE_COMMUNICATION_CONNECTION_STRING pour utiliser les opérations de clés d’Azure CLI sans devoir utiliser --connection_string pour passer la chaîne de connexion. Pour configurer une variable d’environnement, ouvrez une fenêtre de console, puis sélectionnez votre système d’exploitation dans les onglets ci-dessous. Remplacez <connectionString> par votre chaîne de connexion.

setx AZURE_COMMUNICATION_STRING "<yourConnectionString>"

Après avoir ajouté la variable d’environnement, vous devrez peut-être redémarrer tous les programmes en cours d’exécution qui devront la lire, y compris la fenêtre de console. Par exemple, si vous utilisez Visual Studio comme éditeur, redémarrez Visual Studio avant d’exécuter l’exemple.

Envoyer un e-mail

az communication email send
	--connection-string "yourConnectionString"
	--sender "<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>"
	--to "<emailalias@emaildomain.com>"
	--subject "Welcome to Azure Communication Services Email" --text "This email message is sent from Azure Communication Services Email using Azure CLI." 

Apportez ces remplacements dans le code :

  • Remplacez <yourConnectionString> par votre chaîne de connexion.
  • Remplacez <emailalias@emaildomain.com> par l’adresse e-mail à laquelle vous souhaitez envoyer un message.
  • Remplacez <donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net> par l’adresse MailFrom de votre domaine vérifié.

La commande ci-dessus effectue également une interrogation sur messageId et retourne le statut de la remise d’e-mail. Il peut s’agir d’un des états suivants :

Nom de l’état Description
NotStarted Nous n’envoyons pas cet état à partir de notre service pour l’instant.
Exécution en cours L’opération d’envoi d’e-mail est en cours de traitement.
Opération réussie L’opération d’envoi d’e-mail s’est terminée sans erreur et l’e-mail est en attente de remise. Tout état détaillé de la remise d’e-mail au-delà de cette étape peut être obtenu via Azure Monitor ou via Azure Event Grid. Découvrir comment s’abonner à des événements par e-mail
Échec L’opération d’envoi d’e-mail n’a pas réussi et a rencontré une erreur. L’e-mail n’a pas été envoyé. Le résultat contient un objet d’erreur avec des détails supplémentaires sur la cause de l’échec.

Paramètres facultatifs

Les paramètres facultatifs suivants sont disponibles dans Azure CLI.

  • --html peut être utilisé au lieu de --text pour le corps de l’e-mail html.

  • --importance définit le type d’importance de l’e-mail. Les valeurs connues sont les suivantes : high (haute), normal et low (faible). La valeur par défaut est normal.

  • --to définit la liste des destinataires de courrier électronique.

  • --cc définit les adresses e-mail de copie carbone.

  • --bcc définit les adresses e-mail de copie carbone invisibles.

  • --reply-to définit l’adresse e-mail à laquelle répondre.

  • --disable-tracking indique si le suivi de l’engagement utilisateur doit être désactivé pour cette requête.

  • --attachments définit la liste des pièces jointes aux e-mails.

  • --attachment-types définit la liste des types de pièces jointes d’e-mail, dans le même ordre de pièces jointes.

En outre, vous pouvez utiliser une liste de destinataires avec --cc, et --bcc similaire à --to. Il doit y avoir au moins un destinataire dans --to ou --cc ou --bcc.

Commencez avec Azure Communication Services en utilisant la bibliothèque de client Communication Services C# Email pour envoyer des e-mails.

Conseil

Démarrez votre expérience d’envoi d’e-mails avec Azure Communication Services en passant directement à l’exemple de code Envoi de Email de base et Email d’envoi avancé sur GitHub.

Comprendre le modèle objet de l’e-mail

Les classes et les interfaces suivantes gèrent certaines des principales fonctionnalités de la bibliothèque de client Azure Communication Services Email pour C#.

Nom Description
EmailAddress Cette classe contient une adresse e-mail et une option pour un nom d’affichage.
EmailAttachment Cette classe crée une pièce jointe d’e-mail en acceptant un ID unique, une chaîne de pièce jointe de type MIME et des données binaires pour le contenu.
EmailClient Cette classe est nécessaire pour toutes les fonctionnalités de messagerie. Vous l’instanciez avec vos chaîne de connexion et vous l’utilisez pour envoyer des e-mails.
EmailClientOptions Cette classe peut être ajoutée à l’instanciation de EmailClient pour cibler une version d’API spécifique.
EmailContent Cette classe contient l’objet et le corps de l’e-mail. Vous devez spécifier au moins un contenu PlainText ou Html
EmailCustomHeader Cette classe permet l’ajout d’une paire nom et valeur pour un en-tête personnalisé. L’importance de l’e-mail peut également être spécifiée par le biais de ces en-têtes à l’aide du nom d’en-tête « x-priority » ou « x-msmail-priority »
EmailMessage Cette classe combine l’expéditeur, le contenu et les destinataires. Des en-têtes personnalisés, des pièces jointes et des adresses e-mail de réponse peuvent également être ajoutés.
EmailRecipients Cette classe contient des listes d’objets EmailAddress pour les destinataires de l’e-mail, y compris les listes facultatives pour les destinataires CC et BCC.
EmailSendOperation Cette classe représente l’opération d’envoi asynchrone d’e-mail et est renvoyée à partir d’un appel d’API d’envoi d’e-mail.
EmailSendResult Cette classe contient les résultats de l’opération d’envoi d’e-mail. Il a un ID d’opération, un état d’opération et un objet d’erreur (le cas échéant).

EmailSendResult renvoie l’état suivant sur l’opération de messagerie effectuée.

Statut Description
NotStarted Nous n’envoyons pas cet état à partir de notre service pour l’instant.
Exécution en cours L’opération d’envoi d’e-mail est en cours de traitement.
Opération réussie L’opération d’envoi d’e-mail s’est terminée sans erreur et l’e-mail est en attente de remise. Tout état détaillé de la remise d’e-mail au-delà de cette étape peut être obtenu via Azure Monitor ou via Azure Event Grid. Découvrir comment s’abonner à des événements par e-mail
Échec L’opération d’envoi d’e-mail n’a pas réussi et a rencontré une erreur. L’e-mail n’a pas été envoyé. Le résultat contient un objet d’erreur avec des détails supplémentaires sur la cause de l’échec.

Prérequis

Suivre ce guide de démarrage rapide entraîne un coût minime de quelques cents USD tout au plus dans votre compte Azure.

Notes

Nous pouvons également envoyer un e-mail à partir de notre propre domaine vérifié. Ajouter des domaines personnalisés vérifiés à Email Communication Service.

Vérification du prérequis

  • Dans une fenêtre de terminal ou de commande, exécutez la commande dotnet pour vérifier que la bibliothèque de client .NET est installée.
  • Pour voir les sous-domaines associés à votre ressource Email Communication Services, connectez-vous au portail Azure, localisez votre ressource Email Communication Services, puis ouvrez l’onglet Provisionner des domaines dans le volet de navigation gauche.

Créer une application C#

Dans une fenêtre de console (par exemple cmd, PowerShell ou Bash), utilisez la commande dotnet new pour créer une application console avec le nom EmailQuickstart. Cette commande crée un projet C# « Hello World » simple avec un seul fichier source : Program.cs.

dotnet new console -o EmailQuickstart

Remplacez votre répertoire par le dossier d’application que vous venez de créer, puis utilisez la commande dotnet build pour compiler votre application.

cd EmailQuickstart
dotnet build

Installer le package

Toujours dans le répertoire de l’application, installez le package de la bibliothèque de client Communication Services Email pour .NET en utilisant la commande dotnet add package.

dotnet add package Azure.Communication.Email

Création du client de messagerie avec l’authentification

Ouvrez Program.cs et remplacez le code existant par ce qui suit pour ajouter des directives using afin d’inclure l’espace de noms Azure.Communication.Email et un point de départ pour l’exécution de votre programme.

using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;

using Azure;
using Azure.Communication.Email;

namespace SendEmail
{
  internal class Program
  {
    static async Task Main(string[] args)
    {

    }
  }
}

Il existe différentes options disponibles pour authentifier un client de messagerie :

Ouvrez Program.cs dans un éditeur de texte, puis remplacez le corps de la méthode Main par du code permettant d’initialiser un EmailClient avec votre chaîne de connexion. Le code suivant récupère la chaîne de connexion de la ressource à partir d’une variable d’environnement nommée COMMUNICATION_SERVICES_CONNECTION_STRING. Découvrez comment gérer la chaîne de connexion de la ressource.

// This code demonstrates how to fetch your connection string
// from an environment variable.
string connectionString = Environment.GetEnvironmentVariable("COMMUNICATION_SERVICES_CONNECTION_STRING");
EmailClient emailClient = new EmailClient(connectionString);

Envoi d’e-mail de base

Créer votre e-mail

Pour envoyer un e-mail, vous devez :

  • Définir l’objet et le corps du message ;
  • Définir votre adresse expéditeur ; Construisez votre e-mail avec vos informations d’expéditeur que vous obtenez de votre adresse MailFrom à partir de votre domaine vérifié.
  • Définir l’adresse du destinataire ;
  • Appeler la méthode SendAsync ; Ajoutez ce code à la fin de la méthode Main dans Program.cs :

Remplacez par les détails de votre domaine et modifiez le contenu et les détails des destinataires selon les besoins


//Replace with your domain and modify the content, recipient details as required

var subject = "Welcome to Azure Communication Service Email APIs.";
var htmlContent = "<html><body><h1>Quick send email test</h1><br/><h4>This email message is sent from Azure Communication Service Email.</h4><p>This mail was sent using .NET SDK!!</p></body></html>";
var sender = "donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net";
var recipient = "emailalias@contoso.com";

Envoyer et obtenir l’état d’envoi de l’e-mail.

Pour envoyer un e-mail, vous devez :

  • Appeler la méthode SendAsync qui envoie la demande par e-mail en tant qu’opération asynchrone. Appeler avec Azure.WaitUntil.Completed si votre méthode doit attendre avec de renvoyer jusqu’à ce que l’opération persistante soit complétée sur le service. Appelez avec Azure.WaitUntil.Started si votre méthode doit revenir après le démarrage de l’opération.
  • La méthode SendAsync renvoie EmailSendOperation dont l’état EmailSendStatus indique « Opération réussie » si l’e-mail est en cours d’envoi et lève une exception dans le cas contraire. Ajoutez ce code à la fin de la méthode Main dans Program.cs :
try
{
    Console.WriteLine("Sending email...");
    EmailSendOperation emailSendOperation = await emailClient.SendAsync(
        Azure.WaitUntil.Completed,
        sender,
        recipient,
        subject,
        htmlContent);
    EmailSendResult statusMonitor = emailSendOperation.Value;
    
    Console.WriteLine($"Email Sent. Status = {emailSendOperation.Value.Status}");

    /// Get the OperationId so that it can be used for tracking the message for troubleshooting
    string operationId = emailSendOperation.Id;
    Console.WriteLine($"Email operation id = {operationId}");
}
catch (RequestFailedException ex)
{
    /// OperationID is contained in the exception message and can be used for troubleshooting purposes
    Console.WriteLine($"Email send operation failed with error code: {ex.ErrorCode}, message: {ex.Message}");
}

Obtention de l’état de remise des e-mails

EmailSendOperation renvoie uniquement l’état de l’opération d’e-mail. Pour obtenir l’état réel de remise de l’e-mail, vous pouvez vous abonner à l’événement « EmailDeliveryReportReceived qui est généré une fois la livraison de l’e-mail effectuée. L’événement retourne l’état de remise suivant :

  • Livré.
  • Échec.
  • En quarantaine.

Pour plus d’informations, consultez Gérer les événements d’e-mail.

Vous pouvez maintenant vous abonner aux journaux opérationnels d’e-mail. Ils fournissent des informations relatives aux métriques de livraison des messages envoyés par le service d’e-mail.

  • Journaux opérationnels Email Send Mail : fournissent des informations détaillées sur l’envoi de requêtes d’envoi d’e-mails.
  • Journaux opérationnels Email Status Update : fournissent des mises à jour d’état de remise au niveau du destinataire et des messages liées aux requêtes d’e-mails du service de messagerie.

Journaux d’accès pour un Service de communication par e-mail.

Exécuter le code

Exécutez l’application à partir de votre répertoire d’application avec la commande dotnet run.

dotnet run

Exemple de code

Vous pouvez télécharger l’exemple d’application à partir de GitHub.

Commencez avec Azure Communication Services en utilisant la bibliothèque de client Communication Services JS Email pour envoyer des e-mails.

Conseil

Démarrez votre expérience d’envoi d’e-mails avec Azure Communication Services en passant directement à l’exemple de code Envoi de Email de base et Email d’envoi avancé sur GitHub.

Présentation du modèle objet de l’e-mail

Les classes et interfaces suivantes gèrent quelques-unes des principales fonctionnalités de la bibliothèque de client Azure Communication Services Email pour JavaScript.

Nom Description
EmailAddress Cette classe contient une adresse e-mail et une option pour un nom d’affichage.
EmailAttachment Cette classe crée une pièce jointe d’e-mail en acceptant un ID unique, une chaîne de pièce jointe de type MIME et des données binaires pour le contenu.
EmailClient Cette classe est nécessaire pour toutes les fonctionnalités de messagerie. Vous l’instanciez avec vos chaîne de connexion et vous l’utilisez pour envoyer des e-mails.
EmailClientOptions Cette classe peut être ajoutée à l’instanciation de EmailClient pour cibler une version d’API spécifique.
EmailContent Cette classe contient l’objet et le corps de l’e-mail. Vous devez spécifier au moins un contenu PlainText ou Html.
EmailCustomHeader Cette classe permet l’ajout d’une paire nom et valeur pour un en-tête personnalisé. L’importance de l’e-mail peut également être spécifiée par le biais de ces en-têtes à l’aide du nom d’en-tête « x-priority » ou « x-msmail-priority ».
EmailMessage Cette classe combine l’expéditeur, le contenu et les destinataires. Des en-têtes personnalisés, des pièces jointes et des adresses e-mail de réponse peuvent également être ajoutés.
EmailRecipients Cette classe contient des listes d’objets EmailAddress pour les destinataires de l’e-mail, y compris les listes facultatives pour les destinataires CC et BCC.
EmailSendResult Cette classe contient les résultats de l’opération d’envoi d’e-mail. Il a un ID d’opération, un état d’opération et un objet d’erreur (le cas échéant).
EmailSendStatus Cette classe représente l’ensemble des états d’une opération d’envoi d’e-mail.

EmailSendResult renvoie l’état suivant sur l’opération de messagerie effectuée.

Nom de l’état Description
isStarted Renvoie la valeur « true » si l’opération d’envoi d’e-mail est en cours de traitement.
IsCompleted Renvoie la valeur « true » si l’opération d’envoi d’e-mail s’est terminée sans erreur et l’e-mail est en attente de remise. Tout état détaillé de la remise d’e-mail au-delà de cette étape peut être obtenu via Azure Monitor ou via Azure Event Grid. Découvrir comment s’abonner à des événements par e-mail
result Propriété qui existe si l’opération d’envoi d’e-mail est terminée.
error Propriété qui existe si l’opération d’envoi d’e-mail n’a pas réussi et a rencontré une erreur. L’e-mail n’a pas été envoyé. Le résultat contient un objet d’erreur avec des détails supplémentaires sur la cause de l’échec.

Prérequis

Suivre ce guide de démarrage rapide entraîne un coût minime de quelques cents USD tout au plus dans votre compte Azure.

Notes

Nous pouvons également envoyer un e-mail à partir de notre propre domaine vérifié. Ajouter des domaines personnalisés vérifiés à Email Communication Service.

Vérification du prérequis

  • Dans une fenêtre de terminal ou de commande, exécutez node --version pour vérifier que Node.js est installé.
  • Pour voir les domaines vérifiés avec votre ressource Email Communication Services, connectez-vous au portail Azure, localisez votre ressource Email Communication Services, puis ouvrez l’onglet Provisionner des domaines dans le volet de navigation gauche.

Configurer l’environnement d’application

Créer une application Node.js

Pour commencer, ouvrez votre fenêtre de terminal ou de commande, créez un répertoire pour votre application, puis accédez-y.

mkdir email-quickstart && cd email-quickstart

Exécutez npm init -y pour créer un fichier package.json avec les paramètres par défaut.

npm init -y

Utilisez un éditeur de texte pour créer un fichier appelé send-email.js dans le répertoire racine du projet. Remplacez la propriété « main » dans package.json par « send-email.js ». La section suivante montre comment ajouter le code source de ce démarrage rapide au fichier nouvellement créé.

Installer le package

Utilisez la commande npm install pour installer la bibliothèque de client Azure Communication Services Email pour JavaScript.

npm install @azure/communication-email --save

L’option --save liste la bibliothèque comme dépendance dans votre fichier package.json.

Création du client de messagerie avec l’authentification

Il existe différentes options disponibles pour authentifier un client de messagerie :

Importez EmailClient depuis la bibliothèque de client et instanciez-la avec votre chaîne de connexion.

Le code suivant récupère la chaîne de connexion de la ressource à partir d’une variable d’environnement nommée COMMUNICATION_SERVICES_CONNECTION_STRING en utilisant le package dotenv. Utilisez la commande npm install pour installer le package dotenv. Découvrez comment gérer la chaîne de connexion de la ressource.

npm install dotenv

Ajoutez le code suivant dans send-email.js :

const { EmailClient } = require("@azure/communication-email");
require("dotenv").config();

// This code demonstrates how to fetch your connection string
// from an environment variable.
const connectionString = process.env['COMMUNICATION_SERVICES_CONNECTION_STRING'];
const emailClient = new EmailClient(connectionString);

Par souci de simplicité, ce guide de démarrage rapide utilise des chaînes de connexion, mais, dans des environnements de production, nous recommandons l’utilisation de principaux de service.

Envoi d’e-mail de base

Envoyer un e-mail

Pour envoyer un e-mail, appelez la fonction beginSend à partir de l’EmailClient. Cette méthode renvoie un observateur qui vérifie l’état de l’opération et récupère le résultat une fois qu’elle est terminée.


async function main() {
  const POLLER_WAIT_TIME = 10
  try {
    const message = {
      senderAddress: "<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>",
      content: {
        subject: "Welcome to Azure Communication Services Email",
        plainText: "This email message is sent from Azure Communication Services Email using the JavaScript SDK.",
      },
      recipients: {
        to: [
          {
            address: "<emailalias@emaildomain.com>",
            displayName: "Customer Name",
          },
        ],
      },
    };

    const poller = await emailClient.beginSend(message);

    if (!poller.getOperationState().isStarted) {
      throw "Poller was not started."
    }

    let timeElapsed = 0;
    while(!poller.isDone()) {
      poller.poll();
      console.log("Email send polling in progress");

      await new Promise(resolve => setTimeout(resolve, POLLER_WAIT_TIME * 1000));
      timeElapsed += 10;

      if(timeElapsed > 18 * POLLER_WAIT_TIME) {
        throw "Polling timed out.";
      }
    }

    if(poller.getResult().status === KnownEmailSendStatus.Succeeded) {
      console.log(`Successfully sent the email (operation id: ${poller.getResult().id})`);
    }
    else {
      throw poller.getResult().error;
    }
  } catch (e) {
    console.log(e);
  }
}

main();

Apportez ces remplacements dans le code :

  • Remplacez <emailalias@emaildomain.com> par l’adresse e-mail à laquelle vous souhaitez envoyer un message.
  • Remplacez <donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net> par l’adresse MailFrom de votre domaine vérifié.

Exécuter le code

Utilisez la commande node pour exécuter le code que vous avez ajouté au fichier send-email.js.

node ./send-email.js

Exemple de code

Vous pouvez télécharger l’exemple d’application à partir de GitHub.

Commencez avec Azure Communication Services en utilisant le SDK Communication Services Java Email pour envoyer des e-mails.

Conseil

Démarrez votre expérience d’envoi d’e-mails avec Azure Communication Services en passant directement à l’exemple de code Envoi de Email de base et Email d’envoi avancé sur GitHub.

Présentation du modèle objet de l’e-mail

Les classes et interfaces suivantes gèrent quelques-unes des principales fonctionnalités du kit de développement logiciel (SDK) Azure Communication Services Email pour Python.

Nom Description
EmailAddress Cette classe contient une adresse e-mail et une option pour un nom d’affichage.
EmailAttachment Cette interface crée une pièce jointe d’e-mail en acceptant un ID unique, une chaîne de pièce jointe de type MIME et une chaîne d’octets de contenu.
EmailClient Cette classe est nécessaire pour toutes les fonctionnalités de messagerie. Vous l’instanciez avec vos chaîne de connexion et vous l’utilisez pour envoyer des e-mails.
EmailMessage Cette classe combine l’expéditeur, le contenu et les destinataires. Des en-têtes personnalisés, des pièces jointes et des adresses e-mail de réponse peuvent également être ajoutés.
EmailSendResult Cette classe contient les résultats de l’opération d’envoi d’e-mail. Il a un ID d’opération, un état d’opération et un objet d’erreur (le cas échéant).
EmailSendStatus Cette classe représente l’ensemble des états d’une opération d’envoi d’e-mail.

EmailSendResult renvoie l’état suivant sur l’opération de messagerie effectuée.

Nom de l’état Description
NOT_STARTED Nous n’envoyons pas cet état à partir de notre service pour l’instant.
IN_PROGRESS L’opération d’envoi d’e-mail est en cours de traitement.
SUCCESSFULLY_COMPLETED L’opération d’envoi d’e-mail s’est terminée sans erreur et l’e-mail est en attente de remise. Tout état détaillé de la remise d’e-mail au-delà de cette étape peut être obtenu via Azure Monitor ou via Azure Event Grid. Découvrir comment s’abonner à des événements par e-mail
FAILED L’opération d’envoi d’e-mail n’a pas réussi et a rencontré une erreur. L’e-mail n’a pas été envoyé. Le résultat contient un objet d’erreur avec des détails supplémentaires sur la cause de l’échec.

Prérequis

Le fait de suivre ce guide de démarrage rapide entraîne une petite dépense de quelques cents USD tout au plus dans votre compte Azure.

Notes

Nous pouvons également envoyer un e-mail à partir de notre propre domaine vérifié Ajouter des domaines vérifiés personnalisés à Email Communication Service.

Vérification du prérequis

  • Dans une fenêtre de terminal ou de commande, exécutez mvn -v pour vérifier que Maven est installé.
  • Pour voir les domaines vérifiés avec votre ressource Email Communication Services, connectez-vous au portail Azure. Localisez votre ressource Email Communication Services, puis ouvrez l’onglet Provisionner des domaines dans le volet de navigation gauche.

Configurer l’environnement d’application

Pour configurer un environnement afin d’envoyer des e-mails, effectuez les étapes décrites dans les sections suivantes.

Créer une application Java

Ouvrez votre terminal ou votre fenêtre Commande, puis accédez au répertoire dans lequel vous souhaitez créer votre application Java. Exécutez la commande suivante pour générer le projet Java à partir du modèle maven-archetype-quickstart.

mvn archetype:generate -DarchetypeArtifactId="maven-archetype-quickstart" -DarchetypeGroupId="org.apache.maven.archetypes" -DarchetypeVersion="1.4" -DgroupId="com.communication.quickstart" -DartifactId="communication-quickstart"

L’objectif generate crée un répertoire qui porte le même nom que la valeur artifactId. Sous ce répertoire, le répertoire src/main/java contient le code source du projet, le répertoire src/test/java contient la source de test et le fichier pom.xml est le modèle objet du projet (POM, Project Object Model).

Installer le package

Ouvrez le fichier pom.xml dans votre éditeur de texte. Ajoutez l’élément dépendance suivant au groupe de dépendances.

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-communication-email</artifactId>
    <version>1.0.0-beta.2</version>
</dependency>

Configurer le framework d’application

Ouvrez /src/main/java/com/communication/quickstart/App.java dans un éditeur de texte, ajoutez des directives d’importation, puis supprimez l’instruction System.out.println("Hello world!"); :

package com.communication.quickstart;

import com.azure.communication.email.models.*;
import com.azure.communication.email.*;
import com.azure.core.util.polling.PollResponse;
import com.azure.core.util.polling.SyncPoller;

public class App
{
    public static void main( String[] args )
    {
        // Quickstart code goes here.
    }
}

Création du client de messagerie avec l’authentification

Il existe différentes options disponibles pour authentifier un client de messagerie :

Pour authentifier un client, vous instanciez un EmailClient avec votre chaîne de connexion. Découvrez comment gérer la chaîne de connexion de la ressource. Vous pouvez aussi initialiser le client avec n’importe quel client HTTP personnalisé qui implémente l’interface com.azure.core.http.HttpClient.

Pour instancier un client, ajoutez le code suivant à la méthode main :

// You can get your connection string from your resource in the Azure portal.
String connectionString = "endpoint=https://<resource-name>.communication.azure.com/;accesskey=<access-key>";

EmailClient emailClient = new EmailClientBuilder()
    .connectionString(connectionString)
    .buildClient();

Par souci de simplicité, ce guide de démarrage rapide utilise des chaînes de connexion, mais, dans des environnements de production, nous recommandons l’utilisation de principaux de service.

Envoi d’e-mail de base

Pour envoyer un e-mail, appelez la fonction beginSend à partir de EmailClient. Cette méthode renvoie un observateur qui vérifie l’état de l’opération et récupère le résultat une fois qu’elle est terminée. Notez que la requête initiale d’envoi d’un e-mail n’est pas envoyée tant que la méthode poll n’est pas appelée ou que nous attendons la fin du sondeur.

EmailMessage message = new EmailMessage()
    .setSenderAddress("<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>")
    .setToRecipients("<emailalias@emaildomain.com>")
    .setSubject("Welcome to Azure Communication Services Email")
    .setBodyPlainText("This email message is sent from Azure Communication Services Email using the Java SDK.");

try
{
    SyncPoller<EmailSendResult, EmailSendResult> poller = emailClient.beginSend(message, null);

    PollResponse<EmailSendResult> pollResponse = null;

    Duration timeElapsed = Duration.ofSeconds(0);
    Duration POLLER_WAIT_TIME = Duration.ofSeconds(10);

    while (pollResponse == null
            || pollResponse.getStatus() == LongRunningOperationStatus.NOT_STARTED
            || pollResponse.getStatus() == LongRunningOperationStatus.IN_PROGRESS)
    {
        pollResponse = poller.poll();
        System.out.println("Email send poller status: " + pollResponse.getStatus());

        Thread.sleep(POLLER_WAIT_TIME.toMillis());
        timeElapsed = timeElapsed.plus(POLLER_WAIT_TIME);

        if (timeElapsed.compareTo(POLLER_WAIT_TIME.multipliedBy(18)) >= 0)
        {
            throw new RuntimeException("Polling timed out.");
        }
    }

    if (poller.getFinalResult().getStatus() == EmailSendStatus.SUCCEEDED)
    {
        System.out.printf("Successfully sent the email (operation id: %s)", poller.getFinalResult().getId());
    }
    else
    {
        throw new RuntimeException(poller.getFinalResult().getError().getMessage());
    }
}
catch (Exception exception)
{
    System.out.println(exception.getMessage());
}

Apportez ces remplacements dans le code :

  • Remplacez <emailalias@emaildomain.com> par l’adresse e-mail à laquelle vous souhaitez envoyer un message.
  • Remplacez <donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net> par l’adresse MailFrom de votre domaine vérifié.

Exécuter le code

  1. Accédez au répertoire contenant le fichier pom.xml, puis compilez le projet à l’aide de la commande mvn.

    mvn compile
    
  2. Générer le package.

    mvn package
    
  3. Exécutez la commande mvn suivante pour exécuter l’application.

    mvn exec:java -D"exec.mainClass"="com.communication.quickstart.App" -D"exec.cleanupDaemonThreads"="false"
    

Exemple de code

Vous pouvez télécharger l’exemple d’application à partir de GitHub.

Commencez avec Azure Communication Services en utilisant le SDK Communication Services Python Email pour envoyer des e-mails.

Conseil

Démarrez votre expérience d’envoi d’e-mails avec Azure Communication Services en passant directement à l’exemple de code Envoi de Email de base et Email d’envoi avancé sur GitHub.

Présentation du modèle objet de l’e-mail

Le modèle de message JSON et l’objet de réponse suivants illustrent certaines des principales fonctionnalités du kit de développement logiciel (SDK) d’e-mail Azure Communication Services pour Python.

message = {
    "content": {
        "subject": "str",  # Subject of the email message. Required.
        "html": "str",  # Optional. Html version of the email message.
        "plainText": "str"  # Optional. Plain text version of the email
            message.
    },
    "recipients": {
        "to": [
            {
                "address": "str",  # Email address. Required.
                "displayName": "str"  # Optional. Email display name.
            }
        ],
        "bcc": [
            {
                "address": "str",  # Email address. Required.
                "displayName": "str"  # Optional. Email display name.
            }
        ],
        "cc": [
            {
                "address": "str",  # Email address. Required.
                "displayName": "str"  # Optional. Email display name.
            }
        ]
    },
    "senderAddress": "str",  # Sender email address from a verified domain. Required.
    "attachments": [
        {
            "contentInBase64": "str",  # Base64 encoded contents of the attachment. Required.
            "contentType": "str",  # MIME type of the content being attached. Required.
            "name": "str"  # Name of the attachment. Required.
        }
    ],
    "userEngagementTrackingDisabled": bool,  # Optional. Indicates whether user engagement tracking should be disabled for this request if the resource-level user engagement tracking setting was already enabled in the control plane.
    "headers": {
        "str": "str"  # Optional. Custom email headers to be passed.
    },
    "replyTo": [
        {
            "address": "str",  # Email address. Required.
            "displayName": "str"  # Optional. Email display name.
        }
    ]
}

response = {
    "id": "str",  # The unique id of the operation. Uses a UUID. Required.
    "status": "str",  # Status of operation. Required. Known values are:
        "NotStarted", "Running", "Succeeded", and "Failed".
    "error": {
        "additionalInfo": [
            {
                "info": {},  # Optional. The additional info.
                "type": "str"  # Optional. The additional info type.
            }
        ],
        "code": "str",  # Optional. The error code.
        "details": [
            ...
        ],
        "message": "str",  # Optional. The error message.
        "target": "str"  # Optional. The error target.
    }
}

Les valeurs response.status sont expliquées plus en détail dans le tableau suivant.

Nom de l’état Description
InProgress L’opération d’envoi d’e-mail est en cours de traitement.
Opération réussie L’opération d’envoi d’e-mail s’est terminée sans erreur et l’e-mail est en attente de remise. Tout état détaillé de la remise d’e-mail au-delà de cette étape peut être obtenu via Azure Monitor ou via Azure Event Grid. Découvrir comment s’abonner à des événements par e-mail
Échec L’opération d’envoi d’e-mail n’a pas réussi et a rencontré une erreur. L’e-mail n’a pas été envoyé. Le résultat contient un objet d’erreur avec des détails supplémentaires sur la cause de l’échec.

Prérequis

Suivre ce guide de démarrage rapide entraîne un coût minime de quelques cents USD tout au plus dans votre compte Azure.

Notes

Nous pouvons également envoyer un e-mail à partir de notre propre domaine vérifié. Ajouter des domaines personnalisés vérifiés à Email Communication Service.

Vérification du prérequis

  • Dans une fenêtre de terminal ou de commande, exécutez la commande python --version pour vérifier que Python est installé.
  • Pour voir les domaines vérifiés avec votre ressource Email Communication Services, connectez-vous au portail Azure. Localisez votre ressource Email Communication Services, puis ouvrez l’onglet Provisionner des domaines dans le volet de navigation gauche.

Configurer l’environnement d’application

Pour configurer un environnement afin d’envoyer des e-mails, effectuez les étapes décrites dans les sections suivantes.

Créer une application Python

  1. Ouvrez votre fenêtre de terminal ou de commande. Ensuite, la commande suivante permet de créer un environnement virtuel et de l’activer. Cette commande crée un répertoire pour votre application.

    python -m venv email-quickstart
    
  2. Accédez au répertoire racine de l’environnement virtuel et activez-le à l’aide des commandes suivantes.

    cd email-quickstart
    .\Scripts\activate
    
  3. Utilisez un éditeur de texte pour créer un fichier appelé send-email.py dans le répertoire racine du projet, puis ajoutez la structure du programme, notamment la gestion des exceptions de base.

    import os
    from azure.communication.email import EmailClient
    
    try:
        # Quickstart code goes here.
    except Exception as ex:
        print('Exception:')
        print(ex)
    

Dans les sections suivantes, vous ajoutez tout le code source pour ce guide de démarrage rapide au fichier send-email.py que vous créez.

Installer le package

Toujours dans le répertoire de l’application, installez le package SDK Azure Communication Services Email pour Python en utilisant la commande suivante.

pip install azure-communication-email

Création du client de messagerie avec l’authentification

Il existe différentes options disponibles pour authentifier un client de messagerie :

Instanciez un EmailClient avec votre chaîne de connexion. Découvrez comment gérer la chaîne de connexion de la ressource.

# Create the EmailClient object that you use to send Email messages.
email_client = EmailClient.from_connection_string(<connection_string>)

Par souci de simplicité, ce guide de démarrage rapide utilise des chaînes de connexion, mais, dans des environnements de production, nous recommandons l’utilisation de principaux de service.

Envoi d’e-mail de base

Envoyer un e-mail

Pour envoyer un e-mail, vous devez :

  • Créez le message avec les valeurs suivantes :
    • senderAddress : adresse e-mail valide de l’expéditeur, qui se trouve dans le champ MailFrom dans le volet vue d’ensemble du domaine lié à votre ressource e-mail Communication Services.
    • recipients : objet avec une liste de destinataires d’e-mails et éventuellement des listes de destinataires d’e-mails CC et BCC.
    • content : objet contenant le sujet, et éventuellement le contenu en texte clair ou HTML, d’un e-mail.
  • Appelez la méthode begin_send, qui renvoie le résultat de l’opération.
message = {
    "content": {
        "subject": "This is the subject",
        "plainText": "This is the body",
        "html": "<html><h1>This is the body</h1></html>"
    },
    "recipients": {
        "to": [
            {
                "address": "<emailalias@emaildomain.com>",
                "displayName": "Customer Name"
            }
        ]
    },
    "senderAddress": "<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>"
}

poller = email_client.begin_send(message)
print("Result: " + poller.result())

Apportez ces remplacements dans le code :

  • Remplacez <emailalias@emaildomain.com> par l’adresse e-mail à laquelle vous souhaitez envoyer un message.
  • Remplacez <donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net> par l’adresse MailFrom de votre domaine vérifié.

Obtenir l’état de la remise de l’e-mail

Nous pouvons interroger l’état de la remise de l’e-mail en définissant une boucle sur l’objet d’état de l’opération renvoyé par la méthode begin_send EmailClient :

POLLER_WAIT_TIME = 10

try:
    email_client = EmailClient.from_connection_string(connection_string)

    poller = email_client.begin_send(message);

    time_elapsed = 0
    while not poller.done():
        print("Email send poller status: " + poller.status())

        poller.wait(POLLER_WAIT_TIME)
        time_elapsed += POLLER_WAIT_TIME

        if time_elapsed > 18 * POLLER_WAIT_TIME:
            raise RuntimeError("Polling timed out.")

    if poller.result()["status"] == "Succeeded":
        print(f"Successfully sent the email (operation id: {poller.result()['id']})")
    else:
        raise RuntimeError(str(poller.result()["error"]))

except Exception as ex:
    print(ex)

Exécuter le code

Exécutez l’application à partir de votre répertoire d’application avec la commande python.

python send-email.py

Exemple de code

Vous pouvez télécharger l’exemple d’application à partir de GitHub.

Prérequis

Envoyer un e-mail

Pour ajouter une nouvelle étape à votre workflow à l’aide du connecteur Azure Communication Services Email, suivez ces étapes :

  1. Dans le concepteur, ouvrez votre workflow d’application logique.

    Consommation

    1. Sous l’étape à laquelle vous souhaitez ajouter la nouvelle action, sélectionnez Nouvelle étape. Vous pouvez également ajouter la nouvelle action entre des étapes, déplacer votre pointeur sur la flèche située entre ces étapes, sélectionner le signe plus (+), puis sélectionner Ajouter une action.

    2. Sous la zone de recherche Choisir une opération, sélectionnez Standard. Dans la zone de recherche, entrez Communication Services Email.

    3. Dans la liste d’actions, sélectionnez Envoyer un e-mail.

      Screenshot that shows the Azure Communication Services Email connector Send email action.

    Standard

    1. Sous l’étape à laquelle vous souhaitez ajouter la nouvelle action, sélectionnez le signe plus (+). Vous pouvez également ajouter la nouvelle action entre des étapes, déplacer votre pointeur sur la flèche située entre ces étapes, sélectionner le signe plus (+), puis sélectionner Ajouter une action.

    2. Sous la zone de recherche Choisir une opération, sélectionnez Azure. Dans la zone de recherche, entrez Communication Services Email.

    3. Dans la liste d’actions, sélectionnez Envoyer un e-mail.

  2. Entrez un nom pour la connexion.

  3. Entrez la chaîne de connexion pour votre ressource Azure Communications Service. Pour trouver cette chaîne, suivez ces étapes :

    1. Sur le portail Azure, ouvrez votre ressource Azure Communication Service.

    2. Dans le menu de ressources, sous Paramètres, sélectionnez Clés, puis copiez la chaîne de connexion.

      Screenshot that shows the Azure Communication Services Connection String.

  4. Sélectionnez Créer lorsque vous avez terminé.

  5. Dans le champ De, utilisez l’adresse e-mail que vous avez configurée dans les prérequis. Entrez les valeurs des champs À, Objet et Corps, par exemple :

    Screenshot that shows the Azure Communication Services Email connector Send email action input.

  6. Enregistrez votre flux de travail. Dans la barre d’outils du Concepteur, sélectionnez Enregistrer.

Tester votre workflow

En fonction du workflow dont vous disposez (Consommation ou Standard), démarrez manuellement votre workflow comme suit :

  • Consommation : Dans la barre d’outils du concepteur, sélectionnez Exécuter le déclencheur>Exécuter.
  • Standard : Dans le menu du workflow, sélectionnez Vue d’ensemble. Dans la barre d’outils, sélectionnez Exécuter le déclencheur>Exécuter.

Le workflow crée un utilisateur, émet un jeton d’accès pour cet utilisateur, puis supprime le jeton et l’utilisateur. Vous pouvez vérifier les sorties de ces actions une fois que le flux de travail s’exécute correctement.

Vous devez recevoir un e-mail à l’adresse spécifiée. De même, vous pouvez utiliser l’action Obtenir l’état des messages électroniques pour vérifier l’état des e-mails envoyés via l’action Envoyer un e-mail. Pour découvrir plus d’actions, consultez la documentation sur le connecteur Azure Communication Services Email.

Nettoyer des ressources de flux de travail

Pour nettoyer votre ressource d’application logique, votre workflow et les ressources associées, consultez Nettoyer des ressources d’application logique de consommation ou Nettoyer des ressources d’application logique standard.

Dépannage

Remise d’e-mails

Pour résoudre les problèmes liés à la remise d’e-mails, vous pouvez obtenir l’état de la remise de l’e-mail pour capturer les détails de la remise.

Important

Le résultat de réussite retourné par l’interrogation du statut de l’opération d’envoi valide uniquement le fait que l’e-mail a été envoyé avec succès pour remise. Pour obtenir des informations supplémentaires sur le statut de la remise du côté du destinataire, vous devez référencer la façon de gérer les événements de messagerie.

Limitation d’email

Si vous voyez que votre application est bloquée, cela peut être dû à la limitation de l’envoi d’e-mails. Vous pouvez gérer cela via la journalisation ou en implémentant une stratégie personnalisée.

Notes

Cette configuration de bac à sable (sandbox) permet aux développeurs de commencer à générer l’application. Vous pouvez demander progressivement d’augmenter le volume d’envoi une fois que l’application est prête à démarrer. Envoyez une demande de support pour déclencher votre limite d’envoi souhaitée si vous avez besoin d’envoyer un volume de messages dépassant les limites de débit.

Nettoyer les ressources Azure Communication Service

Pour nettoyer et supprimer un abonnement Communication Services, vous pouvez supprimer la ressource ou le groupe de ressources. La suppression du groupe de ressources efface également les autres ressources associées. Apprenez-en davantage sur le nettoyage des ressources.

Étapes suivantes

Dans ce guide de démarrage rapide, vous avez découvert comment envoyer des e-mails à l’aide d’Azure Communication Services. Vous pouvez également :