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

Formmail não chega anexo


By Competence

Pergunta

É o seguinte, os outros dados chegam normal, porém o anexo não chega (chega um monte de letras) alguém sabe por que isso tá acontecendo?

envia.php

<?php
/*Verifica qual é o sistema operacional e ajusta a quebra da linha funcional do cabeçalho de e-mail para Windows e Linux
Existem diferenças entre o ambiente Linux e Windows, por isso a validação abaixo configura a variável $quebra_linha com o caracter correto para cada sistema_operacional
Windows utiliza "\r\n"
Linux utiliza "\n"
*/

if(PHP_OS == "Linux") $quebra_linha = "\n"; //Se for Linux
//define os dados do remetente (deve ser um e-mail do seu domínio conforme determina a RFC 822)
$email_from = 'contato@bycompetence.com.br';

//pego os dados enviados pelo formulário
$nomecompleto     = $_POST['nomecompleto'];
$email     = $_POST['email'];
$telefone     = $_POST['telefone'];
$txcelular     = $_POST['txcelular'];
$txcidade     = $_POST['txcidade'];
$txestado     = $_POST['txestado'];
$txcargo     = $_POST['txcargo'];
$txprofissional     = $_POST['txprofissional'];
$txhierarquico     = $_POST['txhierarquico'];


//formato o campo da mensagem
$mensagem = wordwrap( $mensagem, 10000, "<br>", 1);

//valido os emails
if (!ereg("^([0-9,a-z,A-Z]+)([.,_]([0-9,a-z,A-Z]+))*[@]([0-9,a-z,A-Z]+)([.,_,-]([0-9,a-z,A-Z]+))*[.]([0-9,a-z,A-Z]){2}([0-9,a-z,A-Z])?$", $email)){

echo('<center>Digite um email valido</center>');
echo('<center><a href="java script:history.go(-1)">Voltar</center></a>');
exit;
}

$arquivo = isset($_FILES["arquivo"]) ? $_FILES["arquivo"] : FALSE;

if(file_exists($arquivo["tmp_name"]) and !empty($arquivo)){

$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);
$mensagem_cabecalho = '<P><FONT color=#3300ff size=5>Mensagem entregue com sucesso!!!</FONT></P>
<TABLE>
<TBODY>
</TBODY></TABLE>';


$boundary = 'XYZ-' . date("dmYis") . '-ZYX';
$mens = '--' . $boundary . $quebra_linha;
$mens .= 'Content-Transfer-Encoding: 8bits' . $quebra_linha;
$mens .= 'Content-Type: text/html; charset="ISO-8859-1"' . $quebra_linha . $quebra_linha;
$mens .= $mensagem_cabecalho . $quebra_linha;
$mens .= $mensagem . $quebra_linha;
$mens .= "
$nomecompleto <BR>
$email  <BR>
$telefone <BR>
$txcelular  <BR>
$txcidade  <BR>
$txestado  <BR>
$txcargo   <BR>
$txprofissional <BR>
$txhierarquico <BR>";
$mens .= '--' . $boundary . $quebra_linha;
$mens .= 'Content-Type: ' . $arquivo["type"] . $quebra_linha;
$mens .= 'Content-Disposition: attachment; filename="' . $arquivo["name"] . '"' . $quebra_linha;
$mens .= 'Content-Transfer-Encoding: base64' . $quebra_linha . $quebra_linha;
$mens .= $anexo . $quebra_linha;
$mens .= '--' . $boundary . '--' . $quebra_linha;

$headers = 'MIME-Version: 1.0' . $quebra_linha;
$headers .= 'From: ' . $email_from . $quebra_linha;
$headers .= 'Return-Path: ' . $email_from . $quebra_linha;
$headers .= 'Content-type: multipart/mixed; boundary="' . $boundary . '"' . $quebra_linha;
$headers .= $boundary . $quebra_linha;

//envio o email com o anexo
mail($email,$assunto,$mens,$headers);

echo('Email enviado com Sucesso! <a href="email.html">Voltar</a>');
}

//se não tiver anexo
else{
$mens .= "
$nomecompleto <BR>
$email  <BR>
$telefone <BR>
$txcelular  <BR>
$txcidade  <BR>
$txestado  <BR>
$txcargo   <BR>
$txprofissional <BR>
$txhierarquico <BR>";

$headers = 'MIME-Version: 1.0' . $quebra_linha;
$headers .= 'Content-type: text/html; charset=iso-8859-1' . $quebra_linha;
$headers .= 'From: ' . $email_from . $quebra_linha;

//envia o email sem anexo
mail($email,$assunto,$mens,$headers);

echo('Email enviado com Sucesso! <a href="email.html">Voltar</a>');
}

?>

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
Edgar, estou precisando de ajuda, porque está apagando meus comentários? se não quer me ajudar ok, mas deixa pra quem tem boa vontade então!

3.8 Não é permitida a postagem de mensagens com a finalidade de manter o tópico no início da lista (up), nem de mensagens que não se refiram ao assunto do tópico (flood). Caso isso ocorra, as mensagens serão excluídas e os autores, advertidos.

http://scriptbrasil.com.br/forum/index.php?act=boardrules

Link para o comentário
Compartilhar em outros sites

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...