Formulário de Contato por email usando linguagem Java

Galera, tudo bem com vocês? Gostaria que vocês me dessem uma ajuda aqui!

Criei um projeto java no Netbeans e to querendo fazer um formulário de contato funcionar. Acontece que o form já está criado na jsp, certinho e responsivo.

O que eu preciso de ajuda mesmo é pra fazer um servlet, que vai enviar para o meu email do gmail, o que o usuário digitar nos campos do formulário.
Este servlet será chamado no form, através do “action” do form, e do method=“post”.

Estou quase desistindo, pois ja faz semanas que to vendo vídeos no YouTube de como fazer um, e nunca da certo! Nesses testes que fiz com os vídeos, eu importava certinho as bibliotecas, ativava um negócio no Gmail, que falava de aplicações externas, etc. Fazia tudo certo, mas nunca funcionava!

Se algúem poder me ajudar, eu agradeceria!!

O que quer dizer com nunca funcionava, dava qual erro?

2 curtidas

Existe essa matéria que explica isso, você pode tentar.

1 curtida

No ultimo que fiz (que é o que me lembro melhor), dava erro 404, e tava escrito “not requested” se não me engano.

Vou escrever exatamente o que eu fazia, para você entender melhor o que ta acontecendo:

  • Importava as bibliotecas 1.4 de email do java para meu projeto do Netbeans;
  • Fazia o servlet, depois chamava o servlet no action=“NomeDoServlet” do form;
  • Rodava o projeto no NetBeans, daí ele abria a jsp no Firefox;
  • Eu preenchia tudo os campos do formulário e clicava no botão Enviar. Na mesma hora ele já me levava para uma página em branco, provavelmente gerada pelo Glassfish, mostrando esse erro 404.

*Eu sei que esse erro 404 quer dizer que o java não ta achando a chamada do servlet no meu projeto, mas acontece que eu chamava o servlet no form, da maneira correta!

*Não sei se pode ser isso, mas o Netbeans indicava umas coisas obsoletas no meu servlet, tipo o SSL e o “TLS”, ou algo assim;

*Tenho o código do servlet caso você queira analisar;

Muito obrigado, vou ler e ver o que consigo fazer.

@STNeto eu agradeço o tutorial. Eu o fiz. Importei as bibliotecas. Criei a classe java “JavaMailApp”. O problema é que não sei como chamar essa classe java no form de contato que fiz na jsp.

Eu chamei ela no form, dentro do action, como mostra o código abaixo, mas mesmo assim não funcionou, pois assim que eu cliquei em enviar, apareceu o site criado pelo Glassfish do Netbeans, dizendo “HTTP Status 404 - Not Found - descriptionThe requested resource is not available.”!

<form action="JavaMailApp" method="POST">


</form>

Você sabe me dizer como chamar ela no form? Obrigado!!!

Usou a anotação @WebServlet("/JavaMailApp") no servlet do email?

1 curtida

@STNeto
Não utilizei essa anotação ai porque o tutorial que você me passou, do link abaixo, não é um servlet, é uma classe java!

Eu estranhei porque todo tutorial que eu via no YouTube, eles faziam em servlet, mas esse tutorial ai do link do DevMedia que vc me passou, não é um servlet, e sim uma classe java. Por isso eu perguntei como chamar uma classe no java no form!

Link do tutorial: https://www.devmedia.com.br/enviando-email-com-javamail-utilizando-gmail/18034

eu tenho um projeto em Struts-1 que usar javamail com Gmail, de uma olhada e tenta adapta-la para seu problema :

1 curtida

@Daniel_Dias eu vi seu código ai e percebi que é uma classe também. Da pra dar uma adaptada sim pra email, mas acontece que, por ser uma classe java, eu não sei chama-la no form da jsp.

Por exemplo:

  • Para chamar um servlet no formulário de uma jsp, é só fazer o seguinte:
<form action="NomeDoServlet" method="post" .........



  • Mas e para chamar uma classe no form, como faz?

O tutorial mandava fazer em uma classe o app. Dai eu fiz como manda o tutorial, porém estou com dificuldades em como chamar uma classe no form. Nem sei se isso é possível!

Mas eu agradeço seu apoio :+1:

Aparentemente o problema é que está vendo vídeos que não tem relação nenhuma com seu problema. O problema é que você não tá sabendo criar e configurar o servlet que irá tratar a requisição. Procure um vídeo ou livro sobre como fazer um “hello world” usando servlets. A boa notícia é que não é difícil se você já sabe Java.

@pfk66
Não, vocês não entenderam!
O tutorial que me indicaram acima para fazer o formulário de contato funcionar, é usando uma classe java. Eu achei muito estranho isso, pois todo tutorial que já vi, é utilizando um servlet.

Se o tutorial fosse utilizando servlet, é tranquilo, pois basta você fazer o servlet, e chamar ele no formulário da jsp, através do “action” que tem dentro da tag <form .

Mas, já o tutorial que me recomendaram acima, não é feito com um servlet, é feito em uma classe java, e ai, assim complica, pois eu não sei chamar uma classe java no formulario da jsp. Eu já tentei chamar ela igual o servlet, no atributo action do formulario, mas não funcionou!

Pra falar, a verdade, eu nem sei se é possível chamar uma classe java no formulario, por isso to continuando a discussão aqui no GUJ com voces!

Aqui vai um link do JavaMail como Servlet, javatpoint, está em inglês, mas o que você quer é o código. No final da página, eles até tem o .zip do código, caso queria copiar direto.

1 curtida

Nem classe Java, nem servlet. No form action você coloca uma url. O servidor que associa a URL a um servlet. Por isso achei que não tem experiência com Java web, senão saberia que um formulário html não pode saber o que é um servlet ou classe Java.

1 curtida

Sim, realmente eu precisava do código para resolver meu problema. Vou testar esse!
Muito obrigado @STNeto

@pfk66 Sim, tenho dificuldades com programação, mas na faculdade aprendi que pode colocar um servlet sim no form, porém nunca ouvi dizer que pode colocar uma classe java lá, por isso tava perguntando aqui no GUJ, afinal, o tutorial utilizava classe Java e não servlet.

Para colocar um servlet no form, basta criá-lo, por exemplo, no pacote controller “br.com.NomeDoProjeto.controller”, e depois, pegar o nome deste servlet e chamá-lo através do “action” do form. Por exemplo, com o servlet de nome “Contato”: <form action=“Contato” method=“POST”…

De qualquer forma, obrigado!!

Isso não existe. Por isso estou falando para estudar mais sobre servlet, mais especificamente como mapear requests.

@pfk66
Eu agradeço a dica de estudo, mesmo! Mas, tirei um print dos projetos que fiz na faculdade para te mostrar que é possível sim chamar um servlet através do atributo action do form.

No exemplo das fotos abaixo, o form está mandando os dados do produto para o servlet “SalvarProduto”. Este servlet será responsável por salvar no banco de dados, os dados digitados neste form

Era tipo isso que eu queria fazer com o email, eu queria que o servlet pegasse os dados do form, e enviassem eles para um email do Gmail!




Sim, esta mandando os dados do produto para o servlet, mas você não colocou um servlet no form, e sim uma url.

Você sabe a diferença entre uma url e um servlet certo?

Na verdade, vc que nao entendeu o que eu quis dizer, pois se eu até te falei da faculdade! Acho que agora eu é que tenho que te mandar estudar servlet, pq a forma que interpretou foi como se nunca tivesse tido contato com um!