Spesso collaudo la mia applicazione con una copia di un database attivo, ma devo fare attenzione a non eseguire alcuna azione che causa l'invio di un'email a un utente. Mi piacerebbe avere un modo per configurare la primavera in modo tale che quando sono in modalità di sviluppo o test, che nessuna email verrà inviata agli utenti reali. Idealmente, mi piacerebbe che tutte le e-mail che avrebbero dovuto andare all'utente venissero invece a una casella di posta che posso esaminare. E non voglio cambiare alcun codice per farlo accadere, solo i file di configurazione xml.Modifica impostazioni e-mail Spring in base alla modalità dev/test/prod
Sto già utilizzando PropertyPlaceholderConfigurer e sto leggendo in diversi file di proprietà in base a se sono in esecuzione in modalità produzione, test o dev. Configuro un JavaMailSenderImpl in base ai valori nel file delle proprietà. Sto anche usando un SimpleMailMessage per creare un modello con l'indirizzo Da.
Idealmente ci sarebbe un modo per riscrivere l'indirizzo TO di tutte le e-mail in uscita a un account di prova se sto correndo in modalità dev o test.
Il mio primo pensiero è stato quello di utilizzare un server SMTP diverso per dev e test. Ma poi dovrei anche gestire un altro server di posta, e dovrei personalizzarlo in modo che non invii posta a nessun'altra parte, ma lo invii invece a una singola casella di posta. Non voglio aggiungere ulteriori requisiti di gestione, se possibile.
Forse questa è la soluzione migliore, ma sembra che ci dovrebbe essere un modo per intercettare le e-mail e cambiare il destinatario.
Qualcuno ha già avuto a che fare con questo problema? Che soluzioni hai trovato?
come stai eseguendo i tuoi test? – Bozho
bozho - al momento, non ho alcun test unitario che coinvolga la posta elettronica. il sistema invia solo email quando viene creato un nuovo account. ma ora ho bisogno di espanderlo per inviare notifiche su molte azioni diverse. e non voglio che i membri ricevano queste e-mail quando i tester utilizzano il server di test o gli sviluppatori sono in esecuzione localmente. – Tauren
Controlla la mia risposta http: // stackoverflow.it/questions/8599791/a-simple-local-smtp-server/22043597 # 22043597 –