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.

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 🙂

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian BURNEL

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.

Nombre de posts de cet auteur : 5500.Voir tous les posts

3 thoughts on “Envoyer un e-mail en PowerShell via Office 365

  • Hello,

    Une petite coquille : C’est Get-Credential (sans le s)

    Répondre
  • Bonjour,
    Merci beaucoup !
    Salutations.
    Sylvain Bonnet Passemar

    Répondre

Répondre à Florian Burnel Annuler la réponse

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.