23/12/2024

Office 365PowerShell

Envoyer un e-mail en PowerShell via Office 365

I. Présentation

Le service de messagerie inclus à Office 365 peut-être utilisé pour envoyer des e-mails à partir de PowerShell. Le tout en s'authentifiant avec un compte existant sur votre tenant Office 365, ce qui peut s'avérer pratique dans vos scripts pour envoyer une notification.

Je vais vous expliquer dans ce tutoriel comment procéder. Avant de commencer, vous devez disposer d'un compte Office 365 sur le tenant que vous souhaitez utiliser. Si cela est possible, créez un compte dédié à l'envoie de notifications via PowerShell.

Désormais, l'utilisation du cmdlet Send-MailMessage est déconseillée par Microsoft. Nous vous recommandons de lire ces articles :

II. Le script pour envoyer un e-mail via Office 365

On va définir un ensemble de paramètres avec des variables, notamment : le serveur SMTP, l'adresse e-mail de l'expéditeur (correspondante au tenant sur lequel on s'authentifie), l'adresse e-mail du destinataire, les credentials de connexion à Office 365, ainsi que l'objet et le contenu de l'e-mail.

$SMTPServer = "outlook.office365.com"
$SMTPExpediteur = "[email protected]"
$SMTPDestinataire = "[email protected]"
$Credentials = Get-Credential
$EmailSubject = "E-mail via Office 365"
$EmailContent = "Bonjour, voici un e-mail envoyé via authentification sur Office 365"

Pour envoyer le message électronique, on va s'appuyer sur le cmdlet "Send-MailMessage" :

Send-MailMessage -Verbose -SmtpServer $SMTPServer `
   -From $SMTPExpediteur -To $SMTPDestinataire -Credential $Credentials `
   -Subject $EmailSubject `
   -Body $EmailContent -BodyAsHtml -UseSsl -Port 587

Il est indispensable d'utiliser les options "UseSsl" et "Port" avec la valeur 587 pour envoyer l'e-mail par Office 365. Lorsque vous allez exécuter ce bout de code, vous devrez saisir vos identifiants car ils ne sont pas intégrés au script. Ensuite, vous devriez recevoir votre e-mail !

Ce qui n'est pratique c'est qu'il faut saisir les identifiants à chaque fois... L'idéal serait de pouvoir stocker ses identifiants dans le script. Plusieurs méthodes pour cela... D'où l'intérêt de PowerShell, il y en a une qui est relativement intéressante via l'utilisation d'une clé AES. Sur le blog Altaro, il y a un article sur le sujet : PowerShell - AES Key

J'essaierai de faire un autre article sur le storage sécurisé des credentials PowerShell. En attendant, profitez bien d'envoyer vos e-mails 🙂

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

5 commentaires sur “Envoyer un e-mail en PowerShell via Office 365

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.