2011-12-22 32 views
33

Quiero probar un código Java para enviar correos electrónicos. No quiero utilizar ningún cliente de correo comercial ni conectarme a ningún proveedor de correo externo (como Gmail o Yahoo). Me gustaría saber si hay algún software que permita a un usuario configurar direcciones de correo electrónico falsas y servidores (localmente) que se pueden usar en mi software para enviar y recibir correos. Solo quiero probar la funcionalidad del código de Java.Un simple servidor local SMTP

+0

Compruebe esto ... http://enbiso.github.io/dummy-smtp-server/ –

Respuesta

20

Para las pruebas de correo electrónico, intente Dumbster. Desde esa página:

El Dumbster es un muy simple servidor SMTP falso diseñado para aplicaciones de pruebas unitarias y sistema que envían mensajes de correo electrónico. Responde a todos los comandos SMTP estándar pero no entrega mensajes al usuario. Los mensajes se almacenan dentro del Dumbster para su posterior extracción y verificación .

El Dumbster se inserta muy fácilmente en su estrategia de prueba. Como siempre que su aplicación se comunique con un servidor de correo electrónico utilizando SMTP, entonces el Dumbster se puede utilizar para probar la aplicación sin cambios de código.

+0

¡Ah, ese es el otro que estaba intentando recordar! Sabía que lo reconocería tan pronto como lo viera, pero no pude encontrar el nombre. – Argyle

+0

Dumbster está [roto] (http://sourceforge.net/p/dumbster/bugs/15/). –

+0

_ Como nota al margen: _ hay [varios _forks_] (https://github.com/search?utf8=%E2%9C%93&q=dumbster&type=) del "Dumbster" original que mejoran su funcionalidad de diferentes maneras. – informatik01

7

Probar GreenMail. Está orientado al uso de JUnit, pero debe hacer lo que necesita. Puede ejecutarlo en una instancia de JBoss o hacer que sus pruebas JUnit se envíen a sí mismos, según sus necesidades específicas.

Hay algunos otros bits de software similares, pero ese es el que he usado y estaba razonablemente satisfecho con él.

8

Puede usar Wiser en la biblioteca SubEthaSMTP, el propósito de Wiser es exactamente lo que quiere, pruebas unitarias.

+0

Código de ejemplo de Wiser: http://code.google.com/p/subethasmtp/wiki/Wiser – palacsint

+0

También roto, cuando mi prueba de unidad envía 2 html correos electrónicos más sabios recibe 3 de alguna manera. GreenMail maneja eso correctamente, afortunadamente. – okutane

+0

okutane: Supongo que envió dos correos con tres destinatarios en total. La API más inteligente devuelve correos electrónicos por destinatarios. De hecho, no está en la última versión publicada, pero el enlace contiene un JavaDoc actualizado para hacerlo más obvio: "El número de transacciones de correo y el número de correos pueden ser diferentes. Si se recibe un mensaje con varios destinatarios en un solo correo electrónico transacción, luego la lista contendrá más instancias de WiserMessage, una para cada destinatario. " –

3

en Leopard se puede iniciar un SMTP del servidor local (Postfix) en OS-X Leopard

sudo vi /System/Library/LaunchDaemons/org.postfix.master.plist 

antes de la etiqueta de cierre al final:

<key>RunAtLoad</key> <true/> <key>KeepAlive</key> <true/> 

a continuación, inicie la cosa con

sudo postfix start 

ahora comprueba si el servicio se está ejecutando con:

telnet localhost 25 
3

javamail-file-transport guarda los correos electrónicos en archivos en lugar de enviarlos a través del servidor SMTP.

Ver el proyecto javaMail extensions en GitHub.

Se añade el transporte archivo que permite:

  • Guardar electrónicos a archivos en text formato en lugar de enviarlos
  • Guardar electrónicos a archivos en mbox formato en lugar de enviarlos
  • añadir información de registro en lugar de enviar un correo electrónico
12

Prefiero Fake SMTP para esto. Es una aplicación de escritorio (empaquetada en un archivo jar). Dado que está escrito en Java, puede ejecutarlo desde Linux/Mac/Windows

+0

Esta es una solución no invasiva y limpia, al menos con aplicaciones de resorte – Stackee007

0

Puede usar smtp4dev. Por favor, encuentre más detalles here.

0

use the Aspirin De los documentos: Aspirin es un servidor SMTP de solo envío incrustable para desarrolladores de Java.