Microsoft Azure n’a pas de service de livraison d’e-mails. Que vous testiez des applications ou développiez des scripts dans Azure pour envoyer des e-mails, sachez qu’aucun service e-mail natif n’est disponible pour vous.
La connexion SMTP sortante via le port 25 est entièrement bloquée dans Azure. Si vous êtes un client d’entreprise, vous pouvez demander le déblocage du port 25 pour votre locataire Azure. Sinon, comment pouvez-vous envoyer des e-mails depuis Azure ?
Il existe généralement deux façons de laisser passer les e-mails sortants via Azure : en utilisant un serveur de relais SMTP et des requêtes API REST. La plupart des services de livraison d’e-mails proposent à la fois des méthodes SMTP et API pour l’envoi d’e-mails. Dans cet article, vous apprendrez comment envoyer des e-mails depuis Azure vers le reste du monde.
Prérequis
Cet article est un tutoriel et si vous prévoyez de suivre les exemples au fur et à mesure, vous devez remplir certaines exigences.
- Un abonnement Azure. Vous pouvez vous inscrire à un essai gratuit d’Azure si vous n’en avez pas encore.
- Une machine virtuelle Azure (VM). Référez-vous à Créer une machine virtuelle Windows dans le portail Azure pour apprendre comment créer une nouvelle VM si vous n’en avez pas encore.
- Windows PowerShell 5.1 ou PowerShell 7.1.
- A valid sender email address. Using a free email address domain, such as gmail.com, is not recommended. As much as possible, use a sender email address that uses a domain that you own.
Savoir quel service de messagerie électronique utiliser avec Azure pour envoyer des e-mails
Il existe plusieurs services de messagerie électronique cloud disponibles. Certains des noms les plus connus sont SendGrid, MailJet et MailGun. Quel que soit le service de messagerie électronique que vous choisissez, les utiliser pour envoyer des e-mails depuis Azure est similaire ; adresse et port du serveur pour SMTP et adresse de point de terminaison de l’API pour REST.
SendGrid est un exemple de service de messagerie électronique tiers utilisé dans cet article. D’autres services de messagerie électronique utilisés comme exemples sont Office 365 SMTP relay et Microsoft Graph API.
Connexe: Quel service de messagerie Azure choisir pour 2021
Utiliser SendGrid
SendGrid est probablement l’option de service d’email la plus populaire pour l’envoi d’emails depuis Azure. Azure et SendGrid sont si populaires car il y avait auparavant un plan gratuit avec une limite de 25 000 emails par mois pour les clients Azure.
Bien que le plan gratuit ne soit plus proposé dans le portail Azure, comme confirmé par Microsoft, il est possible de s’inscrire à un abonnement gratuit avec une limite de 100 emails par jour. Vous aurez ensuite accès au service de relais SMTP de SendGrid ou à l’API d’emails pour envoyer des emails à partir d’une application Azure ou d’une machine virtuelle.
Création d’un compte SendGrid
Pour utiliser les services de SendGrid, vous devez d’abord avoir un compte SendGrid. Rendez-vous sur la page Inscription, et vous devriez voir le formulaire comme indiqué ci-dessous. Entrez votre adresse email et le mot de passe que vous avez choisi. Ensuite, acceptez les conditions et cliquez sur le bouton Créer un compte.

Sur la page suivante, vous devez entrer votre nom et les informations de votre entreprise. Vous devez également sélectionner les options appropriées telles que votre rôle, le nombre d’emails à envoyer par mois et le nombre d’employés. Ensuite, cliquez sur Commencer.

Lorsque vous vous connectez pour la première fois à SendGrid, vous pouvez obtenir une erreur indiquant : « Vous n’êtes pas autorisé à accéder à SendGrid ; veuillez contacter le support. » Lorsque cela se produit, ouvrez un ticket auprès du support SendGrid. Ils peuvent avoir besoin de poser quelques questions de vérification avant de débloquer votre accès.
On vous demandera d’activer l’authentification à deux facteurs lors de votre première connexion. Assurez-vous de suivre les instructions avec précision.
Création d’une identité d’expéditeur SendGrid
Après avoir créé le compte SendGrid, la prochaine étape consiste à autoriser l’identité de l’expéditeur. Il existe deux options : authentifier un seul expéditeur (par exemple, [email protected]) ou authentifier tout un domaine (par exemple, domaine.com).
Dans cet exemple, vous allez créer une identité d’expéditeur unique qui servira d’adresse d’expéditeur. Seule l’adresse d’expéditeur vérifiée sera autorisée à envoyer des messages via le service SendGrid. Suivez les instructions ci-dessous pour créer l’identité d’expéditeur unique.
- Sur la page Bienvenue, cliquez sur le bouton Créer un seul expéditeur.

2. Ensuite, sur le volet latéral Créer un expéditeur, fournissez toutes les informations requises. Les champs obligatoires sont marqués d’un astérisque rouge à côté d’eux pour plus de facilité de référence. Après avoir saisi les détails, cliquez sur Créer.

Vous verrez alors la nouvelle adresse d’expéditeur répertoriée sous la page Vérification de l’expéditeur unique. Comme vous pouvez le voir dans l’exemple ci-dessous, l’adresse n’est pas encore vérifiée, comme l’indique une croix rouge dans la colonne VERIFIÉ.

3. Pour vérifier l’expéditeur, localisez l’e-mail envoyé à l’adresse de l’expéditeur, similaire à la capture d’écran ci-dessous. Ensuite, cliquez sur le bouton Vérifier l’expéditeur unique.

L’adresse de l’expéditeur sera vérifiée. Vous devriez voir une page similaire, comme indiqué ci-dessous, confirmant que la vérification de l’expéditeur est terminée.

Création d’une clé d’API SendGrid
Après avoir créé l’adresse d’expéditeur unique, l’interface de création des clés d’API devient disponible. Pensez à la clé d’API SendGrid comme au mot de passe. Sans cela, votre code ne peut pas s’authentifier auprès du service de relais SMTP SendGrid. Suivez les étapes ci-dessous pour créer une nouvelle clé d’API.
- Dans le menu de gauche, cliquez sur Paramètres > Clés d’API. Ensuite, cliquez sur le bouton Créer une clé d’API en haut à droite de la page.

2. Le volet Créer une clé d’API apparaît. Entrez le nom de la clé d’API que vous créez. Utilisez un nom qui a du sens, comme « Clé API de test Azure ». Ensuite, pour simplifier, sélectionnez Accès complet comme autorisation. Enfin, cliquez sur le bouton Créer et afficher.

3. La nouvelle clé d’API est affichée ci-dessous. Copiez et enregistrez la valeur de la clé car elle ne vous sera plus affichée. Après avoir copié la clé, cliquez sur Terminé.

Envoyer un e-mail à partir d’Azure en utilisant le relais SMTP SendGrid.
Maintenant que vous avez les composants requis (compte, expéditeur et clé) pour utiliser SendGrid afin d’envoyer des e-mails Azure, il est temps de tester si le service de relais SMTP de SendGrid fonctionne. Dans cette section, vous allez utiliser PowerShell pour envoyer des e-mails à partir d’une machine virtuelle Azure.
Avant d’exécuter un code quelconque, vous devez connaître ces exigences.
- L’adresse du serveur SMTP SendGrid est smtp.sendgrid.net.
- Le nom d’utilisateur utilisé pour l’authentification SMTP est toujours apikey.
- Le mot de passe à utiliser est la valeur de la clé API que vous avez créée dans SendGrid.
- N’utilisez pas le port 25. Utilisez plutôt le port 587.
- Seule l’adresse d’expéditeur vérifiée dans SendGrid est valide pour être utilisée comme l’expéditeur de vos e-mails. Dans cet exemple, l’expéditeur autorisé est [email protected].
Le script ci-dessous enverra un e-mail via le relais SMTP de SendGrid. Copiez le code ci-dessous et modifiez les valeurs $sendGridApiKey
, From
, To
et Body
. Ensuite, exécutez le code dans votre session PowerShell. Référez-vous aux commentaires pour comprendre ce que chaque ligne de code fait.
La démonstration ci-dessous montre à quoi ressemble l’exécution du code ci-dessus en PowerShell en temps réel.

Pour confirmer la délivrabilité du courrier électronique, vérifiez la boîte aux lettres du destinataire pour trouver le message de test que vous avez envoyé. Le résultat serait similaire à celui indiqué ci-dessous. Comme vous pouvez le voir, le message est envoyé depuis l’adresse de l’expéditeur via sendgrid.net.

Relatif : Send-MailMessage : La façon d’envoyer un courrier électronique en PowerShell
Envoi d’un courrier électronique depuis Azure en utilisant l’API SendGrid
Une autre façon d’utiliser SendGrid avec Azure pour envoyer des courriers électroniques consiste à utiliser la SendGrid Web API V3. Au lieu de communiquer avec SendGrid via SMTP, l’utilisation de l’API se fait via HTTP. La requête HTTP est envoyée à l’URL de point de terminaison de l’API SendGrid.
Le script PowerShell d’exemple ci-dessous utilise la cmdlet Invoke-RestMethod
pour soumettre la demande d’email d’Azure à SendGrid. Copiez le code et modifiez les valeurs des variables $sendGridApiKey
, $fromAddress
, $toAddress
, $mailSubject
et $mailMessage
.
Une fois les variables mises à jour, exécutez le code dans PowerShell.
Après avoir exécuté le code PowerShell ci-dessus, vérifiez la boîte de réception du destinataire et confirmez qu’il a reçu le message de test. L’exemple ci-dessous montre un message de test envoyé avec succès depuis Azure via l’API SendGrid.

Si vous souhaitez en savoir plus sur l’API Web SendGrid, visitez la page API d’envoi de courrier V3.
Utilisation de l’authentification SMTP Office 365
Une autre option pour envoyer des e-mails Azure est d’utiliser le relais SMTP Office 365. Cela est possible si votre organisation dispose déjà d’un abonnement Exchange Online. Tout comme l’utilisation de SendGrid en tant qu’hôte intelligent SMTP, le relais SMTP Office 365 nécessite une authentification et l’utilisation uniquement du port 587.
Avant d’utiliser le relais SMTP Office 365, vous devez connaître les conditions suivantes pour que cela fonctionne.
- L’adresse de l’expéditeur doit être un objet destinataire Exchange Online valide, tel qu’une boîte aux lettres ou un utilisateur de messagerie. Cependant, si des avis de non-distribution (NDR) doivent être stockés, utilisez une boîte aux lettres.
- L’utilisateur d’authentification doit disposer d’une licence Exchange Online valide. Seuls les utilisateurs d’Exchange Online disposant d’une licence sont autorisés à utiliser le relais SMTP Office 365.
- Suppose que l’utilisateur d’authentification est différent de l’expéditeur. Dans ce cas, l’utilisateur doit être assigné la permission Envoyer en tant que pour le compte de l’expéditeur.
- La méthode d’authentification utilisée est basique (héritage). Cela signifie que si l’authentification de base SMTP est désactivée dans votre organisation ou lorsque Microsoft abandonne enfin l’authentification de base, l’authentification SMTP ne fonctionnera plus.
- L’adresse du serveur relais SMTP est smtp.office365.com, et le numéro de port est 587.
Lié : Comment envoyer un e-mail avec Office 365 Direct Send et PowerShell
Création d’une adresse d’expéditeur Office 365
Dans cet exemple, l’expéditeur et l’utilisateur d’authentification sont séparés. Assurez-vous de vous connecter à Exchange Online PowerShell d’abord. Une fois connecté, suivez les étapes ci-dessous.
Créez une boîte aux lettres partagée en utilisant la commande ci-dessous. Modifiez les valeurs -Name
et -PrimarySMTPAddress
par vos valeurs correctes.
La boîte aux lettres partagée devrait être créée et renvoyer un résultat similaire à celui ci-dessous.

Ensuite, attribuez les autorisations Envoyer en tant que à l’utilisateur d’authentification. Dans l’exemple ci-dessous, l’utilisateur se voit attribuer les autorisations Envoyer en tant que pour la boîte aux lettres partagée.
Une fois la commande ci-dessus exécutée, vous devriez obtenir un résultat similaire à celui ci-dessous.

Envoi d’un courrier électronique depuis Azure en utilisant le relais SMTP Office 365
Après la création de l’adresse de l’expéditeur et l’attribution des autorisations d’envoi en tant que, l’étape suivante consiste à tester la livraison des courriers électroniques à l’aide de PowerShell et du relais SMTP Office 365.
Le code ci-dessous s’authentifie en utilisant [email protected]. L’adresse [email protected] apparaît comme expéditeur. Assurez-vous de remplacer les valeurs correctes avant d’exécuter le code.
L’utilisation d’informations d’identification en texte clair dans des scripts n’est pas recommandée. Les scripts de production doivent utiliser le chiffrement des informations d’identification ou la gestion des secrets pour sécuriser les noms d’utilisateur et les mots de passe.
Maintenant, il est temps de vérifier la boîte aux lettres du destinataire. Confirmez que le message de test a été reçu.

Utilisation de l’API Microsoft Graph pour envoyer un e-mail Azure.
Au lieu d’utiliser le relais SMTP d’Office 365, le moyen le plus sécurisé et recommandé est d’utiliser Microsoft Graph API. Avec Microsoft Graph API, vous pouvez envoyer des e-mails à partir de n’importe quelle boîte aux lettres de votre organisation en utilisant des appels d’API REST.
Pour utiliser Microsoft Graph API pour envoyer des e-mails, vous avez besoin d’une application Azure AD enregistrée. L’application enregistrée doit être attribuée avec l’autorisation d’API Mail.Send. Les sections suivantes vous montreront comment configurer Microsoft Graph API et l’utiliser pour envoyer des e-mails.
Connexe : Utilisation de Microsoft Graph API avec PowerShell
Inscription d’une nouvelle application dans Azure Active Directory
Dans cette section, vous allez enregistrer une nouvelle application web dans l’annuaire actif Azure. La nouvelle application agit en tant qu’identité d’authentification pour Microsoft Graph. Connectez-vous au Portail Azure si vous n’êtes pas encore connecté.
- Accédez à Azure Active Directory —> Inscription de l’application. Ensuite, cliquez sur le bouton Nouvelle inscription.

2. Sur la page Inscrire une application, saisissez le nom de l’application.
3. Sous la rubrique Types de compte pris en charge, choisissez Comptes de ce répertoire organisationnel uniquement. Tapez HTTP://localhost comme URI de redirection. Enfin, cliquez sur le bouton Enregistrer.

4. Attendez que l’enregistrement soit terminé. Le processus ne prend que quelques secondes. N’oubliez pas de noter les valeurs du ID d’application (client) et du ID de répertoire (locataire). Vous en aurez besoin plus tard.

Création d’une clé secrète client
Pensez à l’ID d’application que vous avez créé dans la section précédente comme un nom d’utilisateur. Et cet ID d’application a besoin d’un mot de passe – qui est la clé secrète.
Pour ajouter une nouvelle clé secrète client, suivez les étapes ci-dessous.
- Accédez à Certificats et secrets, puis cliquez sur Nouvelle clé secrète client.
- Entrez la description de la clé secrète client, comme clé1.
- Sélectionnez quand la clé secrète expire et cliquez sur Ajouter. Dans l’exemple ci-dessous, la clé secrète expire dans 1 an.

Vous verrez la nouvelle clé répertoriée sous la section Secrets clients. C’est le seul moment où vous verrez la valeur de la clé, alors enregistrez une copie.

Attribution des autorisations API et octroi du consentement de l’administrateur
Maintenant que vous avez créé l’ID d’application et la clé secrète, il ne reste plus qu’à attribuer les autorisations requises de l’API Microsoft Graph. Sans attribution d’autorisation, l’application peut s’authentifier mais n’aura aucune autorité pour faire quoi que ce soit, comme envoyer des e-mails.
Pour commencer à attribuer des autorisations, suivez les étapes ci-dessous.
- Cliquez sur Permissions de l’API dans le menu de gauche.
2. Ensuite, sous la page des Permissions configurées, cliquez sur le bouton Ajouter une permission.

3. Dans le volet Demande de permissions de l’API, cliquez pour sélectionner Microsoft Graph API.

4. Lorsqu’on vous demande de choisir le type de permission requise par l’application, cliquez sur Permissions de l’application.
5. Dans la zone de recherche, tapez Mail.Send pour le rechercher. Dans le résultat, cliquez pour cocher la permission Mail.Send. Enfin, cliquez sur Ajouter des permissions.

6. Vous remarquerez que le statut de la permission est « Non accordée pour <nom de l’organisation>« . À ce stade, vous ou un administrateur global devez d’abord donner votre consentement pour l’application. Pour accorder la permission, cliquez sur le bouton Accorder le consentement administrateur pour <organisation>.

Le statut de la permission de l’API passe ensuite à « Accordée pour <nom de l’organisation>« .

Obtention d’un jeton d’accès
Les requêtes envoyées à l’API Microsoft Graph requièrent un jeton d’accès. À ce stade, vous avez déjà votre ID d’application, votre clé secrète et votre ID de locataire. Ces trois informations sont nécessaires pour obtenir un jeton d’accès.
Le script PowerShell ci-dessous envoie la demande de jeton d’accès à l’endpoint de l’API Microsoft Graph. Vous devez mettre à jour les variables $client_id
, $client_secret
et $tenant_id
avec vos valeurs correctes. Ensuite, copiez et collez le code dans PowerShell pour demander le jeton d’accès.
La démonstration ci-dessous montre le script PowerShell ci-dessus en action. Remarquez que le jeton d’accès demandé est stocké dans la variable $token
.

Les jetons d’accès sont valides pendant une (1) heure à partir du moment où ils ont été acquis. Vous devrez demander un autre jeton d’accès après l’expiration du jeton précédent.
Envoyer un e-mail depuis Azure en utilisant l’API Microsoft Graph
Vous êtes maintenant prêt à utiliser l’API Microsoft Graph avec Azure pour
# Fournir l'adresse e-mail de l'expéditeur et du destinataire
$fromAddress = 'SENDER ADDRESS HERE'
$toAddress = 'RECIPIENT ADDRESS HERE'
# Spécifier le sujet de l'e-mail et le message
$mailSubject = 'This is a test message from Azure via Microsoft Graph API'
$mailMessage = 'This is a test message from Azure via Microsoft Graph API'
# NE MODIFIEZ RIEN CI-DESSOUS
# Construire la requête de l'API Microsoft Graph
$params = @{
"URI" = "https://graph.microsoft.com/v1.0/users/$fromAddress/sendMail"
"Headers" = @{
"Authorization" = ("Bearer {0}" -F $token)
}
"Method" = "POST"
"ContentType" = 'application/json'
"Body" = (@{
"message" = @{
"subject" = $mailSubject
"body" = @{
"contentType" = 'Text'
"content" = $mailMessage
}
"toRecipients" = @(
@{
"emailAddress" = @{
"address" = $toAddress
}
}
)
}
}) | ConvertTo-JSON -Depth 10
}
# Envoyer le message
Invoke-RestMethod @params -Verbose