L’objectif
Lors de la mise en place d’un POC avec la messagerie, vous pouvez avoir besoin d’injecter quelques mails afin de tester certaines fonctionnalités. Par exemple, pour tester la fonctionnalité d’archivage avec EntrepriseVault de Symantec, il faut avoir des mails sur le serveur pour que l’archivage puisse fonctionner et qu’il soit possible de visualiser le résultat.
Je vous propose ce script, qui va générer des mails de taille différente (grâce à l’objet System.Random de PowerShell) et remplir une boite mail.
Le script ci dessous va envoyer des mails à une seule et même boite aux lettres. Toutefois, toujours grâce à PowerShell et aux cmdlets Exchange, de rajouter une boucle sur tout ou partie des utilisateurs de messagerie de votre maquette.
Le script CreateRandomMail.ps1
# Adresse du serveur mail
$PSEmailServer = "lab-mbx1.lab.lan"
# Adresse mail de la BAL à remplir
$MailTo = "user1@lab.lan"
# Préfixe pour le sujet des mails
$MailSubject = "MailFromScript_"
# Texte de base qui sera dans le corps du mail
$MailBody = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam mauris massa, facilisis id aliquet sit amet, volutpat ac arcu. Proin hendrerit nunc pulvinar tortor iaculis convallis. In ultrices posuere quam, non pellentesque velit interdum id. Nam vel condimentum tortor. Proin ligula urna, ornare eget rhoncus eget, rhoncus a augue. Nulla. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam mauris massa, facilisis id aliquet sit amet, volutpat ac arcu. Proin hendrerit nunc pulvinar tortor iaculis convallis. In ultrices posuere quam, non pellentesque velit interdum id. Nam vel condimentum tortor. Proin ligula urna, ornare eget rhoncus eget, rhoncus a augue. Nulla. "
# Créer l'objet pour générer des nombres
$random = New-Object System.Random
# Boucle pour 2000 mails (à changer suivant votre besoin)
For ($i=0;$i -lt 2000;$i++){
# Génère un nombre entre 1 et 100 (à changer suivant votre besoin)
$MailNb = $random.Next(1,100)
# Multiplie le texte X fois grâce au nombre généré
$Result = $MailBody * $MailNb
# Génère l'adresse mail de l'expéditeur
$MailFrom = "MailByScript_".$MailNb."@lab.lan"
# Envoi le mail
Send-MailMessage -From $MailFrom -To $MailTo –Subject $MailSubject$MailNb -Body $Result
}
Personnaliser le script
La script tel quel envoi 2000 mails dans la même BAL. Pour changer la quantité, modifiez la ligne :
For ($i=0;$i -lt 2000;$i++){
Remplacez 2000 par le nombre de mail que vous voulez dans chaque BAL.
Si vous avez besoin de générer des mails de grande taille, il faut modifier la ligne : $MailNb = $random.Next(1,100)
Et changer les valeurs 1,100. 1 étant le nombre minimum de copie du texte de base et 100 le nombre maximum de fois où le texte de base sera copié dans le corps du mail.
Attention à ne pas mettre des valeurs trop grandes ! Plus les valeurs sont hautes, plus le script mettra de temps à s’exécuter.
Utiliser le script
Ouvrez une console PowerShell sur un serveur de la maquette (si vous utilisez une boucle sur tous les utilisateurs avec les cmdlets Exchange, il faut ouvrir la console sur un serveur disposant des outils de gestion Exchange). Dans la console, faites appel au script. Aucun paramètre n’est nécessaire.
Après quelques minutes ou plusieurs heures (suivant la quantité et le nombre de destinataires), vous aurez un peu de volumétrie dans la messagerie pour travailler votre lab !