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). Certificações que possuo: CompTIA Security+, EXIN EHF, MCSO, MCRM, ITIL v3. Tenho interesse por todas as áreas da informática, mas em especial em Gestão e Governança de TI, Segurança da Informação, Ethical Hacking e Perícia Forense.

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!