segunda-feira, 14 de maio de 2012

Enviar EMail do GMAIL com JavaMail

Muitas aplicações hoje em dia necessitam enviar e-mail, utilizar o gmail é uma alternativa barata para isso, 

porem a conexão com gmail é feito atravez de SSL ou seja é feito atravez de uma conexão segura, conexão segura, então para se conectar deve ser utilizado uma conexão segura.

Utilizando JavaMail, o codigo para conexão é o seguinte:

private void connect() {

  Properties props = new Properties();

  props.put("mail.smtp.auth", "true");

  props.put("mail.smtp.starttls.enable", "true");

  props.put("mail.smtp.host", "smtp.gmail.com");

  props.put("mail.smtp.port", "465");

  session = Session.getInstance(props, new javax.mail.Authenticator() {

    protected PasswordAuthentication getPasswordAuthentication() {

       return new PasswordAuthentication("contaemail@ gmail.com", "senhanogmail")

    }

   });

}

Para montar a mensagem que será utilizada para envar há várias formas, estou utilizando MultiPart por dois motivos
  1. para que o conteudo possa ser um HTML
  2. para que possa posteriormente enviar anexos no e-mail.

note que onde é informado o texto é informado também que o email é html e que ele utiliza chartset = ISO-8859-1, isso faz com que o e-mail reconheça acentos utilizado em portugues.

private void enviarMenssagem(String para, String assunto, 
String texto) throws Exception{

  Message message = new MimeMessage(session);

  message.setFrom(new InternetAddress(this.usuario));

  message.setRecipients(Message.RecipientType.TO,  
      InternetAddress.parse(para));

  message.setSubject(assunto);

  BodyPart messageBodyPart = new MimeBodyPart();

  messageBodyPart.setContent(texto, "text/html; charset=ISO-8859-1");

  Multipart multipart = new MimeMultipart();

  multipart.addBodyPart(messageBodyPart);

  message.setContent(multipart );

  Transport.send(message);

}

Nenhum comentário:

Postar um comentário