Te recomendamos que revises esta respuesta en un ambiente controlado antes de pasarlo a producción, un saludo.
Solución:
Lo he hecho usando GreenMail. Eche un vistazo a mi publicación de blog al respecto, donde también encontrará un ejemplo de trabajo.
Puede usar un servidor SMTP de prueba, como Dombster. Vea el ejemplo a continuación:
@Test
public void sendSimpleEmailWithCC()
// Runs a Dumbster simple SMTP server - default config
SimpleSmtpServer server = SimpleSmtpServer.start();
String from = "[email protected]";
String to = "[email protected]";
String messageText = "Good message";
String title = "Test message";
String cc = "[email protected]";
Assert.assertTrue(mailSender
.sendEmail(from, to, cc, title, messageText));
server.stop();
Assert.assertTrue(server.getReceivedEmailSize() == 1);
Iterator emailIter = server.getReceivedEmail();
SmtpMessage email = (SmtpMessage) emailIter.next();
Assert.assertTrue(email.getHeaderValue("From").equals(from));
Assert.assertTrue(email.getHeaderValue("To").equals(to));
Assert.assertTrue(email.getHeaderValue("Cc").equals(cc));
Assert.assertTrue(email.getHeaderValue("Subject")
.equals("Test message"));
Assert.assertTrue(email.getBody().equals(messageText));
Si su objetivo es usar solo Junit/Mockito y probar cómo se formó MimeMessage antes de enviarlo, la siguiente configuración debería ser suficiente:
public class EmailServiceTest
private EmailServiceImpl emailServiceImpl;
private JavaMailSender javaMailSender;
private MimeMessage mimeMessage;
@Before
public void before()
mimeMessage = new MimeMessage((Session)null);
javaMailSender = mock(JavaMailSender.class);
when(javaMailSender.createMimeMessage()).thenReturn(mimeMessage);
emailServiceImpl = new EmailService(javaMailSender);
@Test
public void emailTest()
String recipient = "[email protected]"
EmailRequest request = new EmailRequest();
request.setRecipient(recipient);
emailServiceImpl.send(request);
assertEquals(recipient, mimeMessage.getRecipients(RecipientType.TO)[0].toString());
No se te olvide dar difusión a esta crónica si te valió la pena.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)