====== Envoi de mail ====== --- //[[nekan@shyrkasystem.com|Nicolas THOREZ]] 2019/02/24 18:38// L'envoi de mail est très utile pour informer, transmettre un rapport, etc... Pour cela, nous pouvons utiliser la commande Send-MailMessage : * Référence : [[https://docs.microsoft.com/en-us/powershell/module/Microsoft.PowerShell.Utility/Send-MailMessage?view=powershell-6|Microsoft]] # On prépare d'abord les arguments de la commande # L'expéditeur $From = "test@shyrkasystem.com" # Le destinataire $To = "web@shyrkasystem.com" # A noter que l'on peut utiliser un tableau pour un envoi à plusieurs destinataires. Dans ce cas : $To = @("nekan@shyrkasystem.com","web@shyrkasystem.com") # Le sujet du mail $Subject = "Test" # Le corps du message au format TXT $Body = "Ceci est un message de test." # Je préfère cependant envoyer des mails au format HTML. Pour cela, je crée un fichier .htm contenant le corps du message. $Body = Get-Content .\Body.htm -Raw # On peut aussi vouloir ajouter la valeur d'une variable dans le corps du mail. Dans ce cas, on peut créer plusieurs # fichiers .htm et additionner les chaînes de caractère ou écrire un chaine de caractère contenant les balises HTML # et les variables. # Si le corps est en HTML, on rajoutera le paramètre -BodyAsHtml # Le serveur SMTP $SMTP = "mail.shyrkasystem.com" # Le port $Port = 465 # Si on utile SSL, on devra rajouter le paramètre -UseSsl # Les identifiants de connexion # Ils sont formés d'une combinaison d'un login et d'un mot de passe. # On utilisera SecureString pour ne pas laisser d'information sensible en clair. $User = "test@shyrkasystem.com" $Password = Get-Content -Path .\data.crypt | ConvertTo-SecureString $Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User,$Password # Au besoin, on peut ajouter une pièce jointe. Dans ce cas, il faudra ajouter le paramètre -Attachments $Attachment = ".\test.txt" # Il est préférable de rajouter un encodage pour être sûr de l'affichage de notre mail. $Encoding = [System.Text.Encoding]::UTF8 # Finalement, on ajoute tous nos arguments à la cmdlet Send-MailMessage -From $From -To $To -Subject $Subject -Body $Body -BodyAsHtml -SmtpServer $SMTP -Port $Port -UseSsl -Credential $Credential -Attachments $Attachment -Encoding $Encoding ~~DISCUSSION~~