analytics

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;
        }
    }

....

1 comentario:

  1. ilizaremos 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 s noticiasdesanxenxo.es/biografia-de-hanbin/

    ResponderEliminar