Páginas

14 de ago. de 2015

Javamail com Gmail SSL ou TLS Java SE / Java EE com glassfish

Tutorial de envio de email utilizando como provedor o gmail.

Primeiro é preciso gerar e importar o certificado... detalhes são explicados usando o link a seguir:

http://notepad2.blogspot.com.br/2012/04/import-gmail-certificate-into-java.html

E para conseguir enviar usando JavaEE e o glassfish é preciso importar o certficado no arquivo C:\Program Files\glassfish-4.0\glassfish\domains\domain1\config\cacerts.jks , entende-se que esteja usando windows, caso contrário basta localizar o arquivo em seu sistema operacional. Depois disso basta criar a classe e o Método Java para envio, antes importe a biblioteca mail.jar ( http://www.oracle.com/technetwork/java/index-138643.html ) no projeto.

public void enviarEmail() {

           
        System.out.println("Teste Email...");

        Properties props = System.getProperties();
        //props.put("mail.smtp.starttls.enable", true); // funciona tb com tls
        props.put("mail.protocol.ssl.trust", true);
        props.put("mail.smtp.host", "smtp.gmail.com");
        props.put("mail.smtp.user", "usuargmailsemo@");
        props.put("mail.smtp.password", "senhadoemail");

        //props.put("mail.smtp.port", "587"); //// funciona tb com tls
        props.put("mail.smtp.port", "465");
        props.put("mail.smtp.auth", true);

     

        Session session = Session.getInstance(props, null);
        MimeMessage message = new MimeMessage(session);

        System.out.println("Port: " + session.getProperty("mail.smtp.port"));

        // Create the email addresses involved
        try {

            InternetAddress from = new InternetAddress("usuargmailsemo@");
            message.setSubject("Yes we can");
            message.setFrom(from);
            message.addRecipients(Message.RecipientType.TO, InternetAddress.parse("emaildesttino"));

            // Create a multi-part to combine the parts
            Multipart multipart = new MimeMultipart("alternative");

            // Create your text message part
            BodyPart messageBodyPart = new MimeBodyPart();
            messageBodyPart.setText("some text to send");

            // Add the text part to the multipart
            multipart.addBodyPart(messageBodyPart);

            // Create the html part
            messageBodyPart = new MimeBodyPart();
            String htmlMessage = "Our html text";
            messageBodyPart.setContent(htmlMessage, "text/html");

            // Add html part to multi part
            multipart.addBodyPart(messageBodyPart);

            // Associate multi-part with message
            message.setContent(multipart);

            // Send message
            Transport transport = session.getTransport("smtps");
            transport.connect("smtp.gmail.com", "usuargmailsemo@", "senhadoemail");
            System.out.println("Transport: " + transport.toString());
            transport.sendMessage(message, message.getAllRecipients());

        } catch (AddressException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (MessagingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }


    }


Links:

http://www.mkyong.com/java/javamail-api-sending-email-via-gmail-smtp-example/

http://notepad2.blogspot.com.br/2012/04/import-gmail-certificate-into-java.html

http://stackoverflow.com/questions/20122099/error-in-javamail-pkix-path-building-failed-unable-to-find-valid-certification

Se achou útil faça uma doação.