Envoi d'e-mails depuis PowerShell via Exchange Server

Si vous souhaitez en savoir plus sur l’envoi d’e-mails depuis PowerShell, vous êtes au bon endroit.

De nombreux administrateurs et utilisateurs définissent les messages prédéfinis qu'ils doivent écrire encore et encore.

A lire aussi :Planificateur de tâches pour exécuter des scripts PowerShell et des alertes par e-mail

Au lieu d’écrire le message encore et encore, ils l’enregistrent comme modèle et y apportent quelques modifications mineures, puis envoient l’e-mail.

De la même manière, si vous devez envoyer une sorte de rapport quotidien sur l'activité de l'utilisateur.

Le moyen le plus rapide d'envoyer le message est un PowerShell.

Vous pouvez enregistrer les messages prédéfinis, apporter les modifications nécessaires et les coller dans PowerShell pour envoyer l'e-mail.

Cependant, vous pouvez enregistrer le code sous forme de script et exécuter le même script pour envoyer le message quotidiennement.

Même avec l'aide dePowerShell, vous pouvez également envoyer un e-mail avec une pièce jointe.

Ainsi, dans cet article, nous apprendrons comment envoyer un simple email via PowerShell.

Par conséquent, nous verrons également comment générer un rapport CSV et envoyer un e-mail avec une pièce jointe.

Comment envoyer un e-mail avec PowerShell sans pièce jointe

Avant d'envoyer un e-mail via PowerShell, assurez-vous qu'un service de messagerie est exécuté dans votre organisation, tel qu'Exchange Server ou toute autre plate-forme de messagerie prenant en charge cette fonction.

Ici, dans notre cas, nous avonsMicrosoft Exchange 2019en cours d'exécution dans l'organisation.

Alors, avec l'aide deÉchange, nous enverrons l'e-mail avec PowerShell.

Cependant, nous avons besoin d’un code simple pour envoyer un email sans pièce jointe.

Formatez le code ci-dessous en fonction de vos coordonnées

$sendMailMessageSplat = @{
    From = 'Administrator <[email protected]>'
    To = 'Jack <[email protected]>'
    Subject = 'Test mail'
    Body = 'Pls find the user daily report'
    smtpServer = 'mail.techijack.net' 
}
Send-MailMessage @sendMailMessageSplat

Vous pouvez modifier « De, À, Objet, Corps et SmtpServer »

Assurez-vous de mettre votre adresse e-mail valide et le serveur SMTP

Une fois le code ci-dessus exécuté, nous avons reçu un email dans la boîte de réception de l'utilisateur Jack comme ci-dessous

Nous avons donc envoyé avec succès un e-mail avec PowerShell.

Comment envoyer un e-mail depuis PowerShell avec une pièce jointe

Envoyer un e-mail avec une pièce jointe est un peu délicat.

Ici, nous utiliserons le script pour créer d'abord unrapportsdossier à l'intérieur dulecteur C

Par conséquent, nous générerons le rapport CSV pour la dernière activité de connexion de tous les utilisateurs par le nom du rapport et la date actuelle.

Enfin, nous joindrons le rapport généré à l'e-mail et l'enverrons à l'utilisateur, jack.

Pour cela, nous utiliserons le script ci-dessous

$Date = Get-Date -Format "yyyy-MM-dd"
$ReportFolder = "C:Reports"
if (!(Test-Path $ReportFolder)) {
    New-Item -ItemType Directory -Path $ReportFolder
}
$ReportFile = "$ReportFolderDailyReport_$Date.csv"

# Export AD Users
$Users = Get-ADUser -Filter * -Property SamAccountName, DisplayName, Enabled, LastLogonDate
$Users | Export-Csv $ReportFile -NoTypeInformation -Encoding UTF8

# Send Email with Report Attachment
$sendMailMessageSplat = @{
    From        = 'Administrator <[email protected]>'
    To          = 'Jack <[email protected]>'
    Subject     = 'Daily User Report'
    Body        = 'Please find the attached user daily report.'
    SmtpServer  = 'mail.techijack.net'
    Attachments = $ReportFile
}

Send-MailMessage @sendMailMessageSplat

Vous pouvez définir le chemin du rapport, l'adresse e-mail et le serveur SMTP en fonction de vos paramètres.

Vous pouvez tester ce code et s'il fonctionne, enregistrez-le en tant que fichier de script « DailyReport.ps1 ».

Comme dans notre cas, nous enregistrons ce fichier de script dans le lecteur C.

Nous allons exécuter le script ci-dessous

c:dailyReport.ps1

Une fois le script exécuté avec succès, un e-mail sera envoyé avec une pièce jointe au rapport.

Et notre fichier de rapport CSV apparaîtra comme ci-dessous

Ainsi, vous pouvez ainsi envoyer le rapport quotidien en pièce jointe à votre e-mail.

Prise en compte de l'automatisation

S'il s'agit d'une tâche quotidienne, obtenir les informations de la dernière connexion de tous les utilisateurs de l'organisation.

Vous pouvez essayer d'automatiser le processus à l'aide du planificateur de tâches et exécuter la tâche quotidiennement.

Par conséquent, il exécutera le même script dans un intervalle de temps donné et automatiquement, vous recevrez le rapport quotidien chaque jour à une heure fixe.

Conclusion

Pour faciliter votre travail administratif grâce au reporting automatique.

Un administrateur doit utiliser les multiples scripts pour générer le rapport au format CSV ou HTML.

Utilisez PowerShell pour exécuter le script et envoyer le rapport en pièce jointe à la partie responsable.

Par conséquent, à des fins d'automatisation, vous pouvez planifier la tâche pour exécuter le script particulier à une heure précise afin de recevoir une alerte par e-mail.

En cas de questions sur cet article, n'hésitez pas à contacter Techi Jack

J'espère que vous aimerez également d'autres tutoriels sur Exchange Server

De plus, si vous souhaitez regarder la vidéo sur l'envoi d'un e-mail à partir d'un script PowerShell, regardez la vidéo ci-dessous.

Related Posts