Enviar Arquivo Para E-mail
#1
Posted 06/05/2004, 10:11
Grato
Diêgo Áquila
$mrphp = "deguinho";
echo " O Mr. PHP é $mrphp";
?>
#2
Posted 06/05/2004, 10:18
até + !!
PALMEIRAS - Primeiro campeão do mundo em 1951
#3
Posted 07/05/2004, 10:54
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.
0 user(s) are reading this topic
0 membro(s), 0 visitante(s) e 0 membros anônimo(s)