quarta-feira, 9 de julho de 2008

JavaMail e CommonsMail

Olá povo,

Estou lendo atualmente o livro de JavaWeb do Edson Gonçalves Desenvolvendo Aplicações Web com JSP, Servlets, JSF, Hibernate, EJB e Ajax. Um grande livro por sinal, que adotei para minhas aulas.
Porém, quando estava lendo o capítulo sobre envio de e-mails, o exemplo do livro não funcionava nem com reza braba. E o pior de tudo, não dava nenhuma exception. O código usava o servidor JAMES (http://james.apache.org/) pra enviar e-mails desse servidor, local, pra outros e-mails.
Depois de procurar que nem um doido na internet, resolví falar com o autor do livro. Ele tinha resolver meu problema, era obrigação dele (rsrsrs).
Mandei um e-mail pra ele, e ele foi muito atencioso e me mandou a resposta salvadora. O problema é que os provedores (como a Speedy por exemplo) bloqueiam esse tipo de envio. Me conformei e usei o servidor do G-Mail mesmo.
Segue abaixo o JSP que usa o commonsmail (http://commons.apache.org/email/) pra enviar um email simples. Mas lembrem-se pessoal, não usem pra spam.

<%@ page language="java" contentType="text/html" pageEncoding="ISO-8859-1"
import="org.apache.commons.mail.SimpleEmail"%>
<html>
<head>
<title>Enviando e-mails com Commons e-mail</title>
</head>
<body>
<%
SimpleEmail email = new SimpleEmail();
email.setDebug(true);
email.setHostName("smtp.gmail.com");
email.setSmtpPort(465);
email.setDebug(true);
email.setTLS(true);
email.setSSL(true);
email.setSslSmtpPort("465");
email.setAuthentication("usuarioDoGmail","senhaDoGmail");
email.addTo("destinatario@hotmail.com");
email.setFrom("qqeremaildeorigem@gmail.com");
email.setSubject("Mensagem de Teste");
email.setMsg("Teste de e-mail utilizando commons email");
email.send();
%>
<h2>E-mail enviado com sucesso.</h2>
</body>
</html>

Isso resolveu meus problemas, finalmente!!!
4br4ç05,
nglauber

Nenhum comentário: