Formulário de contato com PHP
segunda-feira, 3 de dezembro de 2007
Configuração de e-mail no PHP
Antes de podermos enviar e-mails com PHP, precisamos configurá-lo para isso. A configuração para enviar e-mails em PHP é feita com o arquivo php.ini . Então, abra o arquivo php.ini do seu servidor em qualquer editor que você normalmente usa (pode ser no Bloco de Notas).
NOTA: Se o seu servidor não te dá acesso às configurações do PHP, então as coisas ficam um pouco mais difíceis. Pode ser que o administrador do servidor permita configurar o envio de e-mails de alguma outra forma ou através de um painel administrativo. Neste caso, procure se informar sobre as configurações de e-mail do seu servidor e como alterá-las e pule esta etapa.
Na seção intitulada [mail function] no arquivo php.ini , você encontrará três configurações: SMTP , sendmail_from e sendmail_path . Se o seu servidor roda em uma máquina Windows, é melhor definir a opção SMTP e apontar para o seu servidor SMTP (ou o servidor SMTP do seu ISP, se você estiver configurando o PHP na sua máquina doméstica). Se, em vez disso, você estiver configurando o PHP em um servidor Linux (ou outro sistema operacional baseado em Unix), você pode definir a opção sendmail_path para apontar para o programa sendmail no seu servidor, passando a opção -t para ele. Você também pode usar a opção SMTP no Linux, se não tiver um programa sendmail configurado. Em ambos os casos, configure a opção sendmail_from para o seu endereço de e-mail, ou qualquer endereço que você gostaria que aparecesse como remetente das suas mensagens (o endereço from padrão para e-mails enviados de scripts PHP). Veja como fica esta seção em um servidor Windows ou Linux sem sendmail:
[mail function]
; Setup for Windows systems
SMTP = smtp.meu.isp.net
sendmail_from = exemplo@meuservidor.com.br
E é assim que normalmente fica em um servidor Linux com sendmail:
[mail function]
; Setup for Linux systems
sendmail_path = /usr/sbin/sendmail -t -i
sendmail_from = exemplo@meuservidor.com.br
Com essas configurações definidas, reinicie seu servidor e pronto!
Testando o envio de e-mail
Para testar se o envio de e-mails está funcionando, você deve, primeiro, criar um formulário HTML que submete para o script PHP que enviará a mensagem. Veja este exemplo:
<form action="sendmail.php" method="post">
<label for="subject">Assunto:</label><br>
<input type="text" id="subject" name="subject" required><br><br>
<label for="name">Nome:</label><br>
<input type="text" id="name" name="name" required><br><br>
<label for="from">E-mail:</label><br>
<input type="text" id="from" name="from" required><br><br>
<label for="message">Mensagem:</label><br>
<textarea id="message" name="message" rows="5" required></textarea><br><br>
<button type="submit">Enviar</button>
</form>
Ao clicar no botão "Enviar", os dados preenchidos nos campos do formulário serão enviados para o script sendmail.php .
O conteúdo do script PHP no arquivo sendmail.php que receberá os dados do formulário é este:
<?php
// Verifica se o formulário foi enviado
if ($_SERVER["REQUEST_METHOD"] === "POST") {
// Captura os dados do formulário
$subject = trim($_POST['subject']);
$name = trim($_POST['name']);
$from = trim($_POST['from']);
$message = trim($_POST['message']);
// Valida os campos
if (empty($subject) || empty($name) || empty($from) || empty($message)) {
die("Todos os campos são obrigatórios!");
}
// Configurações do e-mail
$to = "seu_email@dominio.com"; // Substitua pelo seu e-mail
$headers = "From: $name <$from>\r\n";
$headers .= "Reply-To: $to\r\n";
$headers .= "Content-Type: text/plain; charset=UTF-8\r\n";
// Envia o e-mail
$sent = mail($to, $subject, $message, $headers);
if ($sent) {
echo "E-mail enviado com sucesso!";
} else {
echo "Falha ao enviar o e-mail.";
}
} else {
die("Acesso inválido.");
}
?>
Este script PHP captura os dados enviados pelo formulário, valida os campos, configura o e-mail e o envia. Se o e-mail for enviado com sucesso, uma mensagem de sucesso é exibida. Caso contrário, uma mensagem de falha é exibida.
Pronto! Agora você tem um formulário de contato que envia e-mails com PHP. Se quiser saber mais sobre o PHP e como melhorar os e-mails enviados, dê uma olhada na documentação da função mail no site do PHP.
|