Ir para conteúdo
Fórum Script Brasil

Peter_

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Tudo que Peter_ postou

  1. Oi pessoal, Envio o email HTML mas a imagem não aparece embutida / inline / no corpo do email. Ela vai como anexo. Utilizo a classe PHP Mailer. Todas as pastas estão corretas. Eis o código: <?php require("class.phpmailer.php"); $texto = $_POST['mensagem']; // Inicia a classe PHPMailer $mail = new PHPMailer(); // Define os dados do servidor e tipo de conexão // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= $mail->IsSMTP(); // Define que a mensagem será SMTP $mail->Host = "mail.MEUHOST.COM"; // Endereço do servidor SMTP $mail->SMTPAuth = true; // Usa autenticação SMTP? (opcional) $mail->Port = 25; // Porta $mail->Username = 'teste2@MEUHOST.COM'; // Usuário do servidor SMTP $mail->Password = 'teste2'; // Senha do servidor SMTP e desta conta de email // Define o remetente // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= $mail->From = "no-reply@MEUHOST.COM"; // Seu e-mail $mail->FromName = "MINHA EMPRESA"; // Seu nome // Define o(s) destinatário(s) // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= $destinatarios = explode(",", $_POST['destinatarios']); $total_dest = sizeof ($destinatarios); for ( $i = 0; $i < $total_dest; $i++) { $destinatarios[$i] = trim ($destinatarios[$i]); if ( PHPMailer::ValidateAddress ( $destinatarios[$i] ) == true ) { echo "Destinatario VALIDO: '" . $destinatarios[$i] . "'<br />"; $mail->AddBCC( $destinatarios[$i] ); } else echo "Destinatario INVALIDO: '" . $destinatarios[$i] . "'<br />"; } // Define os dados técnicos da Mensagem // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= $mail->IsHTML(true); // Define que o e-mail será enviado como HTML // Define a mensagem (Texto e Assunto) // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= $assunto = $_POST['assunto']; $mail->Subject = $assunto; // Assunto da mensagem // Necessário substituir \" por ' pois o CKEditor 3.x // adiciona este caracter extra $texto = str_replace ( "\\\"", "'", $texto ); // obtém as imagens do texto e as coloca em um arranjo. $texto_modificado = $texto; $array_imagens = array (); $chave_inicio = "src='"; do { // retorna um INT mas na documentacao oficial ele compara com um BOOLEAN $achou = strpos ( $texto_modificado , $chave_inicio ); if ( $achou !== false ) { $inicio = ((integer) $achou); $inicio_imagem = $inicio + strlen ( $chave_inicio ); $chave_fim = ".jpg'"; $pos = strpos ( $texto_modificado , $chave_fim, $inicio_imagem ); if ( $pos === false ) $chave_fim = ".gif'"; $pos = strpos ( $texto_modificado , $chave_fim, $inicio_imagem ); if ( $pos === false ) $chave_fim = ".png'"; $pos = strpos ( $texto_modificado , $chave_fim, $inicio_imagem ); if ( $pos === false ) $chave_fim = ".bmp'"; $pos = strpos ( $texto_modificado , $chave_fim, $inicio_imagem ); if ( $pos === false ) $chave_fim = ".jpeg'"; $pos = strpos ( $texto_modificado , $chave_fim, $inicio_imagem ); $fim = $pos + strlen ( $chave_fim ); $fim_imagem = $fim - 1; $array_imagens[] = substr ( $texto_modificado , $inicio_imagem, ($fim_imagem - $inicio_imagem) ); $texto_modificado = substr_replace ( $texto_modificado, " ", $inicio, ($fim - $inicio) ); } } while ( $achou !== false ); $total_imagens = sizeof($array_imagens); // Content IDs $cids = array (); for ( $contador = 0; $contador < $total_imagens; $contador++ ) { // gera os IDs das imagens para se serem posicionados no texto da mensagem $cids[] = $contador . "__" . date('YmdHms') . "." . time(); echo "Imagem : '" . $array_imagens [$contador] . "'<br />"; echo "CID: " . $cids[$contador] . "<br /><br />"; } echo "\n\n"; echo "TEXTO MODIFICADO: " . $texto . "<br />"; // Substitui imagem a imagem pelo seu ID no texto recebido for ( $contador = 0; $contador < $total_imagens; $contador++ ) { $texto = str_replace ( $array_imagens [$contador], "cid:" . $cids [$contador], $texto ); // $mail->AddEmbeddedImage( "/home/MEUUSER/public_html" . $array_imagens [$contador], $cids [$contador] ); $mail->AddEmbeddedImage( "/home/MEUUSER/public_html" . $array_imagens [$contador], $cids [$contador], "figura_" . $contador . ".jpg", "base64", "image/jpeg" ); } $body = "<html>\r\n"; $body .= "<head>\r\n"; $body .= "<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" />"; $body .= "</head>\r\n"; $body .= "<body>\r\n"; $body .= $texto . "\r\n"; $body .= "</body>\r\n"; $body .= "</html>\r\n\n"; $mail->AltBody = 'O seu sistema de recepção de email não suporta HTML'; // $mail->Body = $body; $mail->MsgHTML ($body); // Define os anexos // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= // Verificações do anexo 1 $anexo_1 = false; if ( isset($_FILES["anexo_1"]) && $_FILES["anexo_1"]!=null && $_FILES["anexo_1"]["size"] > 0 ) { /*if (($_FILES["anexo_1"]["type"] == "image/gif") || ($_FILES["anexo_1"]["type"] == "image/jpeg") || ($_FILES["anexo_1"]["type"] == "image/pjpeg")) {*/ $anexo_1 = true; //} } // Verificações do anexo 2 $anexo_2 = false; if ( isset($_FILES["anexo_2"]) && $_FILES["anexo_2"]!=null && $_FILES["anexo_2"]["size"] > 0 ) { /*if (($_FILES["anexo_2"]["type"] == "image/gif") || ($_FILES["anexo_2"]["type"] == "image/jpeg") || ($_FILES["anexo_2"]["type"] == "image/pjpeg")) {*/ $anexo_2 = true; //} } // Verificações do anexo 3 $anexo_3 = false; if ( isset($_FILES["anexo_3"]) && $_FILES["anexo_3"]!=null && $_FILES["anexo_3"]["size"] > 0) { /*if (($_FILES["anexo_3"]["type"] == "image/gif") || ($_FILES["anexo_3"]["type"] == "image/jpeg") || ($_FILES["anexo_3"]["type"] == "image/pjpeg")) {*/ $anexo_3 = true; //} } $total = 0; if ( $anexo_1 == true ) $total += $_FILES["anexo_1"]["size"]; if ( $anexo_2 == true ) $total += $_FILES["anexo_2"]["size"]; if ( $anexo_3 == true ) $total += $_FILES["anexo_3"]["size"]; echo "TOTAL DOS UPLOADS: " . $total . " KB<br/>"; if ( $total < 20000000 ) // em Kb { if ( ($anexo_1==true && $_FILES["anexo_1"]["error"] > 0) || ($anexo_2==true && $_FILES["anexo_2"]["error"] > 0) || ($anexo_3==true && $_FILES["anexo_3"]["error"] > 0) ) { echo "Código de erro: " . $_FILES["anexo_1"]["error"] . "; " . $_FILES["anexo_2"]["error"] . "; " . $_FILES["anexo_3"]["error"] . "<br />"; } else { if ( $anexo_1 == true ) { move_uploaded_file($_FILES["anexo_1"]["tmp_name"], "upload/" . $_FILES["anexo_1"]["name"]); $mail->AddAttachment("upload/" . $_FILES["anexo_1"]["name"], $_FILES["anexo_1"]["name"]); // Insere um anexo } if ( $anexo_2 == true ) { move_uploaded_file($_FILES["anexo_2"]["tmp_name"], "upload/" . $_FILES["anexo_2"]["name"]); $mail->AddAttachment("upload/" . $_FILES["anexo_2"]["name"], $_FILES["anexo_2"]["name"]); // Insere um anexo } if ( $anexo_3 == true ) { move_uploaded_file($_FILES["anexo_3"]["tmp_name"], "upload/" . $_FILES["anexo_3"]["name"]); $mail->AddAttachment("upload/" . $_FILES["anexo_3"]["name"], $_FILES["anexo_3"]["name"]); // Insere um anexo } } } else { echo "Tipos inválidos dos arquivos carregados ou o tamanho somado passa de 20 MB.<br />"; } // Envia o e-mail $enviado = $mail->Send(); // Exibe uma mensagem de resultado if ($enviado) { // Limpa os destinatários e os anexos $mail->ClearAllRecipients(); $mail->ClearAttachments(); echo "E-mail enviado com sucesso!<br />"; echo("&lt;script language='javascript'>"); echo(" alert('Email enviado com sucesso.\\n\\nRedirecionando....');"); // echo(" location = 'maladireta.php';"); echo("</script>"); exit; } else { // Limpa os destinatários e os anexos $mail->ClearAllRecipients(); $mail->ClearAttachments(); echo "Não foi possível enviar o e-mail.<br /><br />"; echo "<b>Informações do erro:</b> <br />" . $mail->ErrorInfo; echo("&lt;script language='javascript'>"); echo(" alert('Não foi possível enviar o e-mail.\\n\\nRedirecionando....');"); //echo(" location = 'maladireta.php';"); echo("</script>"); exit; } ?>
×
×
  • Criar Novo...