Guia do PHP: Aprenda a fazer um formulário em PHP que envia via SMTP autenticado o e-mail para um destinatário.
Depois de um (muito) tempo parado, estou de volta com o Guia do PHP, desde o último post quando falei sobre insert, update e delete no MySQL, já havia mencionado que agora vou produzir algumas coisas que serão úteis em seu dia-a-dia como programador.
O que mais foi pedido para ser feito é o Formulário de contato em PHP. Então, vamos elaborar ele para que você consiga entender cada passo que é preciso fazer para criar o form e o que será produzido para ele disparar o email.
Para criarmos o formulário em PHP, vamos precisar de quatro linguagens de programação. HTML para elaborar o formulário visual, CSS para estilizar este formulário, JavaScript para validar campos se estão preenchidos e PHP para disparar a mensagem para o destinatário.
Para iniciar vamos criar o formulário com Nome, email e mensagem. Mostraremos também como adicionar mais campos no form, e ele ficará parecido com este abaixo:
Para começar, vamos criar o HTML deste formulário, que é relativamente básico, onde teremos um arquivo chamado index.php, com a tag FORM, para o formulário como um todo, usaremos também a tag INPUT, para os campos nome, e-mail e para o botão enviar, e por fim, a tag TEXTAREA, para o campo de mensagem. O HTML do arquivo está abaixo:
Como podem ter visto, usamos um arquivo chamado style.css para deixar o formulário com a aparência da imagem acima, o CSS usado foi este:
Onde definimos apenas algumas características para que fique com uma melhor aparência e mais limpo. Você pode estilizar seu formulário como preferir, basta alterar as características do CSS. Como o intuito do Guia, é mostrar PHP, não entraremos em detalhes do formulário.
Feito o HTML e o CSS, vamos agora partir para as validações de Javascript, para verificar se o usuário preencheu os campos. Faremos com que todos os campos sejam obrigatórios. Para isto, vamos usar jQuery como framework javascript. Para que o jQuery funcione, precisamos ter a linha de código chamando o framework dentro da tag <head> do HTML, que já incluímos no HTML acima mostrado. Para validar, usaremos o seguinte código abaixo:
Não se preocupe em copiar o código, disponibilizaremos um zip com o projeto. Mas veja que fizemos uma validação bem simples, apenas testando se os campos estão preenchidos. Para o teste funcionar, precisamos que os campos possuam o parâmetro ID para identificarmos eles e tentar a validação. Assim funcionará caso você deseje adicionar mais um campo no formulário, para validar ele, basta você copiar qualquer validação e trocar o nome, conforme no exemplo abaixo:
Agora que já temos o HTML, o CSS e o Javascript definidos, precisamos fazer o e-mail cair na caixa de mensagem com os dados preenchidos.
Para que o e-mail seja disparado, vamos usar validação de SMTP para o disparo da mensagem, onde trarei uma classe em PHP pronta que usamos para enviar, chamada PHPMAILER, então, basta passarmos os parâmetros corretos para ela que funcionará perfeitamente.
O código da função:
A função é bem simples de ser usada, testei com meu email do Gmail, você pode configurar com qualquer email que possua SMTP ativo. Basta saber o nome do servidor de SMTP, e trocar na linha:
Para emails que não são Gmail, você precisa comentar ou remover as linhas:
Estas linhas fazem ser possível enviar com a configuração do Gmail. Lembrando que se você for testar no localhost, é necessário ter ativo openSSL, no wamp, basta clicar sobre ele, depois em PHP -> PHP extensions -> php_openssl, conforme imagem abaixo:
Lembrando que você precisa configurar seu email e senha para ser o disparador do email, são nestas duas linhas:
Ao enviar a mensagem, o sistema vai mostrar uma mensagem alertando sobre o envio da mensagem, e o código de envio é o seguinte:
Este código foi adicionado dentro do arquivo index.php, na primeira linha, então como o formulário não tem o parâmetro ACTION, que define para onde será executada a ação, ele enviará então para a mesma página, no caso o index.php.
O uso da função sendMail que está dentro do arquivo funcao.php, é o seguinte:
Onde:
O código é relativamente simples de ser utilizado, você pouco precisará editar ele para funcionar.
Você pode adicionar mais campos ao formulário, assim como personalizar a mensagem de aviso de envio do email.
Segue o link para download do projeto para que você teste.
Criamos o arquivo para ver o formulário, o index.php, estilizamos ele com css no arquivo style.css, usamos javascript no index para validar os campos em branco, criamos o arquivo funcao.php para organizar a nossa função de envio e chamar a classe PHPMailer, esta responsável por conectar no SMTP e disparar a nossa mensagem.
Você precisa modificar o arquivo funcao.php com seu email e senha do email para conectar corretamente ao smtp, e precisa no index.php, definir para qual email será disparado o formulário.
Veja abaixo o e-mail em minha caixa de mensagens:
[CURSO]118[/CURSO]
Siga o Oficina da Net no G o o g l e News e receba alertas e as principais notícias sobre tecnologia, smartphones, ciência, entretenimento digital e plataforma de streamings.
😕 Poxa, o que podemos melhorar?
😃 Boa, seu feedback foi enviado!
✋ Você já nos enviou um feedback para este texto.
Nícolas Müller é fundador do Oficina da Net. Jornalista por profissão, cobre tecnologia desde 2005, analista de produtos e apresentador dos canais do Youtube, tendo analisado já mais de 120 diferentes produtos. E-mail: [email protected]
Confira a programação completa da TGS 2022, com todas as apresentações, horários e onde assistir as novidades
É anunciado a data do Worldwide Developers Conference (Conferência Mundial de Desenvolvedores ou WWDC)! Confira a programação do evento da Apple!
O conglomerado de canais e plataformas da ViacomCBS divulga agora os destaques na programação de 14 a 20 de março. Confira!
A Pluto TV tem a estreia de filmes de suspense, terror e ação; aproveitando hype do seu novo canal, há ainda um especial “De Férias Com Os Avós”.
Foram revelados novos monitores pela LG que prometem uma produtividade mais eficiente e com mais qualidade. Confira o que foi anunciado!
A Pluto TV, plataforma conhecida como a melhor do mundo IPTV grátis no Brasil, anunciou a estreia de episódios especiais de Natal de diversas séries, além dos filmes mais assistidos. Confira!
Oficina da Net © 2005 – 2023 – Um site do grupo