Formmail utilizando função “mail”

image_pdfimage_print

Muita gente procura na internet como fazer um formulário de e-mail (formmail) utilizando o PHP. Abaixo vou ensinar detalhadamente como montar um e tentar explicar cada parte do código.

Para começar, sempre é bom visitar o velho e querido site do PHP e verificar a documentação dele. Para quem não sabe, lá você tem todas as funções e tudo o que quiser saber sobre o PHP e começar a programar algumas besteirinhas até se tornar bom programador.

Site do PHP // Função Mail

Vou colocar aqui o texto que foi retirado do Docs do PHP:

Descrição

bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )

Este é o comando que envia o e-mail. Pra quem não meche com programação, deve estar achando isso uma coisa do outro mundo, mas tenha calma, vou explicar tudo detalhadamente.

No código acima, onde tem “bool” e “string”, é a definição do tipo de informação será processada ali, se será texto, números, etc. No nosso caso o “bool” é pra saber se o comando é booleano, ou seja, só responde VERDADEIRO (consegue enviar o email normalmente) ou é FALSO (dá erro e não envia). Já no “string” ele informa que é TEXTO, ou seja, todos os dados que forem enviado nas variáveis dentro desta função, serão lidos como texto. É importante notar que somente pelo o email ser aceito pelo formmail, não significa que o email alcancará o destino esperado.

Agora vamos a explicação de cada variável (parâmetros) que recebe os dados do formulário:

Parâmetros

to – É o destinatário do e-mail, ou seja, quem vai receber a mensagem do formulário.

subject – o assunto. Obs.: não utilizar nada que possa utilizar mais de uma linha. Tente ser objetivo “Contato – nome do site”

message – a mensagem.

additional_headers (opcional) – Esta é normalmente usada para adicionar cabeçalhos extras (From, Cc, e Bcc). Nota: Quando enviando email, o email precisa conter um cabeçalho From. Este pode ser definido com o parâmetro additional_headers , ou um padrão pode ser definido no php.ini.
Um deslize fará com que resulte em uma mensagem de erro similar a Warning: mail(): “sendmail_from” not set in php.ini or custom “From:” header missing. O cabeçalho From define também Return-Path em Windows.

additional_parameters (opcional) – O parâmetro additional_parameters pode ser usado para passar um parâmetro adicional para o programa configurado para usa quando enviando email usando a configuração sendmail_path. Por exemplo, isto pode ser usado para definir o endereço do envelope remetente quando usando sendmail com a opção do sendmail -f.

Algumas observações importantes sobre a função mail().

  • Vale a pena notar que a função mail() não é apropriada para grande volume de email em um loop. Esta função abre e fecha um socket SMTP para cada email, que não é muito eficiente. Para enviar uma grande quantidade de email, veja os pacotes » PEAR::Mail, e » PEAR::Mail_Queue.
  • Email com anexos e tipos especiais de conteúdo (e.g. HTML) podem ser enviado usando esta função. Isto é melhorado com MIME-encoding – para mais informação, veja este » artigo da Zend ou as classes » PEAR Mime.
Bom, feito as explicações. Agora vamos a criação do formmail em si.
1. Vamos criar uma página HTML com um formulário simples com os seguintes campos: Nome, E-mail, Mensagem.
<form id=”formulario” name=”formulario” method=”post” action=”formmail.php”>
Nome: <input type=”text” name=”nome” id=”nome” /><br />
E-mail:<input type=”text” name=”email” id=”email” /><br />
Mensagem:<br /><textarea name=”mensagem” id=”mensagem”>
</textarea><br />
<input type=”submit” name=”button” id=”button” value=”Enviar” />
</form>
EXPLICAÇÃO BÁSICA
Note os itens que estão sublinhados, pois eles serão importantes na hora de criar o arquivo formmail.php. Na tag <form> o “method” deve ser POST e estar apontando para o nosso arquivo php que enviará a mensagem. No meu caso eu botei o nome “formmail.php”.
2. Vamos criar nosso “formmail.php”
<?php
// Aqui iremos receber os dados enviados pelo formulário e fazer com que cada variável receba seus dados.
$nome = $_POST[‘nome’];
$email = $_POST[‘email’];
$mensagem = $_POST[‘mensagem’];
// Abaixo, iremos preencher os dados de nosso e-mail que irá receber as mensagens
$para = “Contato – Seu Nome<seuemailaqui@seuemail.com.br>”;
$assunto = “Contato – Nome do Site”;
$mensagem = “Nome: $nome \n E-mail: $email \n Mensagem: $mensagem”;
// Agora vamos utilizar a função mail()
mail($para, $assunto, $mensagem);
?>
Pronto! Nosso formmail está prontinho para usar. Agora só testar e verificar se não tem nenhum erro no código de vocês. Qualquer dúvida, sugestão, correção, etc… fiquem a vontade para utilizar os comentários.
Abraços!

Sou bacharel em Sistemas de Informação pela Estácio de Sá (Alagoas), especialista em Gestão Estratégica da Tecnologia da Informação pela Univ. Gama Filho (UGF) e pós-graduando em Gestão da Segurança da Informação pela Univ. do Sul de Santa Catarina (UNISUL). Tenho interesse por todas as áreas da informática, mas em especial em Gestão, Segurança da Informação, Ethical Hacking e Perícia Forense. Sempre disposto a receber sugestões de assuntos para criar uma postagem.

One Response to “Formmail utilizando função “mail””

  1. Thiago L. disse:

    Queria ser COMO VOCÊ!

    =***

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Quer ficar atualizado?

Inscreva-se em minha newsletter e seja notificado quando eu publicar novos artigos de graça!