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

Anexo Em Email Php


Liko 182

Pergunta

Galera, estou com um sistema pra desenvolver no qual estou enrolado

e eu estou com o prazo até 5ª Feira para entregar, por favor me ajudem!!

Eu estou enviando um formulário por email, no qual também tenho que enviar 5 fotos em anexo.

essas mesmas 5 fotos tenho que colocar no banco, e também não faço ideia de como executar,

Se alguém puder me auxiliar nessa parte estarei muitoo gratoo, pois é só oque falta para terminar

o Sistema, aguardo resposta galera,

Obrigadoo

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
Guest --liko182 --

então...

estou enviando um form com 5 campos file...

foto1,2,3,4 e 5...

mas não está funcionando...

ele envia o email tudo certinho porém não chega nenhum anexo...

você's podem me auxiliar?

éssa é a parte do código de envio de arquivos...

//foto;
                //se existir o upload ele vai ser passado para variavel $arquivo
                //isset = verifica se existe a variavel e ? : é um if abreviado
                $arquivo1 = isset($_FILES["foto1"]) ? $_FILES["foto1"] : FALSE;
                $arquivo2 = isset($_FILES["foto2"]) ? $_FILES["foto2"] : FALSE;
                $arquivo3 = isset($_FILES["foto3"]) ? $_FILES["foto3"] : FALSE;
                $arquivo4 = isset($_FILES["foto4"]) ? $_FILES["foto4"] : FALSE;
                $arquivo5 = isset($_FILES["foto5"]) ? $_FILES["foto5"] : FALSE;
                  
                //abro o arquivo para leitura e interpretado como binario o "rb" r é de somente leitura e o b é de binario
                $fp1 = fopen($_FILES["foto1"]["tmp_name"],"rb");
                $fp2 = fopen($_FILES["foto2"]["tmp_name"],"rb");
                $fp3 = fopen($_FILES["foto3"]["tmp_name"],"rb");
                $fp4 = fopen($_FILES["foto4"]["tmp_name"],"rb");
                $fp5 = fopen($_FILES["foto5"]["tmp_name"],"rb");
                
                //fread  Leitura de arquivo binario
                $anexo1 = fread($fp1,filesize($_FILES["foto1"]["tmp_name"]));
                $anexo2 = fread($fp2,filesize($_FILES["foto2"]["tmp_name"]));
                $anexo3 = fread($fp3,filesize($_FILES["foto3"]["tmp_name"]));
                $anexo4 = fread($fp4,filesize($_FILES["foto4"]["tmp_name"]));
                $anexo5 = fread($fp5,filesize($_FILES["foto5"]["tmp_name"]));          
                
                //base64_encode Codifica dados com MIME base64
                $anexo = base64_encode($anexo1);
                $anexo = base64_encode($anexo2);
                $anexo = base64_encode($anexo3);
                $anexo = base64_encode($anexo4);
                $anexo = base64_encode($anexo5);
                
                //fecha o arquivo            
                fclose($fp1);
                fclose($fp2);
                fclose($fp3);
                fclose($fp4);
                fclose($fp5);
                        
                //Divide uma string em pequenos pedaços
                 //Pode dividir uma string em pequenos pedaços que são úteis para ex.
                //converter a saída de base64_encode() para semânticas RFC 2045             
                $anexo1 = chunk_split($anexo1);
                $anexo2 = chunk_split($anexo2);
                $anexo3 = chunk_split($anexo3);
                $anexo4 = chunk_split($anexo4);
                $anexo5 = chunk_split($anexo5);
                
                $bodyy .= "</div></font></body></hmtl>";
                $boundary = "XYZ-" . date("dmYis") . "-ZYX";
    
    $mens = "--$boundary\n";
        $mens .= "Content-Transfer-Encoding: 8bits\n";
        $mens .= "Content-Type: text/html; charset=\"ISO-8859-1\"\n\n";
    $mens .= "--$boundary\n";
        $mens .= "Content-Type: ".$arquivo1["type"]."\n";
    $mens .= "Content-Type: ".$arquivo2["type"]."\n";
    $mens .= "Content-Type: ".$arquivo3["type"]."\n";
    $mens .= "Content-Type: ".$arquivo4["type"]."\n";
    $mens .= "Content-Type: ".$arquivo5["type"]."\n";
        $mens .= "Content-Disposition: attachment; filename=\"".$arquivo1["name"]."\"\n";
    $mens .= "Content-Disposition: attachment; filename=\"".$arquivo2["name"]."\"\n";
    $mens .= "Content-Disposition: attachment; filename=\"".$arquivo3["name"]."\"\n";
    $mens .= "Content-Disposition: attachment; filename=\"".$arquivo4["name"]."\"\n";
    $mens .= "Content-Disposition: attachment; filename=\"".$arquivo5["name"]."\"\n";
        $mens .= "Content-Transfer-Encoding: base64\n\n";
        $mens .= "$anexo1\n";
    $mens .= "$anexo2\n";
    $mens .= "$anexo3\n";
    $mens .= "$anexo4\n";
    $mens .= "$anexo5\n";
        $mens .= "--$boundary--\r\n";
    $headers  = "MIME-Version: 1.0\n";
        $headers .= "From: \"$nome\" <$email_from>\r\n";
        $headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"\r\n";
        $headers .= "$boundary\n";
                                    
    $Email = new PHPMailer();
    $Email->SetLanguage("br");
    $Email->IsMail();
    $Email->IsHTML(true);
    $Email->From = $email;
    $Email->FromName = $nome;
    $Email->AddAddress($to);
    $Email->Subject = $subjectt;
    $Email->Body = $bodyy;
    $Email->mens = $mens;
    $Email->headers = $headers;
    
    if($Email->Send()) {
        echo "<script>alert('Obrigado!\\nMensagem enviada com sucesso!\\nEntraremos em Contato o mais breve possivel!')</script>";
        echo "<script>window.location='index.php'</script>";
    }
    else {
        echo "<script>alert('Desculpe!\\nSua Mensagem não pode ser enviada. Por favor tente novamente mais tarde')</script>";
        echo "<script>window.location='anuncie.php'</script>";
    }

Link para o comentário
Compartilhar em outros sites

  • 0

Galera estou quase conseguindo fazer funcionar o codigo...

me deem uma força nessa ultima parte...

o codigo tem a função de adcionar até 5 fotos e enviar em anexo por email...

Estou postando o código pra você's darem uma olha pra mim por favor...

ai vai o código..

|

V

                  

<?
require_once('classes/class.phpmailer.php');

if (getenv("REQUEST_METHOD") == "POST")
{

set_time_limit(0);

//dados
$nome = $_POST['nome'];
...
$obs = $_POST['obs'];


//endereço eletronico
$to = "endereco_email";
$subjectt = "Assunto";
$bodyy = "
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset-iso-8859-1'/>
<title>Title</title>
</head>
<body>
<font face='verdana' size='2'>";

//Início do Cabeçalho
$bodyy .= "<div align='left' style='line-height:170%'>" ;
//Início do corpo
$bodyy .= "<strong>Dados</strong>
<br><br>
<strong>Nome:</strong> ".$nome."<br>
...
<strong>Observações:</strong> ".$obs;
//fim body

$anexos = 0;
$boundary = "XYZ-" . date("dmYis") . "-ZYX";

$mens = "--$boundary\n";
$mens .= "Content-Transfer-Encoding: 8bits\n";
$mens .= "Content-Type: text/html; charset=\"ISO-8859-1\"\n\n";
$mens .= "--$boundary\n";

for($i = 0; $i < count($_FILES["file"]["name"]); $i++)
{
if(is_uploaded_file($_FILES["file"]["tmp_name"][$i])){
$fp = fopen($_FILES["file"]["tmp_name"][$i], "rb");
$anexo = chunk_split(base64_encode(fread($fp, $_FILES["file"]["size"][$i])));
fclose($fp);

$mens .= "Content-Type: ".$_FILES["file"]["type"][$i]."\n name=\"".$_FILES["file"]["name"][$i]."\"\n";
$mens .= "Content-Disposition: attachment; filename=\"".$_FILES["file"]["name"][$i]."\"\n";
$mens .= "Content-transfer-encoding:base64\n\n";
$mens .= $anexo."\n";

if($i + 1 == count($_FILES["file"]["name"]))
$mens.= "--$boundary--";
else
$mens.= "--$boundary\n";
if($_FILES["file"]['error'][$i] == 0) {
$anexos++;
}
}
}

$headers = "MIME-Version: 1.0\n";
$headers .= "Date: ".date("D, d M Y H:i:s O")."\n";
$headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"\r\n";

$Email = new PHPMailer();
$Email->SetLanguage("br");
$Email->IsMail();
$Email->IsHTML(true);
$Email->From = $email;
$Email->FromName = $nome;
$Email->AddAddress($to);
$Email->Subject = $subjectt;
$Email->Body = $bodyy;
$Email->mens = $mens;
$Email->headers = $headers;

if($Email->Send()){
echo "<script>alert('Mensagem enviada com sucesso!, $anexos anexos')</script>";
echo "<script>window.location='pagina.ext'</script>";
}
else {
echo "<script>alert('Sua Mensagem não pode ser enviada')</script>";
echo "<script>window.location='pagina.ext'</script>";
}
}
?>

[/codebox]

Se puderem me ajudar, estarei mtooo agradecido,

=]

ah quanto a tabela tem mais de 40 campos!!!

se eu postar você's não vão ter paciencia de verificar tudo!!!!!

mais essa é a linha do file...

<tr>

<td><p class="letra">Fotos do Imóvel:</p></td>

<td height="25"><div id="conteudo">

<input name="file[]" type="file" class="list" id="file[]" />

<input type="button" class="list" value="Adicionar" onclick="Add()" /></div>

</td>

o form está assim:

<form action="envia.php" method="post" enctype="multipart/form-data" name="form1" id="form1">

tem uma classe em js que eu estou puxando para adicionar outras fotos...

Mais ela esta dando um erro...

Linha 9:'campo' é nulo ou não é um objeto

//js

NumeroCampo = 0;

function Add() {

if(NumeroCampo < 4) {

NumeroCampo++;

data = "<span id='campo"+NumeroCampo+"'><input type=\"file\" name=\"file[]\" /> <input type=\"button\" value=\"Remover\" onclick=\"Delcampo('campo"+NumeroCampo+"')\" /></span>";

campo = document.getElementById("campos");

campo.innerHTML = campo.innerHTML + data;

}

}

function Delcampo(IDDiv) {

var d = document.getElementById('campos');

var olddiv = document.getElementById(IDDiv);

d.removeChild(olddiv);

NumeroCampo--;

}

se puderem me ajudar...

agradeço de alma e coração!!!!

Obrigado!!

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,2k
    • Posts
      652k
×
×
  • Criar Novo...