mercredi 8 octobre 2014

Envoyer un mail en powershell

La commande à utiliser en powershell pour envoyer un email est Send-MailMessage
Voici quelques exemples pour utiliser cette fonction:

Envoyer un mail en texte:

Send-MailMessage -To lui@blabla.com -From moi@blabla.com -Subject "Ceci est un test" -SmtpServer "smtpServer" -Body "Ceci est le corps du message"

Envoyer un mail dont le body est un fichier:

Send-MailMessage -To lui@blabla.com -From moi@blabla.com -Subject "Ceci est un test" -SmtpServer "smtpServer" -Body (get-content c:\file.txt -Raw)

 Envoyer un mail dont le body est un fichier html:

Send-MailMessage -To lui@blabla.com -From moi@blabla.com -Subject "Ceci est un test" -SmtpServer "smtpServer" -Body (get-content c:\file.html -Raw) -BodyAsHtml

Une alternative à Get-Content pour récupérer le contenu d'un fichier est de passer par la fonction statique System.IO.File.ReadAllText :

Send-MailMessage -To lui@blabla.com -From moi@blabla.com -Subject "Ceci est un test" -SmtpServer "smtpServer" -Body ([Io.File]::ReadAllText('H:\temp\test\ect988E.html')) -BodyAsHtml -Encoding 'UTF8'


Sources