Boa tarde galera.
Seguinte, estou fazendo uma aplicação web (jsf 1.2 + postgres) e estou com certa dificuldade para mandar emails atravéz dela. Na minha aplicação, o cidadão vai se cadastrar, cadastrar um email e que já possui (@gmail, @hotmail…) para receber a confirmação do cadastro.
Estou usando um ex. em CommonsMail e já consegui enviar um email “teste” com ele. (de um email p/ ele mesmo, definindo eles no código fonte mesmo, apenas p/ teste eheh)
No meu bean ele está assim…
//meu CommonsMail.java
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.SimpleEmail;
public class CommonsMail {
public CommonsMail() throws EmailException {
}
public void enviaEmailSimples() throws EmailException {
SimpleEmail email = new SimpleEmail();
email.setHostName("smtp.meuprovedor.edu.br");
email.addTo("cassiano@meuprovedor.edu.br", "Teste"); //destinatário
email.setFrom("cassiano@meuprovedor.edu.br", "yahooooll"); // remetente
email.setSubject("Teste Email Projeto do Cassiano"); // assunto do e-mail
email.setMsg("TESTE eheheh"); //conteudo do e-mail
email.setAuthentication("cassiano", "minhasenha");
email.setSmtpPort(25); // porta smtp do meuprovedor
email.send();
}
public void manda() throws EmailException{
this.enviaEmailSimples();
}
}
Meu facesconfig.xml
<faces-config version="1.2"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">
<managed-bean>
<managed-bean-name>email</managed-bean-name>
<managed-bean-class>pkgEmail.CommonsMail</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
</faces-config>
Minha página simples p/ teste…
//meu .jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<f:view>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>JSP Page</title>
</head>
<h:form>
<h1><h:outputText value="Mandar Email"/></h1>
<h:commandButton value="manda" action="#{email.manda}" />
</h:form>
</f:view>
Meu problema está quando eu mudo o provedor de email do destinatário (vou mandar do cassiano@meuprovedor.edu.br para zanuzzo.ca@gmail.com por exemplo), sendo que quando eu vou mandar o email ele da este erro.
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: #{email.manda}: org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.meuprovedor.edu.br:25
javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
root cause
javax.faces.FacesException: #{email.manda}: org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.meuprovedor.edu.br:25
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:107)
javax.faces.component.UICommand.broadcast(UICommand.java:383)
javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:447)
javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:752)
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
root cause
javax.faces.el.EvaluationException: org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.meuprovedor.edu.br:25
javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:91)
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91)
javax.faces.component.UICommand.broadcast(UICommand.java:383)
javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:447)
javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:752)
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
root cause
org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.meuprovedor.edu.br:25
org.apache.commons.mail.Email.sendMimeMessage(Email.java:1242)
org.apache.commons.mail.Email.send(Email.java:1267)
pkgEmail.CommonsMail.enviaEmailSimples(CommonsMail.java:37)
pkgEmail.CommonsMail.manda(CommonsMail.java:42)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.apache.el.parser.AstValue.invoke(AstValue.java:191)
org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:68)
javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77)
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91)
javax.faces.component.UICommand.broadcast(UICommand.java:383)
javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:447)
javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:752)
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
root cause
javax.mail.SendFailedException: Invalid Addresses;
nested exception is:
com.sun.mail.smtp.SMTPAddressFailedException: 550 5.7.1 zanuzzo.ca@gmail.com: Relay access denied
com.sun.mail.smtp.SMTPTransport.rcptTo(SMTPTransport.java:1607)
com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:887)
javax.mail.Transport.send0(Transport.java:191)
javax.mail.Transport.send(Transport.java:120)
org.apache.commons.mail.Email.sendMimeMessage(Email.java:1232)
org.apache.commons.mail.Email.send(Email.java:1267)
pkgEmail.CommonsMail.enviaEmailSimples(CommonsMail.java:37)
pkgEmail.CommonsMail.manda(CommonsMail.java:42)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.apache.el.parser.AstValue.invoke(AstValue.java:191)
org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:68)
javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77)
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91)
javax.faces.component.UICommand.broadcast(UICommand.java:383)
javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:447)
javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:752)
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
root cause
com.sun.mail.smtp.SMTPAddressFailedException: 550 5.7.1 zanuzzo.ca@gmail.com: Relay access denied
com.sun.mail.smtp.SMTPTransport.rcptTo(SMTPTransport.java:1458)
com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:887)
javax.mail.Transport.send0(Transport.java:191)
javax.mail.Transport.send(Transport.java:120)
org.apache.commons.mail.Email.sendMimeMessage(Email.java:1232)
org.apache.commons.mail.Email.send(Email.java:1267)
pkgEmail.CommonsMail.enviaEmailSimples(CommonsMail.java:37)
pkgEmail.CommonsMail.manda(CommonsMail.java:42)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.apache.el.parser.AstValue.invoke(AstValue.java:191)
org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:68)
javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77)
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91)
javax.faces.component.UICommand.broadcast(UICommand.java:383)
javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:447)
javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:752)
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.26 logs.
Alguém sabe como posso resolver isso?
Tenho que usar outras .jar, estilo Javamail?
Obrigado e desculpe se o email está grande, mas é que preciso resolver este problema logo…