gentoo linux, java, software libre y otras hierbas
Nov, 07 2009 - 2:38 pm

Enviar correo desde Java

Este es un pequeño ejemplo de cómo enviar correos desde Java usando el API de Java Mail. Lo único que necesitaremos es descargar la librería mail.jar de la página de Java Mail y crear un programa de este estilo:

import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;

public class EnviarMail {
  public static void main(String[] args) {
    try {
      // Se debe crear un archivo de propiedades que
      // contenga el nombre del servidor SMTP
      Properties props = new Properties();
      props.put("mail.host", "mail.servidorcorreo.com");

      // se crea un objeto de sesion
      Session conexionCorreo = Session.getInstance(props, null);
      // este objeto representa el mensaje a enviar
      Message mensaje = new MimeMessage(conexionCorreo);

      // los objetos Adress contienen informacion de recipientes de correo
      Address desde = new InternetAddress("tucorreo@servidorcorreo.biz",
          "Pepito Perez");
      Address para = new InternetAddress("destinatario@otroservidor.com");

      // asignamos el contenido. En este caso usamos 'text/plain' pero
      // es posible usar 'text/html' para enviar correos con contenido
      // HTML
      mensaje.setContent("Este es un mensaje de texto plano!",
          "text/plain");
      // asignar el origen del correo
      mensaje.setFrom(desde);
      // asignar un destinatario
      mensaje.setRecipient(Message.RecipientType.TO, para);
      // asignar el asunto del correo
      mensaje.setSubject("Hola, Java Mail!");

      Transport.send(mensaje);

    } catch (Exception ex) {
      ex.printStackTrace();
    }
  }
}

Para compilarlo y ejecutarlo desde la consola:

javac -cp mail.jar:. EnviarMail.java
java -cp mail.jar:. EnviarMail

Si estás usando Eclipse, debes añadir la librería mail.jar al classpath. En este artículo explico cómo hacerlo.

Descargar

18 Comentarios | deja el tuyo

Un enlace entrante

17 Comentarios en “Enviar correo desde Java”

  1. Daniel Aristizabal dice:

    Brother tengo lo siguiente…pero no me envia el mail al correo

    import javax.mail.*;
    import javax.mail.internet.*;
    import java.util.*;

    public class MailSender {
    public static void main() {
    try {
    // Se debe crear un archivo de propiedades que
    // contenga el nombre del servidor SMTP
    Properties props = new Properties();
    props.put(“mail.host”, “mail.servidorcorreo.com”);
    // 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”, “sdao32@gmail.com”);
    // Si requiere o no usuario y password para conectarse.
    props.setProperty(“mail.smtp.auth”, “true”);

    // se crea un objeto de sesion
    Session conexionCorreo = Session.getInstance(props, null);
    // este objeto representa el mensaje a enviar
    Message mensaje = new MimeMessage(conexionCorreo);

    // los objetos Adress contienen informacion de recipientes de correo
    Address desde = new InternetAddress(“sdao32@gmail.com”,
    “Pepito Perez”);
    Address para = new InternetAddress(“sdao32@hotmail.com”);

    // asignamos el contenido. En este caso usamos ‘text/plain’ pero
    // es posible usar ‘text/html’ para enviar correos con contenido
    // HTML
    mensaje.setContent(“Este es un mensaje de texto plano!”,
    “text/plain”);
    // asignar el origen del correo
    mensaje.setFrom(desde);
    // asignar un destinatario
    mensaje.setRecipient(Message.RecipientType.TO, para);
    // asignar el asunto del correo
    mensaje.setSubject(“Hola, Java Mail!”);

    Transport.send(mensaje);

    } catch (Exception ex) {
    ex.printStackTrace();
    }
    }
    }

    Help please!!!

¡Déjanos tu comentario!