Jump to content


Photo

Enviar Arquivo Para E-mail


  • Faça o login para participar
2 replies to this topic

#1 deguinho

deguinho

    Turista

  • Usuários
  • 55 posts
  • Sexo:Não informado
  • Interesses:PHP, MySQL e APACHE

Posted 06/05/2004, 10:11

Como posso através de um formulário enviar um arquivo para o e-mail de uma pessoa?

Grato
Diêgo Áquila
<?php

$mrphp = "deguinho";

echo " O Mr. PHP é $mrphp";

?>

#2 Goku Jr

Goku Jr

    Nilson

  • Usuários
  • 3757 posts
  • Sexo:Masculino

Posted 06/05/2004, 10:18

uhhh, tem altos posts com esse assunto, da uma procurada que você acha !


até + !!
-----------------------------------------------------------------------
PALMEIRAS - Primeiro campeão do mundo em 1951

#3 nUtS

nUtS

    Turista

  • Usuários
  • 59 posts
  • Sexo:Não informado

Posted 07/05/2004, 10:54

É o seguinte: uso esse script.
Ele grava o arquivo numa pasta no servidor, manda o e-mail e depois deleta o arquivo do servidor. Peguei 2 scripts (um de envio de e-mails com anexo de arquivos do servidor e um de upload de arquivos) e fiz a mistura.
Qualquer dúvida me contatem.
Pessoal... agora tah funcionando a filtragem por tipo de arquivo.
No código abaixo ele só aceita .doc e .pdf... para saber como é escrito os outros nomes de tipos de arquivos, é só tentar enviar o e-mail com um tipo de arquivo inválido e ele vai exibir o tipo na mensagem de erro. Dai é só adicionar no if.

Quaisquer dúvidas ou sugestões, postem ai por favor....

form.htm

<form name="curriculo" enctype="multipart/form-data" action="envia_arquivo.php" method="post">

<input name="nome" type="text" class="form" id="nome2" size="30">
<input name="email" type="text" class="form" id="nome3" size="30">
<input type="hidden" name="MAX_FILE_SIZE" value="1024000"> <!-- tamanho máximo do arquivo em bytes -->
<input name="userfile" type="file" class="form" size="30">
<input name="Submit" type="image" value="Enviar" src="images/buttom_enviar.gif" width="72" height="18">

</form>


envia.php

<?php
// $userfile is where file went on webserver
  $userfile = $HTTP_POST_FILES['userfile']['tmp_name'];

  // $userfile_name is original file name
  $userfile_name = $HTTP_POST_FILES['userfile']['name'];

  // $userfile_size is size in bytes
  $userfile_size = $HTTP_POST_FILES['userfile']['size'];

  // $userfile_type is mime type e.g. image/gif
  $userfile_type = $_FILES["userfile"]["type"];

  // $userfile_error is any error encountered
  $userfile_error = $HTTP_POST_FILES['userfile']['error'];
// userfile_error was introduced at PHP 4.2.0
// use this code with newer versions


  if ($userfile_error > 0)
  {
    switch ($userfile_error)
    {
      case 1:  echo '<br /><br /><br /><p class="texto3" align="center">Arquivo excedeu o tamanho máximo de arquivo permitido.<br />O tamanho máximo é 1Mb ou 1024Kb.</p><br /><br />';
     echo '<p class="texto2" align="center"><a href="form.htm" target=mainFrame>voltar</a></font></p>';     break;
      case 2:  echo '<br /><br /><br /><p class="texto3" align="center">Arquivo excedeu o tamanho máximo de arquivo permitido.<br />O tamanho máximo é 1Mb ou 1024Kb.</font></p><br /><br />';
     echo '<p class="texto2" align="center"><a href="form.htm" target=mainFrame>voltar</a></p>';     break;
      case 3:  echo '<br /><br /><br /><p class="texto3" align="center">Somente parte do arquivo foi enviado. É necessário enviar novamente!</font></p><br /><br />';
     echo '<p class="texto2" align="center"><a href="form.htm" target=mainFrame>voltar</a></font></p>';  break;
      case 4:  echo '<br /><br /><br /><p class="texto3" align="center">Arquivo não enviado.</font></p><br /><br />';
     echo '<p class="texto2" align="center"><a href="form.htm" target=mainFrame>voltar</a></font></p>';  break;
    }
    exit;
  }
// end of code for 4.2.0

if(($userfile_type=='application/pdf') OR ($userfile_type=='application/msword') OR ($userfile_type=='application/doc'))
{
// put the file where we'd like it
  while(list($key, $val) = each($HTTP_POST_VARS)) {
    if($key == 'nome')
      {$nome= $val;
   $esp = '_';}
if($key == 'email')
   {$email= $val;}
else
    {$lixo= '$key == $val';}}

  $file = $nome.$esp.$userfile_name;
  $dir = //diretório que será gravado o arquivo no servidor
  $upfile = $dir.$file;

// is_uploaded_file and move_uploaded_file added at version 4.0.3
  if (is_uploaded_file($userfile))
  {
     if (!move_uploaded_file($userfile, $upfile))
     {
        echo '<br /><br /><br /><p class="texto3" align="center">Problema: Arquivo não pode ser enviado. <br />Tente novamente mais tarde.<br /> b></font></p><br /><br />';
        
  exit;
     }
  }
  else
  {
    echo '<br /><br /><br /><p class="texto3" align="center">Problema: arquivo com nível de segurança duvidoso. Arquivo não enviado.</font></p><br /><br />';
    exit;
  }

  echo '<br /><br /><br /><p class="texto3" align="center">Arquivo enviado com sucesso!!!</font></p><br /><br />';


while(list($key, $val) = each($HTTP_POST_VARS)) {
    if($key = 'nome')
  $nome = $val;
if($key = 'email')
  $email = $val;
}

$boundary = strtotime('NOW');
 
$headers = "From: $nome <$email>\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/mixed; boundary=\"" . $boundary . "\"\n";

$msg = "--" . $boundary . "\n";
$msg .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
$msg .= "Content-Transfer-Encoding: quoted-printable\n\n";

$msg .= "Coloque nessa variável a msg.\n\n";

//PEGA O IP DO USUÁRIO QUE ESTÁ ENVIANDO
$ip = getenv("REMOTE_ADDR");
$msg .= "Mensagem enviada pelo IP: $ip\n\n\n\n";
 
$msg .= "Nome: $nome\n\n";
$msg .= "E-mail: $email\n\n";
$msg .= "Nome do Arquivo: $file\n\n\n\n";

$msg .= "--" . $boundary . "\n";
$msg .= "Content-Transfer-Encoding: base64\n";
$msg .= "Content-Disposition: attachment; filename=\"$file\"\n\n";

ob_start();
  readfile("$file");
  $enc = ob_get_contents();
ob_end_clean();

$msg_temp = base64_encode($enc). "\n";
$tmp[1] = strlen($msg_temp);
$tmp[2] = ceil($tmp[1]/76);

for ($b = 0; $b <= $tmp[2]; $b++) {
   $tmp[3] = $b * 76;
   $msg .= substr($msg_temp, $tmp[3], 76) . "\n";
}

unset($msg_temp, $tmp, $enc);

mail("para", "assunto", $msg, $headers);
unlink($file);
}
else
{
echo 'ERRO<br />';
echo 'Tipo '.$userfile_type.' não é aceito';
}
?>    


Edição feita por: nUtS, 11/05/2004, 09:26.





1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq