web-dev-qa-db-fra.com

Comment développer et tester une application qui envoie des e-mails (sans remplir la boîte aux lettres de quelqu'un avec des données de test)?

J'ai beaucoup d'applications qui envoient des e-mails. Parfois, c'est un ou deux messages à la fois. Parfois, ce sont des milliers de messages.

En développement, je teste généralement en substituant ma propre adresse à toute adresse de destinataire. Je suis sûr que c'est ce que tout le monde fait, jusqu'à ce qu'ils en aient assez et trouvent une meilleure solution.

Je pensais à créer un serveur SMTP factice qui attrape simplement les messages et les sauvegarde dans une base de données SQLLite, ou un fichier mbox, ou autre.

Mais sûrement un tel outil existe déjà? Comment testez-vous l'envoi d'e-mails?

128
Patrick McElhaney

J'ai rencontré le même problème il y a quelques semaines et j'ai écrit ceci: http://smtp4dev.codeplex.com

Serveur SMTP factice compatible Windows 7/Vista/XP/2003/2010. Se trouve dans la barre d'état système et ne remet pas les messages reçus. Les messages reçus peuvent être rapidement visualisés, enregistrés et la source/structure inspectée. Utile pour tester/déboguer un logiciel qui génère des e-mails.

84
rnwood

Il y a quelques années, je suis tombé sur la solution suivante pour la plate-forme .NET.

<system.net>
  <mailSettings>
    <smtp deliveryMethod="SpecifiedPickupDirectory">
      <specifiedPickupDirectory pickupDirectoryLocation="C:\TestMailMessages\" />
    </smtp>
  </mailSettings>
</system.net>

Placez simplement le code ci-dessus dans votre App.config ou Web.config. Lorsque vous envoyez un message maintenant, il sera stocké sous forme de fichier dans le répertoire que vous avez fourni en tant que "pickupDirectoryLocation". Fonctionne comme un charme.

73
Joop

Il existe maintenant une version Web de Papercut.

De plus, la version basée sur l'application fonctionne bien pour moi.

18
Adam Seabridge

Dumbster pourrait être ce que vous voulez alors. C'est un faux serveur SMTP open source écrit en Java. Il prend la place d'un véritable serveur SMTP, vous pouvez donc tester votre application dans un cadre réaliste, sans avoir de code stubed. Vous pouvez vous assurer que les bons messages sont envoyés au serveur SMTP sans réellement remettre les messages.

14
Fredou

Ceci est similaire au smtp4dev sauf implémenté dans Java donc il fonctionne pour les développeurs non-Windows.

http://www.aboutmyip.com/AboutMyXApp/DevNullSmtp.jsp

9
txyoji

J'utilise "Test Mail Server Tool" de ToolHeap depuis des années.

http://www.toolheap.com/test-mail-server-tool/

Il s'agit d'une application simple qui s'exécute dans votre barre d'état système et transfère les e-mails dans un dossier. Il peut également être configuré pour ouvrir chaque e-mail dans votre programme de messagerie par défaut.

6
Adrian Clark

Il y a aussi Papercut et Neptune , dommage que rien de tout cela ne puisse être exécuté de manière portable.

6
Alix Axel

si vous utilisez Java j'utiliserais Wiser : Wiser est un simple serveur SMTP que vous pouvez utiliser pour les applications de test unitaire qui envoient du courrier.

5
Persimmonium

Vous pouvez également utiliser netDumbster.

http://netdumbster.codeplex.com/

3
Carlos Mendible