2011-12-22 27 views
33

Voglio testare un codice Java per l'invio di e-mail. Non voglio utilizzare alcun client di posta commerciale o connettermi a fornitori di posta esterni (come Gmail o Yahoo). Vorrei sapere se esiste un software che consente a un utente di configurare indirizzi e-mail fittizi e server (localmente) che possono essere utilizzati nel mio software per inviare e ricevere messaggi. Voglio solo testare la funzionalità del codice Java.Un semplice server SMTP locale

+0

Controlla questo .. http://enbiso.github.io/dummy-smtp-server/ –

risposta

20

Per il test dell'e-mail, provare Dumbster. Da quella pagina:

The Dumbster è un server SMTP falso molto semplice progettato per le applicazioni di test di sistema delle unità e che inviano messaggi di posta elettronica. Risponde a tutti i comandi SMTP standard ma non recapita i messaggi all'utente. I messaggi vengono memorizzati all'interno di Dumbster per l'estrazione successiva e la verifica .

Il Dumbster si inserisce molto facilmente nella tua strategia di test. Come finché l'applicazione comunica con un server di posta elettronica tramite SMTP, è possibile utilizzare il Dumbster per testare l'applicazione senza modifiche al codice.

+0

Ah, questo è l'altro che stavo cercando di ricordare! Sapevo che lo avrei riconosciuto non appena l'avessi visto, ma non riuscivo a trovare il nome. – Argyle

+0

Dumbster è [rotto] (http://sourceforge.net/p/dumbster/bugs/15/). –

+0

_Come nota a margine: _ ci sono [parecchi _forks_] (https://github.com/search?utf8=%E2%9C%93&q=dumbster&type=) del "Dumbster" originale che migliorano la sua funzionalità in modi diversi. – informatik01

7

Prova GreenMail. È orientato all'utilizzo di JUnit, ma dovrebbe fare ciò di cui hai bisogno. Puoi eseguirlo in un'istanza di JBoss o fare in modo che i test JUnit inviino la posta a se stessi, in base alle tue esigenze specifiche.

Ci sono alcuni altri software simili là fuori, ma quello è quello che ho usato ed è stato ragionevolmente soddisfatto.

8

È possibile utilizzare Wiser nella libreria SubEthaSMTP, lo scopo di Wiser è esattamente quello che si desidera, test dell'unità.

+0

Codice di esempio più saggio: http://code.google.com/p/subethasmtp/wiki/Wiser – palacsint

+0

Anche rotto, quando il mio test di unità invia 2 email html più saggia riceve 3 in qualche modo. GreenMail lo gestisce correttamente, per fortuna. – okutane

+0

okutane: Immagino che tu abbia inviato due mail con tre destinatari in totale. L'API di Wiser restituisce i messaggi per destinatario. Non si trova infatti nell'ultima versione rilasciata, ma il trunk contiene un JavaDoc aggiornato per rendere questo più ovvio: "Il numero di transazioni di posta e il numero di messaggi possono essere diversi." Se un messaggio viene ricevuto con più destinatari in un singolo mail transazione, quindi l'elenco conterrà più istanze WiserMessage, uno per ciascun destinatario. " –

3

su Leopard è possibile avviare un locale server SMTP (Postfix) su OS-X Leopard

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

prima del tag di chiusura alla fine:

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

quindi iniziare la cosa con

sudo postfix start 

ora si verifica se il servizio è in esecuzione con:

telnet localhost 25 
3

Il javamail-file-transport salva le e-mail sui file invece di inviarli tramite il server SMTP.

Vedere il progetto javaMail extensions su GitHub.

Aggiunge trasporto file di che consente:

  • Salva mail ai file in formato text invece di inviare loro
  • Salva mail ai file in formato mbox invece di inviare loro
  • Inserite qui il login invece di inviare e-mail
12

Preferisco Fake SMTP per questo. È un'app desktop (racchiusa in un file jar). Poiché è scritto in Java, puoi eseguirlo sia da Linux/Mac/Windows

+0

Questa è una soluzione non invasiva e pulita, almeno con applicazioni a molla – Stackee007

1

Ho usato un paio di volte il Mailtrap e posso consigliarlo.

0

È possibile utilizzare smtp4dev. Si prega di scoprire più dettagli here.

0

use the Aspirin Dalla documentazione: Aspirin è un server SMTP di sola invio integrabile per sviluppatori Java.

Problemi correlati