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

ViniGodoy

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.

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

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.

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:

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);
        
    }  
  
  }
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:

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);
        
    }  
  
  }
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:

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:

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)

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]
rodrigofonsecajr

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