Como enviar mensagens por formulário de contato através do PHP?
Para o uso de formulários de envio em PHP, gere um formulário com os campos de sua preferência e utilize a função "mail".
Abaixo segue um exemplo de código para uso de um formulário simples.
Primeiro crie o corpo do formulário(basta criar um arquivo na sua hospedagem inserindo o código do exemplo abaixo):
<html>
<head>
<title>Formulário de Contato</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style>
.texto {font: 17px Verdana; text-decoration: none; color: #999999}
.texto_peq {font: 17px Verdana; text-decoration: none; color: #999999}
.titulos {font: bold 24px Verdana; text-decoration: none; color: #999999}
.form_campos {background-color: #FFFFFF; font: 15px Verdana; border-style: groove}
.form_botao {background-color: #CCCCCC; font: 15px Verdana; border-style: outset}
</style>
</head>
<body bgcolor="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" text="#999999" link="#0000FF" vlink="#FF0000" alink="#FFFF00">
<center>
<p><font color="#FFFFFF" face="Chiller" class="titulos">Formulário de Contato</font></p>
</center>
<form method="post" action="enviar.php">
<table width="401" border="0" cellspacing="0" cellpadding="0" align="center">
<tr bgcolor="#000000">
<td valign="middle" nowrap>
<p><font class="texto" color="#999999">Nome:</font></p>
</td>
<td width="301">
<input class="form_campos" type="text" name="nome" size="34">
</td>
</tr>
<tr bgcolor="#000000">
<td valign="middle" nowrap>
<p><font class="texto" color="#999999">Cidade:</font></p>
</td>
<td>
<input class="form_campos" type="text" name="cidade" size="20">
</td>
</tr>
<tr bgcolor="#000000">
<td valign="middle" nowrap>
<p><font class="texto" color="#999999">Estado:</font></p>
<td>
<select class="form_campos" name="estado">
<option value="Escolha seu estado">Escolha seu estado</option>
<option value="AC">AC</option>
<option value="AL">AL</option>
<option value="AM">AM</option>
<option value="AP">AP</option>
<option value="BA">BA</option>
<option value="CE">CE</option>
<option value="DF">DF</option>
<option value="ES">ES</option>
<option value="GO">GO</option>
<option value="MA">MA</option>
<option value="MG">MG</option>
<option value="MT">MT</option>
<option value="MS">MS</option>
<option value="PA">PA</option>
<option value="PB">PB</option>
<option value="PE">PE</option>
<option value="PI">PI</option>
<option value="PR">PR</option>
<option value="RJ">RJ</option>
<option value="RN">RN</option>
<option value="RO">RO</option>
<option value="RR">RR</option>
<option value="RS">RS</option>
<option value="SC">SC</option>
<option value="SE">SE</option>
<option value="SP">SP</option>
<option value="TO">TO</option>
</select>
</td>
</tr>
<tr bgcolor="#000000">
<td valign="middle" nowrap>
<p><font class="texto" color="#999999">E-mail:</font></p>
</td>
<td>
<input class="form_campos" type="text" name="email" size="34">
</td>
</tr>
<tr bgcolor="#000000">
<td valign="middle" nowrap>
<p><font class="texto" color="#999999">Assunto:</font></p>
</td>
<td>
<select class="form_campos" name="assunto">
<option value="Opinião" selected>Opinião</option>
<option value="Sugestão">Sugestão</option>
<option value="Parceria">Parceria</option>
<option value="Reclamação">Reclamação</option>
<option value="Sem assunto">Outros</option>
</select>
</td>
</tr>
<tr bgcolor="#000000">
<td valign="middle" nowrap align="center">
<p><font class="texto" color="#999999">Mensagem:</font></p>
</td>
<td>
<textarea class="form_campos" name="mensagem" cols="34" rows="4"></textarea>
</td>
</tr>
<tr bgcolor="#000000">
<td colspan="2" valign="middle">
<br />
<div align="center">
<input name="charset" type="hidden" value="iso-8859-1" />
<input class="form_botao" type="submit" name="enviar" value="Enviar">
<input class="form_botao" type="reset" name="limpar" value="Limpar">
</div>
</td>
</tr>
</table>
</form>
<p>Powered by <a target="_blank" href="http://www.uolhost.com.br">UOL HOST - Hospedagem de Sites</a></p>
<body>
</html>
Depois utilize a função mail para enviar o formulário. Salve um arquivo no mesmo diretório do anterior nomeando-o como enviar.php:
ATENÇÃO - Lembre-se de alterar a linha indicada abaixo incluindo o endereço do destinatário do e-mail no local informado.
<?php
if(isset($_POST['enviar'])) {
$remetente = "email@seudominio"; // INSIRA AQUI UM EMAIL CRIADO EM SUA HOSPEDAGEM PARA QUE A MENSAGEM SEJA ENVIADA CORRETAMENTE.
$destinatario = "email@seudominio"; // INSIRA AQUI O ENDEREÇO DO DESTINATÁRIO DO E-MAIL.
$charset = $_POST['charset'];
$nome = $_POST['nome'];
$cidade = $_POST['cidade'];
$estado = $_POST['estado'];
$email = $_POST['email'];
$assunto = '=?' . $charset . '?B?' . base64_encode($_POST['assunto']) . '?=';
$mensagem = $_POST['mensagem'];
$corpo = "Nome: ".$nome."<br/>Cidade: ".$cidade."<br/>Estado: ".$estado."<br/>E-mail: ".$email."<br/>Mensagem: ".$mensagem."";
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=".$charset."\r\n";
//$headers .= "Cc: copia@seudominio\r\n"; CAMPO COPIA OPCIONAL
//$headers .= "Bcc: copiaoculta@seudominio\r\n"; CAMPO COPIA OCULTA OPCIONAL
$headers .= "From: ".$remetente."\r\n";
if(mail($destinatario, $assunto, $corpo, $headers)) {
echo '<p><b>' . $nome . '</b>, sua mensagem foi efetuada com sucesso.<br />Em breve lhe responderemos.</p>';
}
else {
echo '<p><b>' . $nome . '</b>, não foi possível enviar sua mensagem.<br />Tente novamente.</p>';
}
}
else {
echo '<p>Não foi possível enviar sua mensagem.<br />Tente novamente.</p>';
}
?>
Eventualmente, sua aplicação pode utilizar o Charset UTF-8. Nestes casos, o uso do exemplo acima poderá ocasionar o envio de mensagens com caracteres estranhos. Se isto ocorrer, sugerimos que você adapte a utilização do script conforme os passos abaixo. Se ainda assim persistir este comportamento, recomendamos fortemente que você verifique se a programação da aplicação em si não possui outras áreas de controle de Charset.
1 - Salve os arquivos formulario.html e enviar.php no formato UTF-8, para isso, você pode utilizar o Bloco de Notas, vá em "Salvar Como" e defina o item "Codificação" como UTF-8;
2 - Localize e substitua as linhas abaixo que definem o charset no arquivo formulario.html
De:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
Para:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
De:
<input name="charset" type="hidden" value="iso-8859-1" />
Para:
<input name="charset" type="hidden" value="utf-8" />
OBS: Lembre-se de consultar as políticas de envio de e-mail pelo servidor de hospedagem na FAQ:
http://ajuda.uolhost.com.br/index.php?ind=&p=resposta&res=566