https://dosideas.com/wiki/api.php?action=feedcontributions&user=201.216.245.25&feedformat=atomDos Ideas. - Contribuciones del usuario [es]2024-03-29T00:56:15ZContribuciones del usuarioMediaWiki 1.28.2https://dosideas.com/wiki/index.php?title=Mock_de_un_servidor_de_correo_smtp_con_Wiser&diff=5705Mock de un servidor de correo smtp con Wiser2011-04-19T13:40:27Z<p>201.216.245.25: /* El test con JUnit */</p>
<hr />
<div>En el siguiente ejemplo de código se muestra una clase que envía un mail usando la API de JavaMail. <br />
Luego, un Test de Junit prueba esta clase levantando el servidor de mail Wiser en memoria y verificando que el mail haya llegado correctamente.<br />
<br />
<br />
<code java="java"><br />
package com.dosideas.smtp;<br />
<br />
import java.util.Properties;<br />
import javax.mail.Message;<br />
import javax.mail.MessagingException;<br />
import javax.mail.Session;<br />
import javax.mail.Transport;<br />
import javax.mail.internet.AddressException;<br />
import javax.mail.internet.InternetAddress;<br />
import javax.mail.internet.MimeMessage;<br />
<br />
/**<br />
* Clase que envía un email.<br />
*/<br />
public class MandaMail {<br />
<br />
public void enviarMail(String mailOrigen, String mailDestinatario, String asunto, String textoMensaje)<br />
throws AddressException, MessagingException {<br />
<br />
//se puede poner en true para ver la interaccion del protocolo smtp por stdout.<br />
boolean debug = false;<br />
<br />
//setea el host y puerto donde esta el servidor de mail.<br />
Properties props = new Properties();<br />
props.put("mail.smtp.host", "localhost");<br />
props.put("mail.smtp.port", 25);<br />
<br />
Session session = Session.getDefaultInstance(props, null);<br />
session.setDebug(debug);<br />
<br />
// create a message<br />
Message msg = new MimeMessage(session);<br />
<br />
// set the from and to address<br />
InternetAddress addressFrom = new InternetAddress(mailOrigen);<br />
msg.setFrom(addressFrom);<br />
<br />
InternetAddress addressTo = new InternetAddress(mailDestinatario);<br />
msg.setRecipient(Message.RecipientType.TO, addressTo);<br />
<br />
// Setting the Subject and Content Type<br />
msg.setSubject(asunto);<br />
msg.setContent(textoMensaje, "text/plain");<br />
Transport.send(msg);<br />
}<br />
}<br />
<br />
</code> <br />
<br />
== El test con JUnit ==<br />
<br />
El siguiente test utiliza la clase anterior para maquetar el [[Servidor SMTP]]. <br />
<br />
<code java="java"><br />
package com.dosideas.smtp;<br />
<br />
import javax.mail.internet.MimeMessage;<br />
import org.subethamail.wiser.WiserMessage;<br />
import org.subethamail.wiser.Wiser;<br />
import java.util.Iterator;<br />
import org.junit.Test;<br />
import static org.junit.Assert.*;<br />
<br />
/**<br />
* Test de envio de mail con Junit y Dumbster<br />
*/<br />
public class MandaMailTest {<br />
<br />
<br />
<br />
@Test<br />
public void testEnviarMail() throws Exception {<br />
<br />
MandaMail instance = new MandaMail();<br />
<br />
String mailDestinatario = "destinatario@dumbster.com";<br />
String mailOrigen = "origen@dumbster.com";<br />
String asunto = "Asunto del mail de prueba";<br />
String textoMensaje = "Este es un mail para probar el servidor de dumbster";<br />
<br />
//arranca el servidor de mail de Dumbster.<br />
Wiser server = new Wiser();<br />
server.setPort(25);<br />
server.start();<br />
<br />
try {<br />
//envia el mail.<br />
instance.enviarMail(mailOrigen, mailDestinatario, asunto, textoMensaje);<br />
} catch (Exception e) {<br />
e.printStackTrace();<br />
fail("Unexpected exception: " + e);<br />
}<br />
<br />
//detiene el servidor de Dumbster<br />
server.stop();<br />
<br />
//verifica que se obtenga el mail y que tenga los datos enviados.<br />
assertTrue(server.getMessages().size() == 1);<br />
Iterator emailIter = server.getMessages().iterator();<br />
WiserMessage email = (WiserMessage) emailIter.next();<br />
MimeMessage mmessage = email.getMimeMessage();<br />
assertTrue(mmessage.getSubject().equals(asunto));<br />
assertTrue(email.getEnvelopeSender().equals(mailOrigen));<br />
assertTrue(email.getEnvelopeReceiver().equals(mailDestinatario));<br />
assertTrue(mmessage.getContent().toString().equals(textoMensaje));<br />
<br />
//muestra el contenido<br />
System.out.println("Mensaje recibido en servidor Dumbster:");<br />
System.out.println("--------------------------------------");<br />
System.out.println("De: " + email.getEnvelopeSender());<br />
System.out.println("Para: " + email.getEnvelopeReceiver());<br />
System.out.println("Asunto: " + mmessage.getSubject());<br />
System.out.println("Contenido: " + mmessage.getContent());<br />
<br />
}<br />
}<br />
</code><br />
<br />
== Ver también ==<br />
<br />
*[[Wiser]]<br />
*[[Dumbster]]<br />
*[[Mock Object]] <br />
*[[Jetty]] <br />
<br />
[[Category:Java]] [[Category:TDD]] [[Category:JUnit]]</div>201.216.245.25https://dosideas.com/wiki/index.php?title=Mock_de_un_servidor_de_correo_smtp_con_Wiser&diff=5704Mock de un servidor de correo smtp con Wiser2011-04-19T13:40:06Z<p>201.216.245.25: Página creada con 'En el siguiente ejemplo de código se muestra una clase que envía un mail usando la API de JavaMail. Luego, un Test de Junit prueba esta clase levantando el servidor de mail W…'</p>
<hr />
<div>En el siguiente ejemplo de código se muestra una clase que envía un mail usando la API de JavaMail. <br />
Luego, un Test de Junit prueba esta clase levantando el servidor de mail Wiser en memoria y verificando que el mail haya llegado correctamente.<br />
<br />
<br />
<code java="java"><br />
package com.dosideas.smtp;<br />
<br />
import java.util.Properties;<br />
import javax.mail.Message;<br />
import javax.mail.MessagingException;<br />
import javax.mail.Session;<br />
import javax.mail.Transport;<br />
import javax.mail.internet.AddressException;<br />
import javax.mail.internet.InternetAddress;<br />
import javax.mail.internet.MimeMessage;<br />
<br />
/**<br />
* Clase que envía un email.<br />
*/<br />
public class MandaMail {<br />
<br />
public void enviarMail(String mailOrigen, String mailDestinatario, String asunto, String textoMensaje)<br />
throws AddressException, MessagingException {<br />
<br />
//se puede poner en true para ver la interaccion del protocolo smtp por stdout.<br />
boolean debug = false;<br />
<br />
//setea el host y puerto donde esta el servidor de mail.<br />
Properties props = new Properties();<br />
props.put("mail.smtp.host", "localhost");<br />
props.put("mail.smtp.port", 25);<br />
<br />
Session session = Session.getDefaultInstance(props, null);<br />
session.setDebug(debug);<br />
<br />
// create a message<br />
Message msg = new MimeMessage(session);<br />
<br />
// set the from and to address<br />
InternetAddress addressFrom = new InternetAddress(mailOrigen);<br />
msg.setFrom(addressFrom);<br />
<br />
InternetAddress addressTo = new InternetAddress(mailDestinatario);<br />
msg.setRecipient(Message.RecipientType.TO, addressTo);<br />
<br />
// Setting the Subject and Content Type<br />
msg.setSubject(asunto);<br />
msg.setContent(textoMensaje, "text/plain");<br />
Transport.send(msg);<br />
}<br />
}<br />
<br />
</code> <br />
<br />
== El test con JUnit ==<br />
<br />
El siguiente test utiliza la clase anterior para maquetar el [[Servidor SMTP]]. <br />
<br />
<code java="java"><br />
package com.dosideas.smtp;<br />
<br />
import javax.mail.internet.MimeMessage;<br />
import org.subethamail.wiser.WiserMessage;<br />
import org.subethamail.wiser.Wiser;<br />
import java.util.Iterator;<br />
import org.junit.Test;<br />
import static org.junit.Assert.*;<br />
<br />
/**<br />
* Test de envio de mail con Junit y Dumbster<br />
*/<br />
public class MandaMailTest {<br />
<br />
<br />
<br />
@Test<br />
public void testEnviarMail() throws Exception {<br />
<br />
MandaMail instance = new MandaMail();<br />
<br />
String mailDestinatario = "destinatario@dumbster.com";<br />
String mailOrigen = "origen@dumbster.com";<br />
String asunto = "Asunto del mail de prueba";<br />
String textoMensaje = "Este es un mail para probar el servidor de dumbster";<br />
<br />
//arranca el servidor de mail de Dumbster.<br />
Wiser server = new Wiser();<br />
server.setPort(9580);<br />
server.start();<br />
<br />
try {<br />
//envia el mail.<br />
instance.enviarMail(mailOrigen, mailDestinatario, asunto, textoMensaje);<br />
} catch (Exception e) {<br />
e.printStackTrace();<br />
fail("Unexpected exception: " + e);<br />
}<br />
<br />
//detiene el servidor de Dumbster<br />
server.stop();<br />
<br />
//verifica que se obtenga el mail y que tenga los datos enviados.<br />
assertTrue(server.getMessages().size() == 1);<br />
Iterator emailIter = server.getMessages().iterator();<br />
WiserMessage email = (WiserMessage) emailIter.next();<br />
MimeMessage mmessage = email.getMimeMessage();<br />
assertTrue(mmessage.getSubject().equals(asunto));<br />
assertTrue(email.getEnvelopeSender().equals(mailOrigen));<br />
assertTrue(email.getEnvelopeReceiver().equals(mailDestinatario));<br />
assertTrue(mmessage.getContent().toString().equals(textoMensaje));<br />
<br />
//muestra el contenido<br />
System.out.println("Mensaje recibido en servidor Dumbster:");<br />
System.out.println("--------------------------------------");<br />
System.out.println("De: " + email.getEnvelopeSender());<br />
System.out.println("Para: " + email.getEnvelopeReceiver());<br />
System.out.println("Asunto: " + mmessage.getSubject());<br />
System.out.println("Contenido: " + mmessage.getContent());<br />
<br />
}<br />
}<br />
</code><br />
<br />
== Ver también ==<br />
<br />
*[[Wiser]]<br />
*[[Dumbster]]<br />
*[[Mock Object]] <br />
*[[Jetty]] <br />
<br />
[[Category:Java]] [[Category:TDD]] [[Category:JUnit]]</div>201.216.245.25https://dosideas.com/wiki/index.php?title=Wiser&diff=5703Wiser2011-04-19T13:14:08Z<p>201.216.245.25: Página creada con 'Dumbster es un proyecto de Software Libre que permite generar Mock Object de un servidor de mail SMTP. Permite realizar Tests con Junit en los que se pueden enviar y ob…'</p>
<hr />
<div>Dumbster es un proyecto de [[Software Libre]] que permite generar [[Mock Object]] de un servidor de mail SMTP.<br />
<br />
Permite realizar Tests con Junit en los que se pueden enviar y obtener mails de este servidor de correo mock.<br />
<br />
== Ver también ==<br />
* [[Mock de un servidor de correo smtp con Wiser]]<br />
* [http://code.google.com/p/subethasmtp/ Sitio oficial de Wiser]<br />
<br />
[[Category:Java]] [[Category:TDD]] [[Category:JUnit]]</div>201.216.245.25https://dosideas.com/wiki/index.php?title=Dumbster&diff=5702Dumbster2011-04-19T13:12:01Z<p>201.216.245.25: </p>
<hr />
<div>Dumbster es un proyecto de [[Software Libre]] que permite generar [[Mock Object]] de un servidor de mail SMTP.<br />
<br />
Permite realizar Tests con Junit en los que se pueden enviar y obtener mails de este servidor de correo mock.<br />
<br />
== Issues conocidos ==<br />
<br />
Dumbster 1.6 tiene problemas en plataformas MacOSX. <br />
<br />
Debido a un race condition Dumbster puede llegar a producir un Deadlock, el problema suele aparecer cuando se intenta iniciar una nueva instancia de Dumbster luego de haber cerrado otra.<br />
<br />
Los detalles del problema se pueden ver en [http://sourceforge.net/tracker/?func=detail&aid=1354551&group_id=78413&atid=553186 el bug reportado en sourceforge].<br />
<br />
Hay un parche que se puede aplicar para solucionar este problema, aunque otra solución es utilizar otra herramienta como [[Wiser]]<br />
<br />
== Ver también ==<br />
* [[Mock de un servidor de correo smtp con Dumbster]]<br />
* [http://quintanasoft.com/dumbster/ Sitio oficial de Dumbster]<br />
<br />
[[Category:Java]] [[Category:TDD]] [[Category:JUnit]]</div>201.216.245.25