analytics

Mostrando entradas con la etiqueta ejemplo java mail. Mostrar todas las entradas
Mostrando entradas con la etiqueta ejemplo java mail. Mostrar todas las entradas

jueves, 26 de octubre de 2017

Java enviar email desde codigo ejemplo gmail



Para ver una explicación extendida de este artículo, accede a la versión ampliada.
Vamos a ver cómo enviar emails desde Java con un ejemplo muy sencillo. La dependencia que vamos a emplear podeis encontrarla aquí. Como veis, utilizaremos el paquete javax.mail. Utilizando el SMTP indicado y el PUERTO indicado, funciona correctamente para cuentas de Gmail. Aunque cuidado, es posible que haya que indicar a Gmail en las opciones de personalización que se va a emplear externamente esta cuenta, sino, quizás no nos permita utilizarla desde código.


import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

....

    public static final String USER = "...???....@gmail.com";
    public static final String PASS = ".....???....";
    public static final String HOST = "localhost";
    public static final String SMTP = "smtp.gmail.com";
    public static final String port = "465";

 public static boolean enviarMail(String from, String to, String subject, String text) {

        Properties props = new Properties();
        props.put("mail.smtp.host", SMTP);
        props.put("mail.smtp.socketFactory.port", port);
        props.put("mail.smtp.socketFactory.class",
                "javax.net.ssl.SSLSocketFactory");
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.port", port);
  
        Session session = Session.getDefaultInstance(props,
            new javax.mail.Authenticator() {
                protected PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication(USER,PASS);
                }
            });
  
        try {
  
            Message message = new MimeMessage(session);
            message.setFrom(new InternetAddress(from));
            message.setRecipients(Message.RecipientType.TO,
                    InternetAddress.parse(to));
            message.setSubject(subject);
            message.setText(text);
  
            Transport.send(message);
  
            System.out.println("Sent mail to "+to);
                        return true;
  
        } catch (MessagingException e) {
                    e.printStackTrace();
                        return false;
        }
    }

....