Envoyer des mails en powershell est pratique : rapports, scripts, notification, etc.
Et ça tombe bien car c'est très simple.
Avec PowerShell V2 et supérieur
$enc = New-Object System.Text.utf8encoding $corps="<h1>Hello BM :)</h1>Voilà un très joli message avec accents : à" Send-MailMessage -From 'expediteur@email.com' -To 'destinataire@email.com' -Subject 'le sujet du mail' -Body $corps -SmtpServer 'smtp.fai.fr' -BodyAsHtml -Encoding $enc
Pour avoir une priorité haute ajoutez ceci (source):
-Priority High
Vous pouvez utiliser directement des accents brut mais aussi en HTML comme dans l'exemple. Dans les deux cas il seront correctement inteprétés, j'ai testé dans Hotmail, Gmail, Zimbra et Yahoo.
Il faut que le relai SMTP autorise l'envoi de mail sans authentification, c'est souvent le cas avec celui de votre FAI.
C'est simple et rapide !
Avec PowerShell V1
Je vous donne quand même l'ancienne méthode au cas où.
$smtp = new-object system.net.mail.smtpClient('smtp.fai.fr') $msg = new-object System.Net.Mail.MailMessage $msg.IsBodyHtml = $true $msg.From = "expediteur@email.com" $msg.To.Add("destinataire@email.com") $msg.Subject = "le sujet du mail" $msg.Body = "<h1>Hello BM :)</h1>Voilà un très joli message avec accents : à" $smtp.send($msg)
Tout aussi efficace.
Même chose pour la priorité à insérer avant la dernière ligne :
$msg.Priority="high"
Un point sur les versions PowerShell
Nativement livré :
- PowerShell 1.0 (2006) : Windows Server 2008
- PowerShell 2.0 (2009) : Windows 7, Windows Server 2008 R2
- PowerShell 3.0 (2012): Windows 8, Windows Server 2012
- PowerShell 4.0 (2013) : Windows 8.1, Windows Server 2012 R2
- PowerShell 5.0 (2014) : Windows 10
Installable :
- PowerShell 1.0 : XP SP2, XP SP3, Server 2003 SP1, Server 2003 SP2, Server 2003 R2, Vista, Vista SP2
- PowerShell 2.0 : XP SP3, Server 2003 SP2, Vista SP1, Vista SP2, Server 2008 SP1, Server 2008 SP2
- PowerShell 3.0 : 7 SP1, Server 2008 SP2, Server 2008 R2 SP1
- PowerShell 4.0 : 7 SP1, Server 2008 R2 SP1, Server 2012
- PowerShell 5.0 : 8.1, Server 2012 R2
En cas de souci
Si vous avez des soucis d'accent dans l'email reçu cela provient de l'encodage de votre fichier ps1, dans Notepad++ menu Encodage > Convertir en ANSI (à ne pas confondre avec Encoder en ANSI). Si vos accents posent toujours problème forcez en UTF8.
Si vous ne recevez pas l'email et qu'aucune erreur n'apparaît dans la fenêtre powershell lors de l'exécution en mode console vérifiez vos spams. Il y a de fortes chances que l'email y soit, surtout si vous utilisez un domaine ayant un SPF ne concordant pas avec votre IP de sortie.
Enfin pour envoyer des mails avec des arguments c'est par ici.
Auteur : Mr Xhark
Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter
Le premier commentaire c'est pour vous 👇