Bom, iniciando uma série de posts sobre Php aqui agora. Comecei a estudar e a desenvolver recentemente com mais afinco a linguagem, então vô tá postando algumas coisas conforme eu for estudando. Bom, pra começar, vou tá postando um pequeno exemplo de como enviar emails com o PHP, atendendo a pedido de umas meninas bem legais que conheci no SISOL – Simpósio de Software Livre, um evento que eu ajudei a organizar na Universidade Estadual do Sudoeste da Bahia.
No evento as meninas participaram de uma oficina de Joomla que eu ministrei, e aí me perguntaram como poderiam fazer pra enviar uma mensagem por email quando alguem submetesse algo num formulário do tipo “Fale Conosco”, tão comum em sites. Pesquisando um pouco pra responder as dúvidas delas, acabei topando com alguns problemas bem interessantes, mas que não vou cobrir aqui no post já que a intenção é somente tirar a dúvida do processo mesmo. Bom, vamos lá.
Primeiro, teremos nossa página onde vai estar o formulário de contato:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Fale Conosco Tutorial</title>
</head>
<body>
<h3>Fale Conosco</h3>
<form method="POST" action="procEmail.php">
<table border="1">
<tr>
<td>Nome:</td>
<td><input type="text" size="30" name="nome" /></td>
</tr>
<tr>
<td>Email:</td>
<td><input type="text" size="50" name="email" /></td>
</tr>
<tr>
<td>Assunto:</td>
<td><input type="text" size="50" name="assunto" /></td>
</tr>
<tr>
<td>Mensagem:</td>
<td><textarea name="msg" cols=40 rows=10 wrap="soft"> </textarea> </td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="envia" value="Enviar" /></td>
</tr>
</table>
</form>
</body>
</html>
Bom, acho que não há muito o que explicar nesse arquivo, é um formulário básico com quatro campos:
Nome – nome do remetente da mensagem.
Email - email do remetente, email este que estaremos usando para a resposta automática.
Assunto – assunto da mensagem.
Mensagem - corpo da mensagem.
Bom, como visto no código, este form envia os dados para uma segunda página chamada procEmail.php , que vai processar os nosso dados do formuário e enviar o email. Vamos ver o código dessa página abaixo:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Fale Conosco Tutorial</title>
</head>
<body>
<?php
$nome = $_POST['nome'];
$email = $_POST['email'];
$assunto = $_POST['assunto'];
$msg = $_POST['msg'];
$mensagem = "Sua mensagem foi recebida, responderemos assim que possível.";
// Email de resposta para usuário que enviou mensagem
mail($email, 'Resposta Automática', $mensagem);
// Email do usuário para o setor Fale conosco
$emailFaleConosco = "faleconosco@dominio.com";
mail($emailFaleConosco, $assunto, $msg);
?>
</body>
</html>
Bom, não há muito segredo, primeiro recebemos os dados do $_POST do formulário para as variáveis, e utilizando a função mail() do Php, enviamos 2 emails. Um primeiro para o remetente da mensagem, com algum texto pré-definido informando que a mensagem foi recebida. E depois, encaminhamos a mensagem do remetente para o email do site, utilizando novamvente a função do Php.
Algumas coisas a considerar. A função mail() faz uso de algum dos clientes de email disponíveis para trabalhar com o Php, no meu caso eu utilizo o SendMail, mas há outras alternativas como o Postfix entre outros. Qualquer dúvida referente ao uso da função pode ser encontrada no Manual do Php .
Bom, é isso aí. Espero ter ajudado, e qualquer dúvida é só comentar que tentarei responder. Sugestões de tópicos são muito bem vindas, não sou nenhum expert em Php, estou estudando como disse, então o contato é sempre bom pra aprender e tirar dúvidas. Até o próximo post.