Como criar um formmail para seu site.
Enviado em 07/12/2006 - 06:05
Fonte: A A A A
Uma dúvida freqüente de pessoas que estão começando na área de web, é a de como enviar um e-mail pelo site.
Uma forma bem prática de resolver esse problema é usando serviços prestados por alguns sites que já tem esse formmail pré configurado para todos usarem.
Mas se você tem um servidor que aceita o envio de formmail, por que usar serviços de outros se você pode criar seu próprio formmail?
Vou fazer um exemplo bem fácil e você poderá modifica-lo da forma que preferir e que for adequada ao seu site.
Começando...
Vamos abrir um novo documento no Dreamweaver, Front Page, bloco de notas, ou onde você achar melhor.
Salvem esse documento como contato.htm(por exemplo) e vamos colocar nele o formulário de contato do nosso site.
Código da página contato.htm
</head>
<form action ="envia.php" method ="post" name ="cont" id ="cont" > <table width ="300" border ="0" align ="center" cellpadding ="3" cellspacing ="1" bgcolor ="#999999" style ="font-size: 8pt; font-family: verdana;" > <td colspan ="2" > <div align ="center" > <strong> Entre em contato conosco
</strong> </div> </td> </tr>
<td> <input name ="nome" type ="text" id ="nome" > </td> </tr>
<td> <input name ="email" type ="text" id ="email" > </td> </tr>
<td> <input name ="site" type ="text" id ="site" > </td> </tr>
<td> <textarea name ="mensagem" rows ="5" id ="mensagem" > </textarea> </td> </tr>
<td> <input type ="submit" name ="Submit" value ="Enviar" > <input type ="reset" name ="Submit2" value ="Limpar" > </td> </tr>
</table>
</form> </body>
</html>
Ok, agora que já montamos o nosso formulário como queríamos, vamos criar a pagina que envia o e-mail.
Novamente abram um novo documento e salvem o com o nome de envia.php.
Nele vamos inserir os códigos php que realizam o envio do e-mail.
Código da página envia.php
<?php
/* Varivel de texto com formatação em HTML */
$texto = '
<table width="300" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#999999" style="font-size: 8pt; font-family: verdana;">
<tr bgcolor="#FFFFFF">
<td colspan="2"><div align="center"><strong>:: Contato ::</strong></div></td>
</tr>
<tr bgcolor="#FFFFFF">
<td>Nome:</td>
<td> ' .$nome .'"></td>
</tr>
<tr bgcolor="#FFFFFF">
<td>E-mail:</td>
<td> ' .$email .'</td>
</tr>
<tr bgcolor="#FFFFFF">
<td>Site:</td>
<td> <a href="' .$site .'">' .$site .'</a></td>
</tr>
<tr bgcolor="#FFFFFF">
<td>Mensagem:</td>
<td>' .$mensagem .'</td>
</tr>
</table>
' ;
/* Destinatrio */
/* assunto */
$subject = "Assunto >> Contato" ;
/* mensagem */
$message = "$texto" ;
/*Destinatrio adcional e configurao para aceitar HTML*/
$headers = "MIME-Version: 1.0\r \n " ;
$headers .= "Content-type: text/html; charset=iso-8859-1\r \n " ;
$headers .= "From: Contato Site <$email>\r \n " ;
/* Envia o email */
$verifica =
mail ( $to ,
$subject ,
$message ,
$headers ) ;
if ( $verifica ==TRUE )
{ Header ( "Location: obrigado.htm" ) ;
}
else
{ echo "<h1 align=center>ERRO DESCONHECIDO!</J1>" ;
echo "<P align=center>Sr. $nome, entre em contato com a gente</P>" ;
echo "<P align=center>Obrigado!</P>" ;
}
?>
Se achar interessante crie uma pagina de agradecimento escrito que receberam o e-mail e retornaram o mais rápido possível.
Coloque tudo em seu servidor, e seu site estará com um formmail personalizado.
Autor: Bruno Souza([email protected] ). Desenvolvido para o site www.nafaixa.net .
É permitida copia desse artigo para qualquer outro meio de comunicação desde que os créditos sejam mantidos .
Enviado por: brunohcs
Postado em: PHP
Esse artigo foi visualizado 16510 vezesCompartilhe este artigo
Recomende este artigo a um amigo Voltar
>> Comentários
Comentar
Bruno
Coment: Leôncio, escreva o aviso que o e-mail foi enviado com sucesso na pagina obrigado.htm que o script redireciona depois de fazer o envio do e-mail.
dj celso maceio
Coment: tentei colocar o form no meu site mas quando pedi para enviar deu uma mesangem de erro, o que pode ter sido ? meu site é www.djcelsomaceio.com e o form esta www.djcelsomaceio.com/teste aguardo resposta obrigado e sucesso amigo
Bruno de Souza
Coment: Caramba rapaiz tu em eu chará .kkkkkkkkkkk ate assustei
Leôncio
Coment: Olá Bruno, muito bom o post, adorei!
Como eu faço pra colocar um recado que o email foi enviado com sucesso?
Obrigado!
Bruno Souza
Coment: A pagina envia.php não pode ter conteudo nenhum exibindo em tela, nem mesmo um espaço em branco. provavelmente é esse o erro que está ocorrendo.
Cleber veloso
Coment: Coloquei este modelo no meu site, ele funciona, retorna no meu email tudo certo, mas na pagina aparece este erro, (Warning: Cannot modify header information - headers already sent by (output started at C:\Inetpub\vhosts\networksp.com.br\httpdocs\envia.php:6) in C:\Inetpub\vhosts\networksp.com.br\httpdocs\envia.php on line 338) gostaria de saber como resolver este aviso, e colocar uma pagina agradecendo no lugar. Para verificar na pagina como ficou www.networksp.com.br clicar em contato, envia alguma coisa como teste e veja como ficou a pagina. Obrigado. Espero encontrar ajuda.
Bruno
Coment: Seguinte os campos estão chegando em branco provavelmente por que o register_globals do seu servidor está OFF, o que na verdade é o ideal.
Então as variaveis do formulário você tem que receber com $_POST no arquivo php.
Ex.
$nome = $_POST['nome'];
$email = $_POST['email'];
Cesar
Coment: Oi, fiz tudo conforme foi dito. consegui colocar o formulario em meu site e eviei o script para meu servidor, enfim o problema é que quando chega um e-mail para mim, nos campos nome, e-mail, mensagem vem em branco e eu não sei quem enviou. Alguém sabe como fazer para arrumar isso? Até
Chrywlls
Coment: Uma dúvida no código para o formulário de contato em html em qual local do código eu devo acrescentar o e-mail para o qual o formuláio direciona a mensagem quando se clica em enviar???
Carlos
Coment: Vlw msm! Esse artigo salvou minha vida!
Bruno
Coment: Lucas, você fez alguma modificação errada no código.. provavelmente estragou a parte do header que redireciona para outra pagina.
Ana Paula
Coment: VAleuuuuuuuuuuuuuuuu deu certo
marcos
Coment: cara dá um erro queria saber o que realmente eu tenho que editar nesse negócio ?
Lucas + 1 vez
Coment: Warning: Cannot modify header information - headers already sent by (output started at /home/lusitano/public_html/envia.php:4) in /home/lusitano/public_html/envia.php on line 51
O E-MAIL É ENVIADO MAS APARECE ISSO POW
VAI MATAR MEU SITE DIZ AÍ COMO FAÇO PRA ISSO DESAPARECER AMIGO?????
Lucas de novo.
Coment: a 1° deu certinho mas a segunda página ñ sei o que devo preenceher nela aí testei agorinha e deu um erro de envio me ajude porfavor
Lucas
Coment: cara me adciona no e-mail pois não entendi muito não se puder me ajudar: [email protected]
Bruno Souza
Coment: Procure o tutorial de formmail com anexo, tem aqui no site mesmo.
yan
Coment: 21346
Massa
Coment: no formulario deixei um campo para anexar uma foto. No envia PHP como faço para receber essa foto?.
[email protected]
desde já muito obrigado
Bruno Souza
Coment: Sim lukas, ai você poe o email da pessoa que vai receber.. no caso você.. ou o dono do site em caso de cliente
Lukas Oliver
Coment: Gostaria de saber se onde esta "[email protected] "; é pra por meu email isso?
Eu fiz aki, de uma olhada
http://downsfree.info/Formail/contato.htm
Bruno Souza
Coment: Só colocar, pode ser com javascript ou php mesmo!
Felipe Olheiro
Coment: Bruno há so um problema: Não há verificacao se os campos foram preenchidos ou nao :(
Gericia
Coment: muito bom... e consegui até configurar para enviar os e-mail para meu e-mail do yahoo
Parabéns!! E muito obrigada por compartilhar o código...
Bruno Souza
Coment: Amigo, você ta tentando fazer isso no servidor local? se for não vai dar mesmo, precisa de uma hospedagem, com a função mail() ativada..
Roberto
Coment: Bom dia! Como falei no 1º post, não manjo nada de PHP. Você poderia esclarecer melhor? Obrigado!
Roberto
Coment: Bruno, fiz tudo conforme escrito e coloquei os dos arquivos na pasta htdocs, do apache. E em seguida, coloquei o arquivo contato na página do meu site, mas não funcionou. Aparece uma página acusando uma mensagem de erro.
Informo-lhe que não entendo nada de PHP, porém o meu servidor está configurado para executar PHP. Por favor, peço-lhe que me dê uma orientação como solucionar este impasse. Agradeço.
Bruno Souza
Coment: não intendi muito bem,,,
mas faz o seguinte.. dexa um iframe escondido e manda o form pra esse iframe usando target.. dai pronto vai envia no iframe e nao vai mexe na page!
mto bom
Coment: eu só queria saber como esconder o action pra depois que clickar em enviar nao aparece outra janela/nao caregasse outra pag , queria que o action do php nao aparecesse
se possivel add no meu msn e me exclaresse como fazer isso
[email protected]
desde ja obrigado,muito bom o tuto!