Envio de email com form JSP e Servlet

13 respostas
R

Olá, estou tentando fazer um formulário para envio de email para posteriormente utiliza-lo como portlet fazendo as adaptações necessárias. O form já está pronto, o servlet não está implementado. Dei uma pesquisada para tentar encontrar uma solução para o meu problema, mas não consegui, sempre que insiro os pedaços de código que encontro, o tomcat não carrega. O problema que esbarrei é o seguinte:

Preencho todos os campos do form, clico em enviar, e a página de confirmação de envio aparece confirmando o envio, porém, pelo fato de não ter implementado a classe do servlet, nada é enviado. Gostaria de saber se alguém sabe um modo simples de implementar a classe do Servlet para fazer o envio.

(OBS: pesquisei algo sobre envio de email pelo Gmail, mas não consegui incluir os códigos no servlet.)

Eis meus códigos:
1º o form:

<fieldset>
	<legend><b>Formulário de contato</b></legend>
		<form action="ServletController" method="post">
			<table align="center" cellspacing="0">
				<tr>
					<td align="right">Nome:</td>
					<td><input type="text" name="nome" size="45" /></td>
				</tr>
				<tr>
					<td align="right">E-mail:</td>
					<td><input type="text" name="email" size="45" /></td>
				</tr>
				<tr>
					<td align="right">Assunto:</td>
					<td><input type="text" name="assunto" size="45" /></td>
				</tr>
				<tr>
					<td align="right" valign="top">Mensagem:</td>
					<td><textarea rows="10" cols="35"></textarea></td>
				</tr>
				<tr>
					<td align="right" valign="bottom">Código:</td>
					<td>
						<p><img src="captcha.jpg"></p> <!-- insere o kaptcha para validacão -->
						<input type="text" name="codigo" size="26" />
					</td>
				</tr>
				<tr>
					<td colspan="2" align="center">
						<input type="submit" value="Enviar mensagem" />
						<input type="reset" value="Limpar" />
					</td>
				</tr>
			</table>
		</form>
</fieldset>

2º o que eu fiz do Servlet (praticamente nada)

@WebServlet("/ServletController")
public class ServletController extends HttpServlet {
	private static final long serialVersionUID = 1L;

	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		this.processaRequisicao(request, response);
	}

	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		this.processaRequisicao(request, response);
	}

	public void processaRequisicao(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
		RequestDispatcher view = request.getRequestDispatcher("sucesso.jsp");
		view.forward(request, response);
	}
}

Se alguém souber um jeito simples de implementar o servlet para concretizar o envio, agradeço.

13 Respostas

V

Por favor, não marque o título com informações óbvias como (Dúvida) ou (Ajuda).

R

Foi mal, é que reparei que haviam várias visualizações mas nenhuma resposta, pensei que os usuários estavam entrando imaginando ser um “tutorial” ao invés de uma dúvida.

R

vc só precisa implementar no seu servlet amigo, aqui tem várias citações pro seu problema, só da uma procurada, http://www.guj.com.br/java/87637-api-java-mail---usando-o-gmaill essa aqui vai te ajudar, usei este tuto uns meses atras :smiley:

Boa sorte

R

rodrigofonsecajr:
vc só precisa implementar no seu servlet amigo, aqui tem várias citações pro seu problema, só da uma procurada, http://www.guj.com.br/java/87637-api-java-mail---usando-o-gmaill essa aqui vai te ajudar, usei este tuto uns meses atras :smiley:

Boa sorte

Olá, obrigado pela dica, mas a classe que ele cita como “classe para enviar e-mail” seria o servlet? se estiver enganado me corrija por favor.

R

No seu caso você pode adicionar o ‘miolo’ do código no seu servlet, o servlet nada mais é que uma classe JAVA, tem algumas configs que dão certos poderes a ela, então quase todo código em JAVA pode ser adicionado ao seu servlet.

Você deve copiar da linha 12 a 119 do tutorial e ir corrigindo os erros que a IDE vai te mostrar, adaptando a sua necessidade, daí vai postando os erros que agente te ajuda aqui

:smiley:

R

rodrigofonsecajr:
No seu caso você pode adicionar o ‘miolo’ do código no seu servlet, o servlet nada mais é que uma classe JAVA, tem algumas configs que dão certos poderes a ela, então quase todo código em JAVA pode ser adicionado ao seu servlet.

Você deve copiar da linha 12 a 119 do tutorial e ir corrigindo os erros que a IDE vai te mostrar, adaptando a sua necessidade, daí vai postando os erros que agente te ajuda aqui

:smiley:

Inseri as linhas que você havia sugerido, fazendo alterações necessárias para não ocorrerem erros de sintaxe, porém ao compilar, o server do tomcat não carrega e aponta o seguinte erro:

[color=red]Apr 19, 2013 3:56:43 PM org.apache.catalina.startup.Catalina start

SEVERE: Catalina.start:

org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]]

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)

at org.apache.catalina.startup.Catalina.start(Catalina.java:684)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:601)

at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322)

at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:456)

Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Catalina]]

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)

at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:732)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)

 7 more

Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina]]

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)

at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)

 9 more

Caused by: org.apache.catalina.LifecycleException: A child container failed during start

at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131)

at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:302)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)

 11 more

Apr 19, 2013 3:56:43 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 9293 ms [/color]

Eis o código do servlet:

@WebServlet("/ServletController")
public class ServletController extends HttpServlet {
	private static final long serialVersionUID = 1L;
	
	private String mailSMTPServer;    
    private String mailSMTPServerPort;
    
    public ServletController(){
    	mailSMTPServer = "smtp.gmail.com";    
        mailSMTPServerPort = "465";
    }
    
	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		this.processaRequisicao(request, response, null, null);
	}

	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		this.processaRequisicao(request, response, null, null);
	}

	public void processaRequisicao(HttpServletRequest request, HttpServletResponse response, String mailSMTPServer, String mailSMTPServerPort) throws ServletException, IOException{
		
	    this.mailSMTPServer = mailSMTPServer;    
	    this.mailSMTPServerPort = mailSMTPServerPort;     
		
		String destinatario = request.getParameter("destinatario");
		String assunto = request.getParameter("assunto");
		String mensagem = request.getParameter("mensagem");
		String envia = request.getParameter("envia");
		
		Mensagem msg = new Mensagem();
		msg.setDestinatario(destinatario);
		msg.setAssunto(assunto);
		msg.setMensagem(mensagem);
		msg.setEnvia(envia);
		
		mailSMTPServer = "smtp.gmail.com";
		mailSMTPServerPort = "465";
		
		Properties props = new Properties();    
	     
        props.put("mail.transport.protocol", "smtp"); //define protocolo de envio como SMTP    
        props.put("mail.smtp.starttls.enable","true");     
        props.put("mail.smtp.host", mailSMTPServer); //server SMTP do GMAIL    
        props.put("mail.smtp.auth", "true"); //ativa autenticacao    
        props.put("mail.smtp.user", destinatario); //usuario ou seja, a conta que esta enviando o email (tem que ser do GMAIL)    
        props.put("mail.debug", "true");    
        props.put("mail.smtp.port", mailSMTPServerPort); //porta    
        props.put("mail.smtp.socketFactory.port", mailSMTPServerPort); //mesma porta para o socket    
        props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");    
        props.put("mail.smtp.socketFactory.fallback", "false");
	    
        class SimpleAuth extends Authenticator {  
            public String username = null;  
            public String password = null;  
          
          
            public SimpleAuth(String user, String pwd) {  
                username = user;  
                password = pwd;  
            }  
          
            protected PasswordAuthentication getPasswordAuthentication() {  
                return new PasswordAuthentication (username,password);  
            }
        }
        
        SimpleAuth auth = null;  
        auth = new SimpleAuth ("[email removido]","edmano10");
        
        Session session = Session.getDefaultInstance(props, auth);  
        session.setDebug(true);
        
        Message mens = new MimeMessage(session);  
        
        try {  
              
            mens.setRecipient(Message.RecipientType.TO, new InternetAddress(destinatario));  
              
            mens.setFrom(new InternetAddress(envia));  
            
            mens.setSubject(assunto);  
              
            mens.setContent(mensagem,"text/plain");  
  
        } catch (Exception e) {  
            System.out.println("&gt;&gt; Erro: Completar Mensagem");  
            e.printStackTrace();  
        }  
          
          
        Transport tr;  
        try {  
            tr = session.getTransport("smtp");   
             
            tr.connect(mailSMTPServer, "[email removido]", "xxxxxxx");  
            mens.saveChanges(); // don't forget this  
            
            tr.sendMessage(mens, mens.getAllRecipients());  
            tr.close();  
        } catch (Exception e) {  
            // TODO Auto-generated catch block  
            System.out.println("&gt;&gt; Erro: Envio Mensagem");  
            e.printStackTrace();  
        }  
  
        RequestDispatcher view = request.getRequestDispatcher("sucesso.jsp");
		view.forward(request, response);
        
    }  
  
  }
R

baixe a última versão do JAVAMAIL e coloque na pasta WEB-INF/LIB os jars

http://www.oracle.com/technetwork/java/javamail/index-138643.html

mailapi.jar e smtp.jar

atualiza o projeto e roda denovo :slight_smile:

R

rodrigofonsecajr:
baixe a última versão do JAVAMAIL e coloque na pasta WEB-INF/LIB os jars

http://www.oracle.com/technetwork/java/javamail/index-138643.html

mailapi.jar e smtp.jar

atualiza o projeto e roda denovo :slight_smile:

Fiz oque você sugeriu novamente, o projeto chegou a rodar, mas quando cliquei no botão para enviar a mensagem ocorreu o seguinte erro:

[color=red]

Apr 19, 2013 4:16:07 PM org.apache.catalina.core.StandardWrapperValve invoke

SEVERE: Servlet.service() for servlet [net.antoniopassos.appwebform.controle.ServletController] in context with path [/AppWebForm] threw exception

java.lang.NullPointerException

at java.util.Hashtable.put(Hashtable.java:542)

at net.antoniopassos.appwebform.controle.ServletController.processaRequisicao(ServletController.java:70)

at net.antoniopassos.appwebform.controle.ServletController.doPost(ServletController.java:42)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)

at net.antoniopassos.appwebform.controle.FiltroEmail.doFilter(FiltroEmail.java:39)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)

at net.antoniopassos.appwebform.controle.FiltroCaptcha.doFilter(FiltroCaptcha.java:39)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)

at net.antoniopassos.appwebform.controle.FiltroEmail.doFilter(FiltroEmail.java:39)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)

at net.antoniopassos.appwebform.controle.FiltroCaptcha.doFilter(FiltroCaptcha.java:39)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)

at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:947)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)

at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1009)

at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)

at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

at java.lang.Thread.run(Thread.java:722)

[/color]

Pelo oque eu vi em algumas das linhas dos erros existem erros nas linhas 42 e 70 do Servlet.

@WebServlet("/ServletController")
public class ServletController extends HttpServlet {
	private static final long serialVersionUID = 1L;
	
	private String mailSMTPServer;    
    private String mailSMTPServerPort;
    
    public ServletController(){
    	mailSMTPServer = "smtp.gmail.com";    
        mailSMTPServerPort = "465";
    }
    
	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		this.processaRequisicao(request, response, mailSMTPServer, mailSMTPServerPort); ------&gt; ERRO NESSA LINHA
	}

	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		this.processaRequisicao(request, response, mailSMTPServer, mailSMTPServerPort);
	}

	public void processaRequisicao(HttpServletRequest request, HttpServletResponse response, String mailSMTPServer, String mailSMTPServerPort) throws ServletException, IOException{
		
	    this.mailSMTPServer = mailSMTPServer;    
	    this.mailSMTPServerPort = mailSMTPServerPort;     
		
		String destinatario = request.getParameter("destinatario");
		String assunto = request.getParameter("assunto");
		String mensagem = request.getParameter("mensagem");
		String envia = request.getParameter("envia");
		
		Mensagem msg = new Mensagem();
		msg.setDestinatario(destinatario);
		msg.setAssunto(assunto);
		msg.setMensagem(mensagem);
		msg.setEnvia(envia);
		
		mailSMTPServer = "smtp.gmail.com";
		mailSMTPServerPort = "465";
		
		Properties props = new Properties();    
	     
        props.put("mail.transport.protocol", "smtp"); //define protocolo de envio como SMTP    
        props.put("mail.smtp.starttls.enable","true");     
        props.put("mail.smtp.host", mailSMTPServer); //server SMTP do GMAIL    
        props.put("mail.smtp.auth", "true"); //ativa autenticacao    
        props.put("mail.smtp.user", destinatario); -----&gt;ERRO NESSA LINHA  
        props.put("mail.debug", "true");    
        props.put("mail.smtp.port", mailSMTPServerPort); //porta    
        props.put("mail.smtp.socketFactory.port", mailSMTPServerPort); //mesma porta para o socket    
        props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");    
        props.put("mail.smtp.socketFactory.fallback", "false");
	    
        class SimpleAuth extends Authenticator {  
            public String username = null;  
            public String password = null;  
          
          
            public SimpleAuth(String user, String pwd) {  
                username = user;  
                password = pwd;  
            }  
          
            protected PasswordAuthentication getPasswordAuthentication() {  
                return new PasswordAuthentication (username,password);  
            }
        }
        
        SimpleAuth auth = null;  
        auth = new SimpleAuth ("[email removido]","xxxxxx");
        
        Session session = Session.getDefaultInstance(props, auth);  
        session.setDebug(true);
        
        Message mens = new MimeMessage(session);  
        
        try {  
              
            mens.setRecipient(Message.RecipientType.TO, new InternetAddress(destinatario));  
              
            mens.setFrom(new InternetAddress(envia));  
            
            mens.setSubject(assunto);  
              
            mens.setContent(mensagem,"text/plain");  
  
        } catch (Exception e) {  
            System.out.println("&gt;&gt; Erro: Completar Mensagem");  
            e.printStackTrace();  
        }  
          
          
        Transport tr;  
        try {  
            tr = session.getTransport("smtp");   
             
            tr.connect(mailSMTPServer, "[email removido]", "xxxxxxx");  
            mens.saveChanges(); // don't forget this  
            
            tr.sendMessage(mens, mens.getAllRecipients());  
            tr.close();  
        } catch (Exception e) {  
            // TODO Auto-generated catch block  
            System.out.println("&gt;&gt; Erro: Envio Mensagem");  
            e.printStackTrace();  
        }  
  
        RequestDispatcher view = request.getRequestDispatcher("sucesso.jsp");
		view.forward(request, response);
        
    }  
  
  }
R

Bom, blz agora o componente do email esta ok, da uma verificada em como está a configuração do servlet, pq o erro é NullPointerException, deve ter algo preenchido errado, da uma olhada nas linhas

42 - Properties props = new Properties();

e

98 - tr.connect(mailSMTPServer, "[email removido]", “xxxxxxx”);

:smiley:

R

rodrigofonsecajr:
Bom, blz agora o componente do email esta ok, da uma verificada em como está a configuração do servlet, pq o erro é NullPointerException, deve ter algo preenchido errado, da uma olhada nas linhas

42 - Properties props = new Properties();

e

98 - tr.connect(mailSMTPServer, "[email removido]", “xxxxxxx”);

:smiley:

em uma das linhas de erro, ele cita alguma irregularidade na linha 70 e na 42 do servlet

SEVERE: Servlet.service() for servlet [net.antoniopassos.appwebform.controle.ServletController] in context with path [/AppWebForm] threw exception

java.lang.NullPointerException

at java.util.Hashtable.put(Hashtable.java:542)

[color=red]at net.antoniopassos.appwebform.controle.ServletController.processaRequisicao(ServletController.java:70)

at net.antoniopassos.appwebform.controle.ServletController.doPost(ServletController.java:42)[/color]

aqui estão as linhas do código:

R

da um sysout neste destinatario, e me fala o que vai retornar

precisamos saber se ele é usuario ou seja, a conta que esta enviando o email neste caso tem que ser do (tem que ser do GMAIL)

R

rodrigofonsecajr:
da um sysout neste destinatario, e me fala o que vai retornar

precisamos saber se ele é usuario ou seja, a conta que esta enviando o email neste caso tem que ser do (tem que ser do GMAIL)

Sim. Olhei de novo o código do outro post que vc mandou e vi que a variável destinatário, na verdade era para ser o email do usuário (campo e-mail do form). Fiz a modificação, rodei o projeto, ele chegou na página de sucesso, porém no console, aparecem erros tratados no try/catch.

INFO: Server startup in 3634 ms

DEBUG: JavaMail version 1.4.7

DEBUG: URL jar:file:/home/romano/Projetos/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/AppWebForm/WEB-INF/lib/smtp.jar!/META-INF/javamail.providers

DEBUG: successfully loaded resource: jar:file:/home/romano/Projetos/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/AppWebForm/WEB-INF/lib/smtp.jar!/META-INF/javamail.providers

DEBUG: Tables of loaded providers

DEBUG: Providers Listed By Class Name: {com.sun.mail.smtp.SMTPSSLTransport=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Oracle], com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle]}

DEBUG: Providers Listed By Protocol: {smtps=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Oracle], smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle]}

DEBUG: URL jar:file:/home/romano/Projetos/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/AppWebForm/WEB-INF/lib/smtp.jar!/META-INF/javamail.address.map

DEBUG: successfully loaded resource: jar:file:/home/romano/Projetos/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/AppWebForm/WEB-INF/lib/smtp.jar!/META-INF/javamail.address.map

DEBUG: setDebug: JavaMail version 1.4.7

>> Erro: Completar Mensagem

[color=red]java.lang.NullPointerException

at javax.mail.internet.InternetAddress.parse(InternetAddress.java:673)

at javax.mail.internet.InternetAddress.parse(InternetAddress.java:633)

at javax.mail.internet.InternetAddress.<init>(InternetAddress.java:111)

at net.antoniopassos.appwebform.controle.ServletController.processaRequisicao(ServletController.java:104)

at net.antoniopassos.appwebform.controle.ServletController.doPost(ServletController.java:42)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)

at net.antoniopassos.appwebform.controle.FiltroEmail.doFilter(FiltroEmail.java:39)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)

at net.antoniopassos.appwebform.controle.FiltroCaptcha.doFilter(FiltroCaptcha.java:39)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)

at net.antoniopassos.appwebform.controle.FiltroEmail.doFilter(FiltroEmail.java:39)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)

at net.antoniopassos.appwebform.controle.FiltroCaptcha.doFilter(FiltroCaptcha.java:39)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)

at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:947)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)

at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1009)

at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)

at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

at java.lang.Thread.run(Thread.java:722)[/color]

DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle]

DEBUG SMTP: useEhlo true, useAuth true

DEBUG SMTP: trying to connect to host "<a href="http://smtp.gmail.com">smtp.gmail.com</a>", port 465, isSSL false

>> Erro: Envio Mensagem

[color=red]javax.mail.MessagingException: Could not connect to SMTP host: <a href="http://smtp.gmail.com">smtp.gmail.com</a>, port: 465;

nested exception is:

java.net.NoRouteToHostException: No route to host

at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1961)

at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:654)

at javax.mail.Service.connect(Service.java:295)

at javax.mail.Service.connect(Service.java:176)

at net.antoniopassos.appwebform.controle.ServletController.processaRequisicao(ServletController.java:120)

at net.antoniopassos.appwebform.controle.ServletController.doPost(ServletController.java:42)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)

at net.antoniopassos.appwebform.controle.FiltroEmail.doFilter(FiltroEmail.java:39)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)

at net.antoniopassos.appwebform.controle.FiltroCaptcha.doFilter(FiltroCaptcha.java:39)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)

at net.antoniopassos.appwebform.controle.FiltroEmail.doFilter(FiltroEmail.java:39)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)

at net.antoniopassos.appwebform.controle.FiltroCaptcha.doFilter(FiltroCaptcha.java:39)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)

at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:947)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)

at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1009)

at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)

at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

at java.lang.Thread.run(Thread.java:722)

Caused by: java.net.NoRouteToHostException: No route to host

at java.net.PlainSocketImpl.socketConnect(Native Method)

at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)

at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)

at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)

at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)

at java.net.Socket.connect(Socket.java:579)

at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:618)

at sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:160)

at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:321)

at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:211)

at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1927)

 35 more[/color]
R

brother é isso aí, agora é só as configs mesmo, olha no erro

DEBUG SMTP: trying to connect to host “smtp.gmail.com”, port 465, isSSL false

um erro está aqui

try {    
                
            mens.setRecipient(Message.RecipientType.TO, new InternetAddress(destinatario));    
                
            mens.setFrom(new InternetAddress(envia));    
              
            mens.setSubject(assunto);    
                
            mens.setContent(mensagem,"text/plain");    
    
        }

o outro parece estar aqui

try {    
            tr = session.getTransport("smtp");     
               
            tr.connect(mailSMTPServer, "[email removido]", "xxxxxxx");    
            mens.saveChanges(); // don't forget this    
              
            tr.sendMessage(mens, mens.getAllRecipients());    
            tr.close();    
        }
Criado 19 de abril de 2013
Ultima resposta 19 de abr. de 2013
Respostas 13
Participantes 3