Powershell – Générer des messages de test réalistes

Pour bien observer son environnement de messagerie, il est parfois nécessaire de simuler une activité en envoyant des messages de test pour s’assurer du bon fonctionnement des différentes briques de la plate-forme. C’est particulièrement vrai dans un environnement Exchange.

C’est pour répondre à ce type de problématique que j’ai conçu ce script fortement inspiré d’un post de Jeff Hicks que je salue et remercie au passage.

L’utilisation du script repose sur un certain nombre de fichiers mais son fonctionnement reste très simple.

Le répertoire de travail contient :

  • Le script Send-RandomEmails.ps1
  • Un fichier subject.txt qui contient une liste de sujet de messages récupérés dans ma propre boite aux lettres. Je vous encourage évidemment à remplir ce fichier avec des choses qui vous parlent.
  • Un fichier recipients.txt qui contient la liste des destinataires possibles des messages qui seront générés. En étudiant un peu le script, vous verrez que vous pourrez modifier le nombre maximal de destinataires pour chaque message, la manière de définir ces destinataires (en les piochant directement dans votre environnement par exemple avec un simple Get-Mailbox | Select PrimarySmtpAddress, …)
  • Un ensemble de fichier attach_*.*. Ce sont des pièces jointes de différentes taille que j’utilise pour effectuer différents tests, notamment pour tester les restrictions de tailles définies au niveau des connecteurs exchange. J’ai utilisé un des scripts définis dans le billet précédent pour générer des fichiers de différentes tailles.
  • Un ensemble de fichiers body_*.txt contenant des contenus de vrai messages que j’utilise pour donner plus de réalisme à la simulation.

Principe de fonctionnement :

Le script accepte un unique paramètre $count, qui permet de définir le nombre de message à générer et envoyer.

Le script prépare une série de messages pour lesquels :

  • L’expéditeur est choisi de manière aléatoire dans la liste $sender
  • Le ou les destinataires sont choisis de manière aléatoire dans la liste $recipients
  • Le sujet du message est pris de manière aléatoire dans le contenu du fichier subject.txt
  • Le corps du message est pris également de manière aléatoire dans un des fichiers body_*.*
  • Une pièce jointe est choisie dans la liste des fichiers attach_*.*
  • Entre chaque message, le script fait une pause d’un délai aléatoire (défini par la variable $MaxDelay)

Un exemple de message de test reçu :

Le script est disponible ici. N’hésitez pas à commenter et à me faire part de vos propres retour d’expérience.

Laisser un commentaire