Saltar la navegación

4.5.- Programación de un cliente SMTP.

Cartel con fondo blanco incluyendo a diferentes colores  rótulos con las siguientes palabras: Cliente SMTP, javax.mail y socket.

Vamos a ver dos ejemplos de programación de clientes SMTP. Uno de ellos basado en sockets y otro realizado mediante el API javax.mail.

En el primer caso, usando sockets, el ejemplo completo y explicado en detalle lo puedes consultar en el siguiente enlace:

En el segundo caso, utilizaremos el API javax.mail. Este paquete proporciona las clases necesarias para implementar un sistema de correo. Vamos a destacar las clases y métodos del paquete javax.mail que nos permitirán crear nuestro cliente de correo:

  • Clase Session. Representa una sesión de correo. Agrupa las propiedades y valores por defecto que utiliza el API javax.mail para el correo.
    • Método getDefaultInstance(). Obtiene la sesión por defecto. Si no ha sido configurada, se creará una nueva de manera predeterminada. El parámetro que se le pasa debe recoger al menos las siguientes propiedades: protocolo y servidor smtp, puerto para el socket de sesión y tipo, usuario y puerto smtp).
  • Clase Message. Modela un mensaje de correo electrónico.
    • Método setFrom(). Asigna el atributo From al mensaje, siendo éste la dirección del emisor.
    • Método setRecipients(). Asigna el tipo y direcciones de destinatarios.
    • Método setSubject(). Para indicar asunto del mensaje.
    • Método setText(). Asigna el texto o cuerpo del mensaje.
  • Clase Transport. Representa el transporte de mensajes. Hereda de la clase Service, la cual proporciona funcionalidades comunes a todos los servicios de mensajería, tales como conexión, desconexión, transporte y almacenamiento.
    • Método send(). Realiza el envío del mensaje a todas las direcciones indicadas. Si alguna dirección de destino no es válida, se lanza una excepción SendFailedException.

En la siguiente presentación te indicamos los pasos a seguir para descargar el API javax.mail e integrarla en NetBeans.

API javax.mail. Descarga e instalación

mp4

En el siguiente enlace dispones del proyecto java completo. Observa que no se realiza de forma explícita una conexión y desconexión, esto es debido a que va implícito en el objeto Transport. Cuando ejecutes el programa, recuerda poner los datos reales de tu cuenta de Gmail (o bien crea una) así como un destinatario válido (puede ser tu misma cuenta de Gmail). Observa también que el protocolo SMTP no utiliza el puerto 25, esto es porque se trata de SMTP seguro (SMTP sobre SSL).

Para saber más

Consulta el siguiente enlace para conocer a muchas otras posibilidades de programación de sistemas de correo con el API javax.mail.

Documentación del API javax.mail.