jump to navigation

Enviar un correo HTML con Java febrero 14, 2007

Posted by superpiwi in Java.
trackback

He escrito una clase para enviar correo mediante HTML. Lo primero, necesitas descargar la libreria de Java Mail API y la de Java Beans Activation Framework.

http://java.sun.com/products/javamail/
http://java.sun.com/products/javabeans/jaf/index.jsp

Usar la clase es muy sencillo. Un ejemplo para enviar un correo html y un par de ficheros atachados:


String contenidoHTML = HTMLMail.loadHTMLFile("/home/jose/articulo.html");
// propiedades de conexion al servidor de correo
HTMLMail mail = new HTMLMail("aqui_tu_server_correo","tu_user","tu_password");
mail.setFrom("javalangnullpointer");
mail.setSubject("NOTICIAS JAVALANGNULLPOINTER");
mail.setTo("aqui_aquien_envias@gmail.com");
// fijar el contenido
mail.addContent(contenidoHTML);
// CID de una imagen
mail.addCID("cidimage01", "/home/jose/firma.gif");
// enviar atachados un par de ficheros
mail.addAttach("/home/jose/image.gif");
//mail.addAttach("/home/jose/bison_1_0.zip");
// enviar el correo MULTIPART
mail.sendMultipart();

Y ya está. sencillo, verdad???

Te comento que es el CID de una imagen. Cuando quieres incrustar una imagen en el HTML debes poner algo de la forma:


<img src="CID:cid_de_la_imagen />

Donde cid_de_la_imagen es un nombre aleatoria que le das para identificarla. Esto en el correo tambien se referencia con el metodo addCID que lo que hace es embeber en el cuerpo del mensaje el contenido de la imagen asociandole ese cid o nombre que le hayas dado. Cuando el browser abra ese mensaje mostrara correctamente la imagen atachada. En el ejemplo el HTML contiene una imagen con cid igual a cidimage01 y por eso en el mensaje asociamos el fichero grafico con ese nombre.


<img src="CID:cidimage01" />

Lo interesante. Aqui el contenido de la clase:


/**
*
* HTMLMail.java
*
* clase para enviar correos HTML.
*
* @author jdelgado
* @revision 0.0.0.1 13 febrero 2007
* @since Eclipse 3.2 JDK 1.5
*
* TODO: enviar .css mediante CID, actualmente solo funciona si va incrustado en la pagina con <style></style>
*
*/
package comun.util.mail;
import java.io.*;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Part;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
public class HTMLMail {
/**
* Algunas constantes
*/
static public int SIMPLE = 0;
static public int MULTIPART = 1;
/**
* Algunos mensajes de error
*/
public static String ERROR_01_LOADFILE = "Error al cargar el fichero";
public static String ERROR_02_SENDMAIL = "Error al enviar el mail";
/**
* Variables
*/
private Properties props = new Properties();
private String host,protocol,user,password;
private String from,content,to;
private String subject="";
/**
* MultiPart para crear mensajes compuestos
*/
MimeMultipart multipart = new MimeMultipart("related");
// -----
/**
* Constructor
* @param host nombre del servidor de correo
* @param user usuario de correo
* @param password password del usuario
*/
public HTMLMail(String host,String user,String password)
{
props = new Properties();
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.host", host);
props.setProperty("mail.user", user);
props.setProperty("mail.password", password);
}
//-----
/**
* Muestra un mensaje de trazas
*
* @param metodo
* nombre del metodo
* @param mensaje
* mensaje a mostrar
*/
static public void trazas(String metodo, String mensaje) {
// TODO: reemplazar para usar Log4J
System.out.println("[" + HTMLMail.class.getName() + "][" + metodo
+ "]:[" + mensaje + "]");
}
// -----
/**
* Carga el contenido de un fichero de texto HTML en un String
*
* @param pathname
* ruta del fichero
* @return un String con el contenido del fichero
* @throws Exception
* Excepcion levantada en caso de error
*/
static public String loadHTMLFile(String pathname) throws Exception
{
String content = "";
File f = null;
BufferedReader in = null;
try
{
f = new File(pathname);
if (f.exists())
{
long len_bytes = f.length();
trazas("loadHTMLFile", "pathname:" + pathname + ", len:"+ len_bytes);
}
in = new BufferedReader(new FileReader(f));
String str;
while ((str = in.readLine()) != null) {
// process(str);
str = str.trim();
content = content + str;
}
in.close();
return content;
}
catch (Exception e)
{
String MENSAJE_ERROR = ERROR_01_LOADFILE + ": ['" + pathname + "'] : " + e.toString();
throw new Exception(MENSAJE_ERROR);
}
finally
{
if (in != null) in.close();
}
}
// ----
/**
* Para probar el correcto funcionamiento de la clase
*
* @param args
* argumentos de entrada
* @throws Exception
* excepcion levantada en caso de error
*/
public static void main(String[] args) throws Exception {
try {
// cargar en un string el template del HTML que se va a enviar
String contenidoHTML = HTMLMail.loadHTMLFile("/home/jose/articulo.html");
System.out.println("contenido HTML:" + contenidoHTML);
// propiedades de conexion al servidor de correo
HTMLMail mail = new HTMLMail("correo","jose","jose");
mail.setFrom("javalangnullpointer");
mail.setSubject("NOTICIAS JAVALANGNULLPOINTER");
mail.setTo("jhon.doe@gmail.com");
// fijar el contenido
//contenidoHTML=contenidoHTML+"<br/>Saludos, JOSE<br/><img src='cidimage01'>";
mail.addContent(contenidoHTML);
// CID de una imagen
mail.addCID("cidimage01", "/home/jose/firma.gif");
// enviar atachados un par de ficheros
mail.addAttach("/home/jose/image.gif");
//mail.addAttach("/home/jose/bison_1_0.zip");
// enviar el correo MULTIPART
mail.sendMultipart();
// para un correo SIMPLE seria:
// mail.setContent(contenidoHTML);
// mail.send();
System.out.println("[ Mail enviado ]");
} catch (Exception e) {
e.printStackTrace();
}
}
// ------
/**
* Añade el contenido base al multipart
* @throws Exception Excepcion levantada en caso de error
*/
public void addContentToMultipart() throws Exception
{
// first part (the html)
BodyPart messageBodyPart = new MimeBodyPart();
String htmlText = this.getContent();
messageBodyPart.setContent(htmlText, "text/html");
// add it
this.multipart.addBodyPart(messageBodyPart);
}
// -----
/**
* Añade el contenido base al multipart
* @param htmlText contenido html que se muestra en el mensaje de correo
* @throws Exception Excepcion levantada en caso de error
*/
public void addContent(String htmlText) throws Exception
{
// first part (the html)
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setContent(htmlText, "text/html");
// add it
this.multipart.addBodyPart(messageBodyPart);
}
// -----
/**
* Añade al mensaje un cid:name utilizado para guardar las imagenes referenciadas en el HTML de la forma <img src=cid:name />
* @param cidname identificador que se le da a la imagen. suele ser un string generado aleatoriamente.
* @param pathname ruta del fichero que almacena la imagen
* @throws Exception excepcion levantada en caso de error
*/
public void addCID(String cidname,String pathname) throws Exception
{
DataSource fds = new FileDataSource(pathname);
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setDataHandler(new DataHandler(fds));
messageBodyPart.setHeader("Content-ID","<"+cidname+">");
this.multipart.addBodyPart(messageBodyPart);
}
// ----
/**
* Añade un attachement al mensaje de email
* @param pathname ruta del fichero
* @throws Exception excepcion levantada en caso de error
*/
public void addAttach(String pathname) throws Exception
{
File file = new File(pathname);
BodyPart messageBodyPart = new MimeBodyPart();
DataSource ds = new FileDataSource(file);
messageBodyPart.setDataHandler(new DataHandler(ds));
messageBodyPart.setFileName(file.getName());
messageBodyPart.setDisposition(Part.ATTACHMENT);
this.multipart.addBodyPart(messageBodyPart);
}
// ----
/**
* Envia un correo multipart
* @throws Exception Excepcion levantada en caso de error
*/
public void sendMultipart() throws Exception
{
Session mailSession = Session.getDefaultInstance(this.props, null);
mailSession.setDebug(true);
Transport transport = mailSession.getTransport();
MimeMessage message = new MimeMessage(mailSession);
message.setSubject(this.getSubject());
message.setFrom(new InternetAddress(this.getFrom()));
message.addRecipient(Message.RecipientType.TO,
new InternetAddress(this.getTo()));
// put everything together
message.setContent(multipart);
transport.connect();
transport.sendMessage(message,
message.getRecipients(Message.RecipientType.TO));
transport.close();
}
// -----
/**
* Envia un correo simple
* @throws Exception Excepcion levantada en caso de error
*/
public void send() throws Exception
{
try
{
Session mailSession = Session.getDefaultInstance(this.props, null);
mailSession.setDebug(true);
Transport transport = mailSession.getTransport();
MimeMessage message = new MimeMessage(mailSession);
message.setSubject(this.getSubject());
message.setFrom(new InternetAddress(this.getFrom()));
message.setContent(this.getContent(), "text/html");
message.addRecipient(Message.RecipientType.TO,
new InternetAddress(this.getTo()));
transport.connect();
transport.sendMessage(message,
message.getRecipients(Message.RecipientType.TO));
transport.close();
}
catch(Exception e)
{
String MENSAJE_ERROR = ERROR_02_SENDMAIL+" : " + e.toString();
throw new Exception(MENSAJE_ERROR);
}
}
//-----
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getFrom() {
return from;
}
public void setFrom(String from) {
this.from = from;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public String getTo() {
return to;
}
public void setTo(String to) {
this.to = to;
}
}
// end of class HTMLMail

Y aqui el contenido del fichero HTML que enviamos:

<HEAD>
<STYLE>
P {color:red;}
</STYLE>
</HEAD>
<BODY>
Esta es una prueba de <b>envio de correo HTML</b> mediante Java.
Emplea una clase implementada por mi y con ella esto es tan sencillo como escribir este código:
<br/>
<br/>
<P>
<font color='green'>// propiedades de conexion al servidor de correo</font><br/>
HTMLMail mail = new HTMLMail("correo","user","password");<br/>
mail.setFrom("javalangnullpointer");<br/>
mail.setSubject("NOTICIAS DE JAVALANGNULLPOINTER");<br/>
mail.setTo("aqui_tu_correo@correo.es");<br/>
<br/>
<font color='green'>// fijar el contenido</font><br/>
String contenidoHTML = HTMLMail.loadHTMLFile("/home/jose/articulo.html");<br/>
mail.addContent(contenidoHTML);<br/>
<br/>
<font color='green'>// enviar CID de una imagen</font><br/>
mail.addCID("cidimage01", "/home/jose/firma.gif");<br/>
<br/>
<font color='green'>// enviar atachados un par de ficheros</font><br/>
mail.addAttach("/home/jose/image.gif");<br/>
mail.addAttach("/home/jose/bison_1_0.zip");<br/>
<br/>
<font color='green'>// enviar el correo MULTIPART</font><br/>
mail.sendMultipart();<br/>
</P>
El resultado es el que estais viendo. Si os interesa el tema o quereis ver mas tutoriales. Conectate a...
<br/>
<br/>
<a href="https://javalangnullpointer.wordpress.com">javalangnullpointer.wordpress.com</a>
<br/>
<br/>
Saludos,
<br>
<img src='cid:cidimage01' />
</BODY>
</HTML>

El resultado al visualizarlo con el navegador, seria similar a este:

enviarcorreo01.jpg

Comentarios»

1. Rosina Mendieta - marzo 1, 2007

Hola probando el mail

2. superpiwi - marzo 1, 2007

correo recibido :-). Tienes que ejecutarlo desde eclipse o el IDE que estes usando y con valores validos (servidor de SMTP, usuario, password, etc…)

3. Marek - marzo 10, 2007
4. emilio - marzo 19, 2007

dxcfghjkvfgbhnj

5. emilio - marzo 19, 2007

depaspo

6. emilio - marzo 19, 2007

sorry mi sobrino tomo el teclado, se agradese el apote testeando….

7. superpiwi - marzo 20, 2007

Empieza pronto tu sobrino con JAVA, asi me gusta ;-). bien por las nuevas generaciones…

8. Pagina para enviar mails - abril 10, 2007
9. Gilberto Carranza - abril 13, 2007

Como puedo adjuntar una imagen y del archivo adjunto tomar la ruta de este para mostrarlo en el texto del Correo, en formato HTML ó mandar una imagen y tomar la direccion de esta, pero que no sea absoluta, todo esto desde Java?

Gracias

Saludos

10. superpiwi - abril 13, 2007

No entiendo muy bien lo que quieres hacer. Cuando adjuntas una imagen esta va incluida en el propio mensaje y el cliente de correo al recibirlo lo que hace es darte la posibilidad de descargar ese fichero con el nombre que tenga y ya entonces lo guardas en el disco duro donde quieras. Otros clientes de correo, como el de Google lo que hacen es mostrarte esa imagen directamente. si lo que quieres es incluir un HTML y que la imagen se muestre mediante un tag del tipo , decirte que eso no funciona. Como mucho puedes mostrar una ruta a la imagen Pulsa aqui para enlace imagen pero eso aparece en el mensaje como un Link, que al pulsarlo te lleva a otra pagina. Saludos.

11. Peter - May 13, 2007

Your site is perfect!

12. Peter - May 18, 2007

Saludos.

He probado a hacerlo enviando uno a mi direccion de hotmail…pero nada..¨
¿Por qué puede ser?

Gracias

13. superpiwi - May 18, 2007

Puede que tengas un proxy o firewall., no se, en mi caso lo probe con gmail y no tuve problemas. mira si puedes probarlo con otros servidores de correo para comprobar que no este algo capado. Si puedes montarte incluso un servidor de correo local para pruebas de desarrollo mejor que mejor.

14. ID - junio 20, 2007

aaaaaa

15. Rolando - junio 28, 2007

Saludos.

He probado estas clases y me funcionan de maravilla como esta implementado, mi pregunta es si hay alguna manera de saber si al correo que se esta enviando el mensaje es valido o en caso contrario que este cerrado o suspendido?

Gracias por la ayuda!!!

16. viral_haker@hotmail.com - agosto 13, 2007

hola

17. Hola prueba - agosto 14, 2007

esto es una prueba

18. superpiwi - agosto 16, 2007

prueba recibida ^_^

19. superpiwi - agosto 16, 2007

@Rolando, no entiendo muy bien lo que me preguntas. Si me puedes comentar mejor, te lo agradezco. Saludos.

20. jose luis - septiembre 8, 2007

hola a todo el mundo soy hincha de josejose el principe dela cancion es una prsona mas humilde y bueno lo aprecio porque
el suigue gravando es una persona positiva el sera sienpre el principe de la cancion mi correo es jagm22_2@hotmail.com algun dia lo cocere en persona es mi amigo josejose como me gustaria conocerte algun dia suigue adelante sienpre ok amigo jose jose eres una pèrsona sencilla bueno uno que te sigue sienpre mi nombre esw jose luis de peru cuidate m

21. Rivas - septiembre 13, 2007

Saludos!!!, no sé si me podrian ayudar, envío correos con formato HTML a varias direcciones, contiene imágenes pero no las anexe al correo si no que coloco en el src de la imagen una dirección de internet donde descargarla.

Casi siempre se muestra bien, pero hay ocasiones extrañas donde la imagen aparece con un tache de que no se encontró y al ver la ruta de la imagen está correcta excepto porque en la extensión «.gif» lo puso como «..gif», no sé porque le anexa ese punto adicional a veces.

Alguien sabe a que se deba ?

Saludos.

22. fewar - octubre 2, 2007

megustaria que dieres una mejor explicacion algo asi como para dummis. pero gracias ok.
Te propongo lo siguiente pasame la documentacion adecuada la tradusco si es neserario (siempre que este en ingles) y creo un documento que despues puedas distribuir como tuyo.

COmo ves

23. darkx - octubre 9, 2007

hola man mira estoy probando tu ejemplo
pero no me sale pues cambie la parte
ke llama a la clase

public static void main(String[] args) throws Exception {
try {
// cargar en un string el template del HTML que se va a enviar
String contenidoHTML = HTMLMail.loadHTMLFile(«src/articulo.html»);
System.out.println(«contenido HTML:» + contenidoHTML);
// propiedades de conexion al servidor de correo
HTMLMail mail = new HTMLMail(«sdarknot@gmail.com»,»darkx»,»badboy696″);
mail.setFrom(«javalangnullpointer»);
mail.setSubject(«NOTICIAS JAVALANGNULLPOINTER»);
mail.setTo(«sdarknot@gmail.com»);
// fijar el contenido
//contenidoHTML=contenidoHTML+”Saludos, JOSE”;
mail.addContent(contenidoHTML);
// CID de una imagen
mail.addCID(«cidimage01», «src/firma.png»);
// enviar atachados un par de ficheros
mail.addAttach(«src/imagen.gif»);
//mail.addAttach(”/home/jose/bison_1_0.zip”);
// enviar el correo MULTIPART
mail.sendMultipart();
// para un correo SIMPLE seria:
// mail.setContent(contenidoHTML);
// mail.send();
System.out.println(«[ Mail enviado ]»);
} catch (Exception e) {
e.printStackTrace();
}
}

pero al ejecutar me manda este error

[HTMLMail][loadHTMLFile]:[pathname:src/articulo.html, len:1369]
contenido HTML:P {color:red;}Esta es una prueba de envio de correo HTML mediante Java.Emplea una clase implementada por mi y con ella esto es tan sencillo como escribir este código:// propiedades de conexion al servidor de correoHTMLMail mail = new HTMLMail(”correo”,”user”,”password”);mail.setFrom(”javalangnullpointer”);mail.setSubject(”NOTICIAS DE JAVALANGNULLPOINTER”);mail.setTo(”aqui_tu_correo@correo.es”);// fijar el contenidoString contenidoHTML = HTMLMail.loadHTMLFile(”/home/jose/articulo.html”);mail.addContent(contenidoHTML);// enviar CID de una imagenmail.addCID(”cidimage01?, “firma.png”);// enviar atachados un par de ficherosmail.addAttach(«image.gif»);mail.addAttach(«verde.zip»);// enviar el correo MULTIPARTmail.sendMultipart();El resultado es el que estais viendo. Si os interesa el tema o quereis ver mas tutoriales. Conectate a…javalangnullpointer.wordpress.comSaludos,
DEBUG: setDebug: JavaMail version 1.4ea
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth false
DEBUG SMTP: trying to connect to host «sdarknot@gmail.com», port 25, isSSL false
javax.mail.MessagingException: Unknown SMTP host: sdarknot@gmail.com;
nested exception is:
java.net.UnknownHostException: sdarknot@gmail.com
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1280)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:370)
at javax.mail.Service.connect(Service.java:275)
at javax.mail.Service.connect(Service.java:156)
at javax.mail.Service.connect(Service.java:105)
at HTMLMail.sendMultipart(HTMLMail.java:236)
at HTMLMail.main(HTMLMail.java:151)
Caused by: java.net.UnknownHostException: sdarknot@gmail.com
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:232)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:189)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1250)
… 6 more

no se si podrias decirme en que he fallado
desde ya te lo agradesco

24. superpiwi - octubre 19, 2007

Caused by: java.net.UnknownHostException: sdarknot@gmail.com

no te encuentra el servidor de correo.

prueba mejor a pasarle la IP.

25. aumakua - noviembre 1, 2007

Hola, una pregunta, en el ejemplo muestras cargar un archivo html, si este contiene imagenes de que forma las puedo enviar si necesidad de ponerlas en un cid, ya que tome de tu clase el método de loadHtml , sin ambargo mi archivo html contiene imagenes y este al enviarse muestra un error.

250 2.1.0 Flushed k41sm2457519rvb
com.sun.mail.smtp.SMTPSendFailedException: 552 5.7.0 Illegal Attachment k41sm2457519rvb

Lo que quiero hacer es que si ya tengo un template html poder pasarle la ruta y enviarlo.

Saludos.

26. aumakua - noviembre 1, 2007

Solucionando, fue error mio de ruta, saludos, la función de conversión marcha perfecta!.

27. superpiwi - noviembre 2, 2007

Me alegra saberlo ^_^

28. Hincha - noviembre 14, 2007

hola amigo, excelente articulo será posible que pongas a disposicion el codigo fuente en un zip de todo lo que usaste para realizar el envio de mensajes. Atte. un hincha

29. carlos - noviembre 20, 2007

eeeeeeeeeeeeeeeeeeeee

30. farrell - noviembre 21, 2007

esta muy buena la pagina enh?

31. farrell - noviembre 21, 2007

ke pex

32. superpiwi - noviembre 27, 2007

Hola Hincha, si quiero subir este sitio a un nuevo servidor y colocar los archivos con el codigo fuente. a ver si con suerte lo puedo hacer en breve.

33. oscar - febrero 26, 2008

la playita

34. gdf - abril 16, 2008

dfd

35. Jhonatan - junio 18, 2008

Hola.

Muchas gracias por tu ejemplo es muy util.

Bye

36. juan - septiembre 23, 2008

Buenas, he copiado tal cual eljava, y he cambiado los datos de correo electornico y demás, sin embargo me sale este error tan chulo:
Exception in thread «main» java.lang.NoClassDefFoundError: org/apache/geronimo/mail/util/ASCIIUtil

Si alguien me lo puede explicar por favor.

37. ramses - febrero 17, 2009

mi servidor de correo es exchange no tiene nada que ver eso.. es que me sale un error diciendo que no se puede conectar al server… gracias de antemano

38. alanitax - noviembre 20, 2009

hola, una pregunta.. lograste incluir el fichero css también como un cid: ?? Eso se puede hacer?? funciona???

Muchas gracias!!

39. Mario - May 7, 2010

Cuando ejecuto esta linea no encuentra el archivo prueba que esta en la raiz del proyecto, a que se debe?…alguna idea…

String contenidoHTML = HTMLMail.loadHTMLFile(«/ProySL/prueba.jsp»);

Gracias.

40. lourdes - agosto 5, 2010

mil gracias!!! Funciona super bien

41. fewar - agosto 16, 2010

Gracias Maestro, podrias enseñarnos mas, somos libretas con demasiadas hojas en blanco por favor ayudanos a llenarlas.

Gracias

42. Otto - agosto 20, 2010

Holasss otttooosss

43. sub7 - noviembre 3, 2010

Esta tarde me puse y al final lo saqué, os dejo el link con el paquete compilado en .jar para que lo ejecuteis y tambien os dejo el codigo en un archivo de tecto.

Yo trabajo con linux, alomejor si abrís el archivo de texto en windows no se ve bien.

http://www.gigasize.com/get.php?d=mtb8o8zf2xc
Un saludo.

44. oscar - noviembre 23, 2010

Hola, me sale el mismo error que a alguien arriba:

Unknown SMTP host: o.viveros.egas@gmail.com…..

Tu dices que intente con la IP. pero como lo he probado me sale el mismo error, cuál IP debo poner?

Gracias

45. oscar - noviembre 23, 2010

nuevamente yo.

le he dado en el campo host esto: mail.google.com (o la IP) y me sale:

Error al enviar el mail : javax.mail.MessagingException: Could not connect to SMTP host: mail.google.com port: 25;
nested exception is:
java.net.ConnectException: Connection timed out

Cualquier ayuda la agradezco.

46. Javier - noviembre 10, 2011

Buenas tardes
me sale el error 554 Message is not RFC compliant
alguien tiene la respuesta?

47. Daniel - febrero 12, 2012

Tengo una ligera duda, mi programa funciona perfecto, envía mails con adjuntos y lo controlo bien pero cuando quiero ejecutar este programa en otro ordenador no funciona, ¿por qué? no lo entiendo:

-exporto el .jar
-lo ejecuto en mi máquina y funciona ok
-lo pongo en el ordenador de mi hermano y no envía nada

Muchas gracias

48. llzzzz - marzo 20, 2012

Hey! muuuchas gracias por el aporte

49. nagash02 - diciembre 13, 2012

Reblogged this on .: Codigo CTM :..

50. Jairo Navarrete - julio 3, 2014

Gracias hermano, super bueno y me srivio, pero una duda en el caso de que quiera enviar a mas de una direccion como paso las direcciones????

51. grosir tas murah - julio 15, 2014

Hello there! I know this is kinda off topic however , I’d
figured I’d ask. Would you be interested in exchanging links
or maybe guest authoring a blog post or vice-versa?

My website covers a lot of the same topics
as yours and I feel we could greatly benefit from each other.
If you are interested feel free to shoot me an e-mail.
I look toward hearing from you! Excellent blog by the way!

52. gate repair San Francisco - agosto 22, 2014

What’s Happening i am new to this, I stumbled upon this
I’ve discovered It positively helpful and it has aided me out loads.
I’m hoping to give a contribution & aid different users
like its aided me. Great job.

53. Grosir Garskin - febrero 4, 2016

I have read so many articles or reviews about the blogger lovers however this article is genuinely a pleasant piece of writing, keep it
up.


Replica a superpiwi Cancelar la respuesta