domingo, 24 de março de 2013

Rapidinha JavaMail

Vai uma rapidinha?
Você vai gostar...
Vamos fazer um envio de email! Não é demais?
Eis os ingredientes:

  • Eclipse Juno 4.1
  • Java 7 (64 bits, mas isto não deve ser muito relevante)
  • JavaMail api
Eclipse e java o procedimento de instalação é só o que tem documentado aqui. Você pode olhar como fazer em qualquer outro artigo daqui caso não saiba fazer. Aí você volta, ;-)

Após o download do JavaMail, crie um projeto java chamado sample-mail e copie os jars  mail.jar, mailapi.jar e smtp.jar pra dentro da pasta do seu projeto.


E não esqueça de colocar as bibliotecas no build path, ;-)

Agora é mão na massa, crie uma classe chamada QuickMail.java:

package sample.mail;

import java.util.Properties;

import javax.mail.Message;
import javax.mail.Message.RecipientType;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class QuickMail {

 public QuickMail(String message) throws Exception {
  final Properties props = new Properties();
  props.load(QuickMail.class.getResourceAsStream("mail.properties"));
  Session session = Session.getInstance(props);
  session.setDebug(true);
  Message msg = new MimeMessage(session);
  msg.setFrom(new InternetAddress(props.getProperty("mail.smtp.from")));
  msg.setRecipient(RecipientType.TO, //
    new InternetAddress("larrypage@gmail.com"));
  msg.setSubject("Hail from the Other Side!");
  msg.setText(message);
  Transport transport = session.getTransport("smtp");
  transport.connect(props.getProperty("mail.smtp.from"),//
    props.getProperty("mail.smtp.auth"));
  transport.sendMessage(msg,msg.getAllRecipients());
 }

 public static void main(String[] args) throws Exception {
  new QuickMail("It works baby, it works!");
 }
}

Claro, tem ainda o detalhe daquele arquivo .properties pra fabricar: vamos fazer?

mail.smtp.from=thedude@gmail.com
mail.smtp.host=smtp.gmail.com
mail.smtp.port=465
mail.smtp.auth=the dude password
mail.smtp.socketFactory.port=465
mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
mail.smtp.socketFactory.fallback=false 
mail.smtp.ssl.enable=true

E assim temos um projeto bem simples,  pronto pra você modificar do jeito que quiser!


Notas importantes:

  1. Mudei todos os dados de autenticação. Claro. 
  2. O mundo do envio de email não é farra. Abuse e a conta será marcada como spam.
  3. Não vacile com os seus dados.
  4. Em caso de desgraça ou hecatombe nuclear, não venha me culpar.
E é isso, foi bom pra você? 

Sem mais.



3 comentários :