Hoje vamos aprender a criar um formulário de contato.
Nós vamos precisar criar 4 páginas, são elas:
1 – contato.html
2 – enviando.php
3 – obrigado.html
4 – erro.html
Na primeira página(contato.html), colocaremos nosso formulário, na segunda página(enviando.php) ficará nosso script php que fará o envio do email, na terceira página(obrigado.html) informaremos que o envio foi concluído com sucesso e na quarta página(erro.html) informaremos se houve algum erro.
Código contato.html:
<form action="enviando.php" method="POST">
Nome:
<input name="nome" type="txt" />
Email:
<input name="email" type="txt" />
Assunto:
<input name="assunto" type="txt" />
Mensagem:
<textarea cols="45" rows="5" name="mensagem"></textarea>
<input type="submit" />
</form>
Nosso formulário usará o método post (method=”POST”) para enviar os campos e a ação ocorrerá no nosso arquivo enviando.php ( action=”enviando.php”), ele receberá os campos e executará o envio.
Código enviando.php:
<?php
// Incluindo arquivo com a classe Mail
require_once('Mail.php');
// Recebendo os campos do formulário.
$nome = $_POST['nome'];
$email = $_POST['email'];
$assunto = $_POST['assunto'];
$mensagem = $_POST['mensagem'];
// Configurar quem recebe.
$de = "$nome<$email>"; // Não mude está linha
$para = "Seu Nome<seuemail@seudominio.com.br>"; // Coloque aqui seu email
// Configurar os dados de conexão ao servidor SMTP
$servidor = "mail.seudominio.com.br"; // Coloque aqui seu servidor de SMTP
$login = "seuemail@seudominio.com.br"; // Coloque aqui o email de login de sua conta
$senha = "senha_seu_email"; // Coloque aqui a senha do email
########## NÂO ALTERAR ############################
// Cabeçalho do email
$headers = array (
'From' => $de,
'Reply-to' => $login,
'To' => $para,
'Subject' => $assunto
);
// Conexão ao servidor
$smtp = Mail::factory('smtp',
array (
'host' => $servidor,
'port' => 25,
'auth' => true,
'username' => $login,
'password' => $senha
)
);
// Efetuando o envio autenticado
$mail = $smtp->send($para, $headers, $mensagem);
###################################################
// Verificando se houve erro
if (PEAR::isError($mail)) {
header('Location: erro.html');
} else {
header('Location: obrigado.html');
}
?>
Na página enviando.php você deve configurar a linha abaixo colocando seu email:
$para = "Seu Nome<seuemail@seudominio.com.br>"; // Coloque aqui seu email;
Também deve editar os dados de conexão ao seu servidor SMTP:
$servidor = "mail.seudominio.com.br"; $login = "seuemail@seudominio.com.br"; $senha = "senha_seu_email";
Agora nossa página confirmando o envio.
Código obrigado.html
Muito Obrigado!<br> Sua mensagem foi enviada com sucesso.
E por útlimo nossa página informando que houve um erro.
Código erro.html
Ocorreu um erro!<br> Por favor tente novamente.
Bem é isto, você pode adaptá-lo ao seu site e modificar os arquivos como desejar.
Abaixo disponibilizamos os arquivos para download.
Download: contato.zip
9 Comments
6:53 pm
Vinicius
Mt bom tutorial, mas no meu caso, eu tenho uma caixa de seleção que o usuario escolhe 1 de 3 setores (ex: Compras, Vendas, Duvidas) e dependendo da escolha, o e-mail vai para algum lugar. E pelo meu formmail, como nao fiz cabeçalho SMTP, mts msgs vai para a caixa de Spam. O que poderia ser feito?
Desde ja agradeço
8:25 pm
Adriano
Onde posso baixar a class ‘Mail.php’ pois baixei o phpmailer e está dando erro. Veja http://www.aroldobarbosa.com.br/contato/contato.html .
Pq dá esse erro quando clico em Enviar?
8:46 pm
acquahost
Adriano, no caso para funcionar o seu servidor de hospedagem precisa ter instalado a classe Mail.
5:16 pm
Adriano
Mas essa instalação é o servidor quem faz ou eu mesmo posso instalar? Se caso eu puder fazer, como seria? Obrigado pela atenção!
11:36 am
acquahost
Adriano, no caso o suporte técnico da empresa onde você hospeda, precisa instalar no servidor o módulo.
9:15 am
Paulo
É possível usar este formulário em email da google ( gmail ) ou hotmail entre outros ?
6:47 pm
acquahost
Paulo, no Gmail funciona sim, precisa trocar a porta pois lá a conexão usa ssl, já no Hotmail não tenho certeza.
11:59 am
Jorge Luiz
boa tarde
http://www.radiomegaminas.com/formulario.html
ele ficara assim
http://www.radiomegaminas.com/contato1.html
onde eu conseguria o endereco responsavel pelo processamento e envio do formulario?
tenho criar um arqui vo em php?
9:19 am
acquahost
Jorge, bom dia!
Sim, você precisa criar um arquivo php que irá executar a ação de envio.
Neste php você deve configurá-lo para receber as variáveis do seu formulário.
Como descrito no post.
Você pode abaixar um exemplo: http://acquahost.com.br/download/contato.zip