- Como Criar Um Site, Blog – WebMaster.pt - https://www.webmaster.pt -

Envio Ficheiros Por Formulário Para Email

Tweet [3]

Hoje gostaria de implementar no nosso Blog um assunto simples, porém, de grande importância: Envio de Ficheiros por Formulário Para Email.

Quem utiliza o PHP de forma profissional, certamente já encontrou algum cliente com necessidade de enviar ficheiro por formulário (especialmente gráficas que precisam receber ficheiro em formato do Corel ou Photoshop e muitas vezes, esses ficheiros não chegam por email, por causa de seu tamanho).

Através desta solução, você poderá implementar o script em seu site e resolver este problema!

Como fazemos em todas as nossas matérias, em anexo temos disponível os ficheiros para que tu possa estudar e testar a matéria que estamos lhe explicando.

Formulário Em HTML

Antes de partirmos para a programação, é importante analisar o formulário que vamos preencher para enviar o ficheiro. Por isso, abra o ficheiro index.php (disponível no arquivo em anexo – conforme o código e imagem a seguir).


<html>
<head>
<title>.:: WebMaster.PT :: Enviando Ficheiros ::.</title>
</head>
<body>
<table>
<form action='envia_email.php' method='post' enctype='multipart/form-data'>
<tr>
    <td>Nome:</td>
    <td><input type='text' name='nome'></td>
</tr>
<tr>
    <td>E-mail:</td>
    <td><input type='text' name='email'></td>
</tr>
<tr>
    <td>Assunto:</td>
    <td><input type='text' name='assunto'></td>
</tr>
<tr>
    <td>Mensagem:</td>
    <td><textarea name='msg' cols='30' rows='5'></textarea></td>
</tr>
<tr>
    <td>Ficheiro:</td>
    <td><input type='file' name='arquivo'></td>
</tr>
<tr>
    <td><input type='submit' value='Enviar'></td>
</tr>
</form>
</table>
</body>
</html>

FORMULÁRIO DE ENVIO

Copie e cole os ficheiros disponíveis em anexo em seu Servidor.

Preencha os dados disponíveis no formulário e selecione o ficheiro a ser enviado (conforme a imagem a seguir).

PREENCHIMENTO DO FORMULÁRIO

Após preencher todos os dados, clique no botão Enviar para efetuar o envio da mensagem.

Feito isso, a mensagem será enviada com sucesso.

OBS.: Não esqueça de alterar o email de recebimento nas linhas 22 e 28 do ficheiro “envia_email.php”.

Veja na imagem a seguir o exemplo de recebimento:

EMAIL RECEBIDO

Script De Envio Em PHP

Vamos analisar um pouco mais sobre o ficheiro “envia_email.php”.


----- Linha 3 a linha 6 -----
$nome     = $_POST['nome'];
$email    = $_POST['email'];
$assunto  = $_POST['assunto'];
$msg      = $_POST['msg'];

No trecho acima, recebemos as variáveis do ficheiro “index.php”.

OBS.: Não trouxemos o ficheiro, pois pretendemos fazer abaixo.


----- Linha 8 -----

$corpo = "Nome: $nome<br>E-mail: $email<br>Mensagem: $msg";

Através da linha acima, traremos os campos necessários para a apresentação do conteúdo em tela.

OBS.: Trata-se de uma apresentação simples e objetiva. Caso queira melhorar esta apresentação, apenas comente a linha 8 e insira o script abaixo logo na linha a seguir:


$corpo = "
<center><table width='500' border='0' cellspacing='1' cellpadding='4' bgcolor='#4a66a3'>
<tr>
    <td bgcolor='white' valign='top'><img src='IMAGEM DO TOPO' border='0'>
       <link rel='important stylesheet' href='chrome://messenger/skin/messageBody.css'>
       <style type='text/css' media='screen'>
       <!-- td { color: #069; font-size: 8pt; font-family: Arial, Verdana, Arial, Helvetica, sans-serif } --></style>
         <br>
        <p align='justify'><STRONG>Prezado Administrador</STRONG>, <br><br>
        Recebemos através do site SEUSITE.COM.PT a mensagem abaixo:<br>

          <br>
          <b>Nome:</b> $nome<br>
          <b>EMail:</b> $email<br>
          <b>Mensagem:</b> <br>$msg<br><br>
          
            Atenciosamente,<br><br>
            
             Central de Relacionamentos<br>
            <b>Sua Empresa ©</b><br>
            </font> <br>
            <b><font color='#7694CB' size='1' face='Verdana, Arial, Helvetica, sans-serif'>
            :: Politica de Privacidade::<br>
            </font></b> <font color='#7694CB' size='1' face='Verdana, Arial, Helvetica, sans-serif'>
            O envio e recebimento de nossas mensagens procura estar alinhado com o C&oacute;digo de &Eacute;tica Anti-SPAM que objetiva reger e orientar a comunica&ccedil;&atilde;o institucional, comercial e publicit&aacute;ria enviada sob a forma de mensagens eletr&ocirc;nicas.</font> <br>
          <hr size='1'>
       <font size='1' face='Verdana, Arial, Helvetica, sans-serif'>
       Temos a forte convic&ccedil;&atilde;o de que o rela&ccedil;&atilde;o entre cliente e empresa deve ser marcada pelo conceito de parceria, fortalecendo o v&iacute;nculo estabelecido em bases de confian&ccedil;a e apoio m&uacute;tuo.</font>
              </td></tr></table></center>";

OBS.: Altere informações como “Sua Empresa”, “Imagem” para personalizar este trecho do código.


----- Linha 10 a linha 16 -----

if (($fp = fopen($_FILES['arquivo']['tmp_name'],"rb")))
{
$anexo = fread($fp,filesize($_FILES['arquivo']['tmp_name']));
$anexo = base64_encode($anexo);
fclose($fp);
$anexo = chunk_split($anexo);
}

O trecho acima trata o recebimento do ficheiro que está sendo enviado.


----- Linha 17 a linha 25 -----

if ($anexo)
{
$mensagem = "--$bound\nContent-type: text/html\nContent-Transfer-Encoding: 7bit\n\n$corpo\n\n"
. "--$bound\nContent-type: $_FILES[arquivo][type]\nContent-Disposition: attachment; filename=" . $_FILES['arquivo']['name']

. "\nContent-Transfer-Encoding: base64\n\n$anexo\n"
. "--$bound\r\n";
mail("seuemail@webmaster.pt",$assunto,$mensagem,"From: $email\nMIME-Version: 1.0\nContent-type: multipart/mixed;

boundary=\"$bound\"");
print("Mensagem Enviada com Sucesso!");
//print($fp);
}

Se houver ficheiro a ser enviado, o sistema efetuará o envio para a conta de email acima descrita, (para o correto funcionamento, onde está escrito “seuemail@webmaster.pt”, altere para a sua conta de email).


----- Linha 26 a linha 30 -----

else
{
mail("seuemail@webmaster.pt",$assunto,$corpo,"From: $email\nContent-type: text/html");
print("Mensagem Enviada com Sucesso - Sem Anexo");
}

Se não houver ficheiro em anexo, o sistema efetuará o envio para a caixa de mensagens acima descrita sem o ficheiro, (para o correto funcionamento, onde está escrito “seuemail@webmaster.pt”, altere para a sua conta de email).

Trata-se de um script simples e poderá ser modificado de acordo com suas necessidades.

Ficamos por aqui em mais uma matéria! Esperamos tê-lo ajudado em algo…

Envie-nos suas dúvidas e dê sugestões para as próximas matérias! Nosso compromisso é lhe ajudar!

Download do código fonte utilizado neste tutorial: Envio Ficheiros Por Formulário Para Email [4]

Tweet [3]
Be Sociable, Share!
  • [5]
  • [6]
  • [7]
  • [8]
  • [9]