Como enviar E-mails desde Java

Aqui os dejo el codigo de como enviar un e-mail desde Java. En el mail incorporamos texto en el cuerpo así como un fichero adjunto.


import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
import javax.mail.internet.MimeMultipart;

....

public static void sendMail(){
String remite, remitente, asunto, destino, textoMail = "";
String host = "smtp.XXXXXX";
String port = ""; //en caso de que haya, incorporar el puerto de comunicación.
String username = "username";
String password = "password";
try{
remite = "administracion@java4mochuelos.es";
remitente = "El administrador de java4mochuelos";
asunto = "Un mensaje muy interesante";

//Los usuarios a quin dirigimos el mail se separan por ";"
destino = "usuario1@java4mochuelos.es;usuario2@java4mochuelos.es";

textoMail= "Cuerpo del mensaje en HTML";

String[] direcciones;

String destinatario=destino;

Properties props = new Properties();
if(username != null && username.length()>0){
props.put("mail.smtp.auth", "true");
}

Session session = Session.getDefaultInstance(props, null);
MimeMessage message = new MimeMessage(session);

message.setFrom(new InternetAddress(remite, remitente));

//Multiples destinos

if(destinatario.indexOf(";") > 0){
direcciones = destinatario.split(";");
for(int i = 0; i < destino =" direcciones[i].trim();">0){
message.addRecipient(Message.RecipientType.TO, new InternetAddress(destino));
}
}
}else{
message.addRecipient(Message.RecipientType.TO, new InternetAddress(destinatario));
}

message.setSubject(asunto);

//--Cuerpo del mensaje en HTML--
BodyPart bodyPart1 = new MimeBodyPart();
bodyPart1.setContent(textoMail, "text/html");
//-------------

//---fichero---
BodyPart bodyPart2 = new MimeBodyPart();
FileDataSource fileDataSource = new FileDataSource("");
bodyPart2.setDataHandler(new DataHandler(fileDataSource));
bodyPart2.setFileName(fileDataSource.getName());
//-------------

Multipart multipart = new MimeMultipart();
multipart.addBodyPart(bodyPart1);
multipart.addBodyPart(bodyPart2);

message.setContent(multipart);

message.saveChanges();
Transport transport = session.getTransport("smtp");
if(username != null && username.length()>0){
if(port != null && port.length()>0){
transport.connect(host, Integer.parseInt(port), username, password);
}else{
transport.connect(host, username, password);
}
}
transport.sendMessage(message, message.getAllRecipients());
transport.close();

}catch(Exception e){
System.out.println("sendMail: "+ e);
}
}



Como podeis observar será necesario incluir las librerias mail y activation de java.

0 comentarios:

Publicar un comentario