JavaMail
Enviado por alejandro180 • 9 de Noviembre de 2018 • Apuntes • 2.979 Palabras (12 Páginas) • 134 Visitas
JavaMail API.[pic 1]
¿Que es JavaMail?
JavaMail es una librería de Oracle para Java SE y EE la cual permite trabajar con correo electrónico. Esta librería no se encuentra incluida en el paquete JDK por lo que se debe descargar aparte en el sitio oficial de Oracle.
Funcionalidades.
La librería permite realizar todas las operaciones básicas correspondientes al correo electrónico como por ejemplo redactar y enviar mensajes, recibirlos, agregar archivos adjuntos, etc.
Además de las funciones básicas de cada servicio de correo electrónico, se pueden implementar funciones más avanzadas como el uso de certificados digitales.
Componentes y etapas.
Enviar mensajes:
Session – Esta clase representa la conexión al servidor, se obtiene pasándole por parámetros el servidor de correo.
Transport – Esta clase se utiliza para el envío de mensajes, se obtiene con el método getTransport() de la clase Session.
MimeMessage – Esta clase construye el mensaje.
Configuración de la sesión.
A la clase Session se le debe definir las propiedades a través de la clase Properties, luego obtener la instancia.
// Propiedades.
Properties props = new Properties();
// Nombre del host de correo, es smtp.gmail.com
props.setProperty("mail.smtp.host", "smtp.gmail.com");
// TLS si está disponible
props.setProperty("mail.smtp.starttls.enable", "true");
// Puerto de gmail para envio de correos
props.setProperty("mail.smtp.port","587");
// Nombre del usuario
props.setProperty("mail.smtp.user", "ejemplo@gmail.com");
// Si requiere o no usuario y password para conectarse.
props.setProperty("mail.smtp.auth", "true");
// Se obtiene la instancia de Session.
Session session = Session.getDefaultInstance(props);
// Información en pantalla (opcional).
session.setDebug(true);
Confección del mensaje.
Se crea la clase MimeMessage, esta clase compone el mensaje y sus elementos relacionados, por ejemplo, remitente, destinatario, destinatario quien recibe una copia, destinatario con copia oculta.
// Se crea el objeto MimeMessage y recibe la sesión.
MimeMessage message = new MimeMessage(session);
setFrom() indica el remitente.
addRecipient() sirve para indicar el destinatario.
// Quién envia el correo
message.setFrom(new InternetAddress("Usuario@gmail.com"));
// A quién va dirigido
message.addRecipient(Message.RecipientType.TO, new InternetAddress("Usuario@correo.com"));
setSubjet() escribe el asunto del mensaje.
setText() escribe el contenido o cuerpo del mensaje.
// Asunto y cuerpo del mensaje.
message.setSubject("Hola");
message.setText("Mensaje con JavaMail");
// Con formato HTML.
message.setText("Mensaje con JavaMail","ISO-8859-1","html");
Envío del mensaje.
Se preparan los métodos con las direcciones y protocolos para enviar el mensaje.
// Se crea la clase Transport instanciando la sesión y se pasa el protocolo.
Transport t = session.getTransport("smtp");
// Se establece la conexión.
t.connect("correo@gmail.com","contraseña");
// Se envía el mensaje a todos los destinatarios.
t.sendMessage(message,message.getAllRecipients());
// Cierre de la conexión.
t.close();
El método sendMessage() utiliza el mensaje y el arreglo de los destinatarios, por otro lado está el método send() que es un método estático y no tiene en cuenta la conexión, ni el usuario ni la contraseña, es una forma de envío rápida para el servidor SMTP que no requiera autenticación.
...