Ir para conteúdo
Fórum Script Brasil
  • 0

Enviando Email


JoHnNy

Pergunta

Bom dia...

Gente: baixei um script pronto de envio de email com anexo....

O que eu queria, é restringir alguns tipos de arquivos, só liberar imagens (jpg, jpeg e gif). Dêem uma olhada no script e me digam porque não está restringindo os outros arquivos...

<?

if ($acao == "anexar") // Se for apertado o botão de enviar ele entra neste if !

{

$tamanho_maximo = 1000*1000; // Tamanho máximo de 200 Kb - Você pode aumentar ou diminuir este valor se quiser !

// Eu recomendo que deixe da maneira que esta , se fizer um envio de arquivo em anexo publico!

if ($anexo_size <= $tamanho_maximo){ // Compara o tamanho máximo permitido com o tamanho do arquivo que será enviado !

if ($anexo != " "){ // Se existir arquivo anexo para ser enviado ele entra neste if !

$corpo = "corpo\n"; // $Corpo é a variável do corpo do e-mail isso é onde aparece a mensagem do e-mail !

$mime_list = array("gif"=>"image/gif", "jpg"=>"image/jpg", "jpeg"=>"image/jpeg"); // Uma lista de tipos de arquivo que podaram ser enviados em anexo !

$ABORT = FALSE;

$data = "XYZ-" . date(dmyhms) . "-ZYX"; // Data de envio do e-mail !

// Mensagem do e-mail para o script entender que é um e-mail com anexo !

$message = "--$data\n";

$message .= "Content-Transfer-Encoding: 8bits\n";

$message .= "Content-Type: text/plain; charset=\"ISO-8859-1\"\n\n";

$message .= $corpo;

$message .= "\n";

// Pega o caminho completo do nome do arquivo !

$vet_anexo[1] = $anexo;

//Checa se o arquivo que será anexado do existe e este será codificado !

foreach($vet_anexo as $chave => $caminho) {

if ($caminho !='') {

if (file_exists($caminho)){

//Tentando abrir o aquivo

if ($arq = fopen($caminho,"rb")) {

//Pega o nome do aquivo apartir do seu caminho

$arq_nome = array_pop(explode(chr(92),$caminho));

$conteudo = fread($arq,filesize($caminho));

//Codifica os dados do Arquivo

$codificado = base64_encode($conteudo);

//*****SPLIT(Separando ou quebrando os dados codificados)*****

$codificado_split = chunk_split($codificado);

fclose($arq);

$message .= "--$data\n";

$message .= "Content-Type: $anexo_type\n";

$message .= "Content-Disposition: attachment; filename=\"$anexo_name\" \n";

$message .= "Content-Transfer-Encoding: base64\n\n";

$message .= "$codificado_split\n";

}

else { $erro = "Não foi possivel abrir o Arquivo $chave: $arq_nome";

$ABORT = TRUE; // $ABORD = TRUE significa que o script ira parar neste ponto !

}

}

else {

$erro = "O Arquivo $chave Não Exite: $arq_nome";

$ABORT = TRUE;

}

}

}

$message .= "--$data--\r\n";

$topo = "MIME-Version: 1.0\n";

$topo .= "From: <$de>\r\n";

$topo .= "Content-type: multipart/mixed; boundary=\"$data\"\r\n";

$mensagem = mail($para, $assunto, $message, $topo);

if ($mensagem) {

$erro = "Mensagem enviada!";

} else {

$erro = "O envio da mensagem falhou!";

}

}else{

$erro = "Você deixou um dos campos do formulário vazio!!";

}

}else{

$erro = "O arquivo deve ter no máximo 2MB !! Desculpe!!";

}

}

?>

<!-- Código HTML do Script em PHP de enviar arquivos em ANEXO ! deve esta junto com o código em PHP acima ! -->

<table border="0" align="center" cellpadding="0" cellspacing="0" ><br>

<!-- Quando enviar um aquivo o form tem que ter este enctype= -->

<form method="post" enctype="multipart/form-data" action=""> <br>

<tr>

<td colspan="2"> <div align="left"><strong>

ANEXO

<!-- Para permitir que qualquer pessoa mude os e-mails de origem e destino mude o type de hidden dos imputs

do name="de" e name="para" e do name="assunto" para text e mude os value para " " -->

<input type="hidden" name="MAX_FILE_SIZE" value="1000000">

<input type="hidden"name="acao" value="anexar">

<input type="hidden" name="de" size=40 value="email@email.com.br">

<input type="hidden"name="para" size=40 value="email@email.com.br">

<input type="hidden" name="assunto" size=40 value="Assunto">

</strong></div></td>

</tr>

<tr>

<td colspan="2"><div align="center"><? echo $erro; // Aqui aparecera as msg de erro caso ocorra erro !! ?></td>

</tr>

<tr>

<td width="115"> </td>

<td width="303">Obs.: O arquivo deve

ter no máximo 2MB!</b></font></td>

</tr>

<tr>

<td width="115">Arquivo:

</td>

<td width="303"><input type="file" name="anexo">

</td>

</tr>

<tr>

<td colspan="2"><div align="center">

<input name="submit" type="submit" value="Enviar">

<input name="reset" type="reset" value="Limpar" >

</td>

</tr></form>

</table>

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...