PowerShell – Send-MailMessage : envoyer un e-mail à plusieurs destinataires

I. Présentation

Pour envoyer un e-mail en PowerShell, Microsoft a créé le cmdlet Send-MailMessage qui est inclus nativement à PowerShell. Dans certains cas, il peut être intéressant d'envoyer l'e-mail à plusieurs destinataires, mais comment faire ? Je vous montre comment procéder dans ce tutoriel.

II. Send-MailMessage : plusieurs destinataires

Le cmdlet Send-MailMessage contient un ensemble de paramètres, y compris le serveur SMTP (-SmtpServer), l'adresse e-mail de l'expéditeur (-From), le sujet (-Subject) ou encore le corps de l'e-mail (-Body). En ce qui nous concerne, c'est le paramètre -To qui nous intéresse et qui sert à indiquer l'adresse de destination. On pourrait tout simplement indiquer les adresses e-mails à la suite au niveau de la commande, mais si l'on récupère cette liste depuis une variable, un fichier de config ou autre, ce ne sera pas possible.

Commençons par déclarer la variable $Destinataires qui va contenir la liste des destinataires séparés par une virgule :

$Destinataires = "florian@server.net","admin@server.net","fb@server.net"

Cette variable sera de type string c'est-à-dire une chaîne de caractères. Pour l'envoyer comme valeur du paramètre -To, nous devons avoir un tableau de chaînes de caractères. C'est ce que nous allons faire avec la variable $To cette fois-ci, en découpant notre chaîne précédente à chaque fois qu'une virgule est rencontrée (en guise de séparateur).

[string[]]$To = $Destinataires.Split(',')

Si l'on affiche la variable, on obtient :

Il ne reste plus qu'à utiliser notre variable $To au niveau de la commande Send-MailMessage. Finalement, c'est assez simple mais il faut savoir comment s'y prendre.

Send-MailMessage -SmtpServer smtp.server.net -From test@server.net -To $To -Subject "test" -Body "test" -BodyAsHtml

Le code complet :

$Destinataires = "florian@server.net","admin@server.net","fb@server.net"
[string[]]$To = $Destinataires.Split(',')
Send-MailMessage -SmtpServer smtp.server.net -From test@server.net -To $To -Subject "test" -Body "test" -BodyAsHtml

Voilà, votre e-mail sera envoyé à tous les destinataires de votre liste ! 👏

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

Florian B.

Co-Fondateur d'IT-Connect, je souhaite partager mes connaissances et expériences avec vous, et comme la veille techno' est importante je partage aussi des actus.

florian has 2042 posts and counting.See all posts by florian

Une pensée sur “PowerShell – Send-MailMessage : envoyer un e-mail à plusieurs destinataires

  • Sauf erreur il n’y a pas besoin de faire un split car « $To » est de type array of string et « -To » accepte ce type de variable.

    Ce qui simplifie un peu la commande :
    $To= « florian@server.net », »admin@server.net », »fb@server.net »
    Send-MailMessage -SmtpServer smtp.server.net -From test@server.net -To $To -Subject « test » -Body « test » -BodyAsHtml

    Répondre

Laisser un commentaire

Votre adresse de messagerie 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.