Envoyer un e-mail via Powershell est possible depuis très longtemps. Cependant, des outils tiers sont souvent utilisés. L’envoi avec Microsoft Powershell est si simple et rapide à mettre en place.
DQo8cD48YnIvPg0KPHNjcmlwdCBhc3luYyBzcmM9Imh0dHBzOi8vcGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20vcGFnZWFkL2pzL2Fkc2J5Z29vZ2xlLmpzIj48L3NjcmlwdD4NCjwhLS0gVEVDSEZBUSAtIEltIEFydGlrZWwgLS0+DQo8aW5zIGNsYXNzPSJhZHNieWdvb2dsZSINCiAgICAgc3R5bGU9ImRpc3BsYXk6YmxvY2siDQogICAgIGRhdGEtYWQtY2xpZW50PSJjYS1wdWItOTI5NDg1MzEyMDc1NDI3OSINCiAgICAgZGF0YS1hZC1zbG90PSI1MDc3NjQ3MTY5Ig0KICAgICBkYXRhLWFkLWZvcm1hdD0iYXV0byINCiAgICAgZGF0YS1mdWxsLXdpZHRoLXJlc3BvbnNpdmU9InRydWUiPjwvaW5zPg0KPHNjcmlwdD4NCiAgICAgKGFkc2J5Z29vZ2xlID0gd2luZG93LmFkc2J5Z29vZ2xlIHx8IFtdKS5wdXNoKHt9KTsNCjwvc2NyaXB0Pjxici8+PC9wPg0K
Envoyer un e-mail avec Powershell
En tant que grand fan des scripts Powershell et des automatisations associées, j’utilise naturellement aussi la fonction d’envoi d’e-mails. Avec cela, je peux m’envoyer les résultats des tâches planifiées, transmettre des informations ou, en général, être informé de l’achèvement des tâches.
Windows Powershell est utilisé aujourd’hui pour ce qui se faisait auparavant à l’aide d’outils tiers encombrants tels que “blat”. Cela fait déjà partie du système d’exploitation sur chaque serveur Windows et ordinateur Windows et peut donc être utilisé sans trop d’effort. Et il peut être régulièrement mis à jour via Windows Update.
L’applet de commande qui peut être utilisée pour envoyer un e-mail via powershell est Envoyer-MailMessage. Les paramètres pour le serveur, le sujet, le corps, etc. doivent alors être donnés à cette commande. Une liste complète des possibilités peut être obtenue en saisissant Get-Help Send-MailMessage (éventuellement avec l’ajout -en ligne) – ou directement ici.
Un simple email avec un sujet et un texte serait alors envoyé comme ceci :
Send-MailMessage -To "[email protected]" -From "[email protected]" -Subject "Das ist der Betreff" -Body "Das ist der Inhalt" -SmtpServer "server.tech-faq.net"
Stocker les paramètres dans des variables
Comme j’utilise souvent la fonction dans des scripts, j’aime stocker les informations sur le serveur SMTP, le sujet, etc. dans des variables. Cela signifie que je n’ai pas besoin de rechercher la commande dans tout le script lorsque j’apporte des modifications, j’ai juste besoin de modifier le contenu de la variable (généralement au début du script). Elle ressemble alors à ceci, par exemple :
$to = "[email protected]"
$from = "[email protected]"
$mailserver = "server.tech-faq.net"
$Betreff = "Das ist der Betreff"
$Body = "Das ist der Inhalt"
# Skriptinhalt
# .
# .
# .
Send-MailMessage -To $to -From $from -Subject $Betreff -Body $body -SmtpServer $mailserver
Envoyer du texte avec des trémas via un e-mail Powershell
Si les trémas et les caractères spéciaux ne s’affichent pas correctement dans un e-mail envoyé via PowerShell, mais ont été convertis en hiéroglyphes, cela est dû à un mauvais encodage de l’e-mail. Ici alors le paramètre doit Codage être utilisé. Avec le paramètre suivant, les trémas et les caractères spéciaux sont transmis correctement : (ajoutez simplement à la fin)
Send-MailMessage -To ....... -Encoding ([System.Text.Encoding]::UTF8)
Avis de non-responsabilité pour CMDlet Send-MailMessage
Utilisé par défaut Envoyer-MailMessage une connexion non cryptée au serveur de messagerie. Avec le paramètre “-UtiliserSSL‘ le cryptage peut être utilisé. Microsoft a maintenant déclaré le CMDlet obsolète car il ne garantit pas des connexions sécurisées au serveur SMTP. Cependant, il n’existe actuellement aucun remplacement pour le CMDlet dans Windows PowerShell. Il doit donc toujours être utilisé avec précaution.
Intéressant aussi :
Cet article est comme tous les autres sur ce site gratuit pour vous et j’espère avoir pu t’aider. Si vous le souhaitez, vous pouvez accorder une petite attention à ce blog sous la forme d’un petit don (Pay Pal) ou via le Liste de souhaits Amazon envoyer.