Ola eu tô com um problema na no envio de email. Assim, eu uso uma máquina virtual pra desenvolver e testar.
Eu devo estar fazendo alguma burrada. Segue o erro e as classe utilizadas:
<<<<<>>>>>
org.apache.commons.mail.EmailException: Sending the email to the following server failed : mail.terra.com.br:25
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:873)
at org.apache.commons.mail.Email.send(Email.java:898)
at com.rebaixarts.contato.services.EmailTeste.sendEmail(EmailTeste.java:32)
at com.rebaixarts.contato.struts.action.FaleConoscoAction.perform(FaleConoscoAction.java:50)
at org.apache.struts.action.Action.execute(Action.java:401)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:446)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:266)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1292)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:510)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:619)
<<<<<>>>>>
package com.rebaixarts.contato.services;
import java.util.Date;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.Authenticator;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import javax.mail.PasswordAuthentication;
import javax.mail.internet.InternetAddress;
import com.rebaixarts.contato.vo.*;
public class Email extends Authenticator implements ConfigPadraoEmail {
/* Classe de Autenticação */
public class SmtpAuthenticator extends Authenticator {
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(ConfigPadraoEmail.USERNAME,
ConfigPadraoEmail.PASSWORD);
}
}
/* Classe de Envio */
public String sendMail (String from, String mensagem) throws MessagingException {
Address destTo = new InternetAddress(ConfigPadraoEmail.USERNAME);
Address destCc = new InternetAddress(ConfigPadraoEmail.USERNAME);
Address destBcc = new InternetAddress(ConfigPadraoEmail.USERNAME);
try{
Properties mailProps = new Properties();
//Define o SMTP de envio
mailProps.put("mail.smtp.host", ConfigPadraoEmail.MAILSERVER);
//Realiza a autenticação
Authenticator auth = new SmtpAuthenticator();
Session mailsession = Session.getInstance(mailProps, auth);
//Inicializa o objeto Message
Message message = new MimeMessage(mailsession);
message.setFrom(new InternetAddress(from));
//Define o(s) destinatário(s): TO, CC, BCC
if (destTo != null) {
message.setRecipient(Message.RecipientType.TO, destTo);
}
if (destCc != null) {
message.setRecipient(Message.RecipientType.CC, destCc);
}
if (destBcc != null) {
message.setRecipient(Message.RecipientType.BCC, destBcc);
}
//Define o assunto do E-Mail
message.setSubject(ConfigPadraoEmail.ASSUNTO);
//Define o conteúdo da Mensagem
message.setContent(mensagem.toString().replace("\n", "<br>"), "text/html");
//Define a data atual a mensagem
message.setSentDate(new Date());
//Enviado o E-Mail
Transport transport = mailsession.getTransport("smtp");
System.out.println("Conectando no servidor de smtp: "+ ConfigPadraoEmail.MAILSERVER +"...");
//Aqui ocorre o erro!!!!!
transport.connect(ConfigPadraoEmail.MAILSERVER, ConfigPadraoEmail.USERNAME, ConfigPadraoEmail.PASSWORD);
if (transport.isConnected()) {
System.out.println("Conectado ["+ ConfigPadraoEmail.MAILSERVER +"]");
System.out.println("Enviando Mensagem...");
transport.send(message);
System.out.println("Mensagem Enviada!!!");
}
} catch (MessagingException e) {
e.printStackTrace();
return e.getMessage();
}
return null;
}
}
<<<<<<Interface com variáveis>>>>>>
package com.rebaixarts.contato.vo;
public interface ConfigPadraoEmail {
public static final String USERNAME = "meuemail@terra.com.br";
public static final String MAILSERVER = "mail.terra.com.br";
public static final String ASSUNTO = "Dúvida Internauta";
public static final String PASSWORD = "senha";
}
<<<<<>>>>>
package com.rebaixarts.contato.struts.action;
import java.io.IOException;
import org.apache.commons.mail.*;
import javax.mail.MessagingException;
import javax.servlet.ServletException;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.rebaixarts.contato.services.Email;
import com.rebaixarts.contato.services.EmailTeste;
import com.rebaixarts.contato.struts.form.FaleConoscoForm;
public final class FaleConoscoAction extends Action {
public ActionForward perform(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {
FaleConoscoForm enviarForm = (FaleConoscoForm) form;
Email servicesEmail = new Email();
String result = null;
String nome = enviarForm.getNome(); //Nome qualquer
String texto = enviarForm.getTexto(); //Um texto em uma textArea
String remetente = enviarForm.getEmail(); //Um email válido qualquer
//Tratamento para página inicial
if (nome == null || remetente == null) {
return (mapping.findForward("first"));
} else if (nome.equals("") || remetente.equals("")) {
return (mapping.findForward("empty"));
}
//Enviando Email
try {
result = servicesEmail.sendMail(remetente, texto);
} catch (MessagingException e) {
e.printStackTrace();
}
if (result == null) {
return mapping.findForward("failure");
} else {
enviarForm.setNome(null);
enviarForm.setEmail(null);
enviarForm.setTexto(null);
}
return mapping.findForward("success");
}
}