Enviar email com anexo em pdf

1. Enviar email com anexo em pdf

Lucas Spielmann
lucasdcsp

(usa Mandriva)

Enviado em 21/06/2014 - 01:59h

Boa noite, senhores.

Preciso fazer com que este conteúdo que esta sendo enviado por email, seja enviado em PDF ao invés de ir no corpo do email.
A função de enviar o email está funcionando, porém não estou conseguindo transforma-lo em pdf e muito menos envia-lo como anexo.

Segue abaixo cod. fonte:

<?php

if(mysql_num_rows($sql3) > 0){
while($RSSS = mysql_fetch_assoc($sql3)){

$Destinatario= array();
if(substr($RSSS["email"],0,1) == 1){$Destinatario[]= "nome1@mail.com.br";}
if(substr($RSSS["email"],1,1) == 1){$Destinatario[]= "nome2@mail.com.br";}
if(substr($RSSS["email"],2,1) == 1){$Destinatario[]= "nome3@mail.com.br";}
if(substr($RSSS["email"],3,1) == 1){$Destinatario[]= "nome4@mail.com.br";}
if(substr($RSSS["email"],4,1) == 1){$Destinatario[]= "nome5@mail.com.br";}
if(substr($RSSS["email"],5,1) == 1){$Destinatario[]= "nome6@mail.com.br";}

$Assunto = "Veiculo";
$Corpo = "<table width='50%' border='0' style='font-family:verdana;font-size:12px;'>";
$Corpo .= "<tr><td><b>CÓDIGO DE CADASTRO:</b><td><b>".strtoupper($RSSS["cdVeiculo"])."</b></td></tr>";
$Corpo .= "<tr><td><b>&nbsp;</b></td></tr>";
////DADOS DA EMPRESA SOLICITANTE/////////////////////////////
$Corpo .= "<tr><td colspan='2' align='center' bgcolor='#A9A9A9'><b>EMPRESA SOLICITANTE</b><br></td></tr>";
$Corpo .= "<tr bgcolor='#F4F4F4'><td><b>Empresa:</b></td><td>".strtoupper($RSSS["empresaSolicitante"])."</td></tr>";
$Corpo .= "<tr><td><b>Responsável:</b></td><td>".strtoupper($RSSS["responsavelSolicitante"])."</td></tr>";
$Corpo .= "<tr bgcolor='#F4F4F4'><td><b>Telefone:</b></td><td>".strtoupper($RSSS["telSolicitante"])."</td></tr>";
if(substr($RSSS["situacaoFuncional"],0,1) == "1"){$Corpo .="<tr><td><b>Situação Funcional:</b></td><td>".'Empregado'."</td></tr>";}
if(substr($RSSS["situacaoFuncional"],1,1) == "1"){$Corpo .="<tr><td><b>Situação Funcional:</b></td><td>".'Agregado'."</td></tr>";}
if(substr($RSSS["situacaoFuncional"],2,1) == "1"){$Corpo .="<tr><td><b>Situação Funcional:</b></td><td>".'Terceiro'."</td></tr>";}
$Corpo .= "<tr><td><b>&nbsp;</b></td></tr>";
////DADOS DO MOTORISTA/////////////////////////////////////////
$Corpo .= "<tr><td colspan='2' align='center' bgcolor='#A9A9A9'><b>DADOS MOTORISTA</b><br></td></tr>";
$Corpo .= "<tr bgcolor='#F4F4F4'><td><b>CPF:</b></td><td>".strtoupper($RSSS["cpfmotVeiculo"])."</td></tr>";
$Corpo .= "<tr><td><b>Nome:</b></td><td>".strtoupper($RSSS["nomeMotVeiculo"])."</td></tr>";
$Corpo .= "<tr bgcolor='#F4F4F4'><td><b>Celular:</b></td><td>".strtoupper($RSSS["telcelmotVeiculo"])."</td></tr>";
$Corpo .= "<tr><td><b>&nbsp;</b></td></tr>";
////DADOS DO VEICULO////////////////////////////////////////
$Corpo .= "<tr><td colspan='2' align='center' bgcolor='#A9A9A9'><b>DADOS DO VEÍCULO</b><br></td></tr>";
$Corpo .= "<tr bgcolor='#F4F4F4'><td><b>Placa:</b></td><td>".$RSSS["placaVeiculo"]."</td></tr>";
$Corpo .= "<tr><td><b>UF:</b></td><td>".$RSSS["uf1"]."</td></tr>";
$Corpo .= "<tr bgcolor='#F4F4F4'><td><b>Cidade:</b></td><td>".$RSSS["cidade1"]."</td></tr>";
$Corpo .= "<tr><td><b>Marca:</b></td><td>".$RSSS["marcaVeiculo"]."</td></tr>";
$Corpo .= "<tr bgcolor='#F4F4F4'><td><b>Ano do Modelo:</b></td><td>".$RSSS["anoModVeiculo"]."</td></tr>";
$Corpo .= "<tr><td><b>Modelo:</b></td><td>".strtoupper($RSSS["modeloVeiculo"])."</td></tr>";
$Corpo .= "<tr bgcolor='#F4F4F4'><td><b>Ano de Fabricação:</b></td><td>".strtoupper($RSSS["fabricacaoVeiculo"])."</td></tr>";
$Corpo .= "<tr><td><b>Cor:</b></td><td>".strtoupper($RSSS["corVeiculo"])."</td></tr>";
$Corpo .= "<tr bgcolor='#F4F4F4'><td><b>Chassi:</b></td><td>".strtoupper($RSSS["chassiVeiculo"])."</td></tr>";
$Corpo .= "<tr><td><b>Renavan:</b></td><td>".strtoupper($RSSS["renavanVeiculo"])."</td></tr>";
if(substr($RSSS["combustivelVeiculo"],0,1) == "1"){$Corpo .="<tr bgcolor='#F4F4F4'><td><b>Combustivel:</b></td><td>".'Diesel'."</td></tr>";}
if(substr($RSSS["combustivelVeiculo"],1,1) == "1"){$Corpo .="<tr bgcolor='#F4F4F4'><td><b>Combustivel:</b></td><td>".'Gasolina'."</td></tr>";}
if(substr($RSSS["combustivelVeiculo"],2,1) == "1"){$Corpo .="<tr bgcolor='#F4F4F4'><td><b>Combustivel:</b></td><td>".'Alcool'."</td></tr>";}
$Corpo .= "<tr><td><b>&nbsp;</b></td></tr>";
////DADOS DO RASTREADOR/////////////////////////////////////////////
$Corpo .= "<tr><td colspan='2' align='center' bgcolor='#A9A9A9'><b>DADOS DO RASTREADOR</b><br></td></tr>";
$Corpo .= "<tr bgcolor='#F4F4F4'><td><b>Rastreador:</b></td><td>".strtoupper($RSSS["rastreadorVeiculo"])."</td></tr>";
$Corpo .= "<tr><td><b>Marca:</b></td><td>".strtoupper($RSSS["marcaRastreador"])."</td></tr>";
$Corpo .= "<tr bgcolor='#F4F4F4'><td><b>Gerenciadora:</b></td><td>".strtoupper($RSSS["gerenciadoraRastreador"])."</td></tr>";
$Corpo .= "<tr><td><b>Contato:</b></td><td>".strtoupper($RSSS["telRastreador"])."</td></tr>";
$Corpo .= "<tr bgcolor='#F4F4F4'><td><b>&nbsp;</b></td></tr>";
////DADOS DO PROPRIETARIO DO VEICULO//////////////////////////////
$Corpo .= "<tr><td colspan='2' align='center' bgcolor='#A9A9A9 '><b>DADOS DO PROPRIETÁRIO DO VEÍCULO</b><br></td></tr>";
$Corpo .= "<tr bgcolor='#F4F4F4'><td><b>CPF/CNPJ:</b></td><td>".strtoupper($RSSS["cpfProprietario"])."</td></tr>";
$Corpo .= "<tr><td><b>Nome:</b></td><td>".strtoupper($RSSS["nomeProprietario"])."</td></tr>";
$Corpo .= "<tr bgcolor='#F4F4F4'><td><b>Tel. Residencial:</b></td><td>".strtoupper($RSSS["telresidProprietario"])."</td></tr>";
$Corpo .= "<tr><td><b>Bairro:</b></td><td>".strtoupper($RSSS["bairroProprietario"])."</td></tr>";
$Corpo .= "<tr bgcolor='#F4F4F4' ><td><b>Endereço:</b></td><td>".strtoupper($RSSS["enderecoProprietario"])."</td></tr>";
$Corpo .= "<tr><td><b>Número:</b></td><td>".strtoupper($RSSS["numeroProprietario"])."</td></tr>";
$Corpo .= "<tr bgcolor='#F4F4F4'><td><b>UF:</b></td><td>".$RSSS["uf2"]."</td></tr>";
$Corpo .= "<tr><td><b>Cidade:</b></td><td>".$RSSS["cidade2"]."</td></tr>";
$Corpo .= "<tr><td><b>&nbsp;</b></td></tr>";
$Corpo .= "</table>";
$Corpo .= "<br><br>OBS: Favor não responder este e-mail. Envio Automático.";

EnvioMail($Destinatario, $Assunto, $Corpo);

/* até tentei incluír este código que encontrei juntamente com a biblioteca dompdf, mas nunca converti nada para pdf.
include "../../dompdf/dompdf_config.inc.php";
$dompdf = new DOMPDF();
$dompdf->load_html($Corpo);
$dompdf->set_paper('letter', 'landscape');
$dompdf->render();
$dompdf->stream("remessas.pdf");
*/
}

}
?>

Funciona da seguinte forma, la no formulário quando clico em salvar, ele envia para os destinatários acima selecionados, os dados abaixo armazenados na variável $Corpo. Até ai esta funcionando perfeitamente, mas preciso que essa informação seja enviada por anexo em PDF. Alguém pode me ajudar????


  


2. Bagunça

Fernando Rego
fernandorego

(usa Ubuntu)

Enviado em 21/06/2014 - 07:52h

Cara, que bagunça! Precisa tentar organizar/profissionalizar melhor seus códigos. Parece uma grande cópia de algum tutorial para iniciantes encontrado no Google...

Vamos lá... Supondo que entendi o que você quer, você precisa focar que está preparando um HTML e enviando por e-mail, quando a sequencia correta para o que deseja é outra: preparar o HTML, gerar o PDF, anexar o PDF e enviar o e-mail.

Até gerar o HTML parece que está ok, mas você precisa imprimir isso em um PDF usando alguma biblioteca para PHP. Gerar um arquivo HTML a partir do seu conteúdo antes de converter em PDF pode te ajudar a ter visualização dos seus objetivos.

Enfim, procure adequar seu código para fazer o seguinte:

1) "Montar" o documento que deseja apresentar;
2) Imprimir essa montagem num HTML (daí vc pode abrir o HTML e ver se está OK);
3) Converter a montagem (ou o HTML) em PDF (para abrir e testar também);
4) Converter o PDF usando as biblios de base64 para anexar no e-mail;
5) Disparar o e-mail.

Achei esses artigos para ajudar a converter em PDF:
- http://www.vivaolinux.com.br/dica/Geracao-de-arquivos-PDF-com-o-CUPSPDF
- http://www.vivaolinux.com.br/dica/Gerar-documentos-em-PDF-usando-ps2pdf
- http://www.vivaolinux.com.br/artigo/Gerando-documentos-PDF-com-a-classe-FPDF-no-PHP/

E esses aqui para anexar arquivo em e-mail:
- http://www.vivaolinux.com.br/script/Enviando-um-email-com-um-arquivo-em-anexo
- http://www.vivaolinux.com.br/dica/Enviando-email-em-modo-texto-com-anexo
- http://www.vivaolinux.com.br/dica/Utilizando-a-classe-phpmailer-como-alternativa-a-funcao-mail()-do-...

Boa sorte!


3. Re: Enviar email com anexo em pdf

Lucas Spielmann
lucasdcsp

(usa Mandriva)

Enviado em 21/06/2014 - 12:01h

Bom dia,

Acabou bagunçando pelo fato de ter colado aqui no forum. Mas não faço cópias, o conteúdo é grande mesmo pois o formulário é bem grande.
Mas isso não é o problema, vou seguir o que me passou.

Desde já, Obrigado.




4. Re: Enviar email com anexo em pdf

Josue de Jesus Santos
JJSantos

(usa Gentoo)

Enviado em 21/06/2014 - 13:00h


CÓDIGO DE CADASTRO: ".strtoupper($RSSS["cdVeiculo"])."

EMPRESA SOLICITANTE
Empresa: ".strtoupper($RSSS["empresaSolicitante"])."
Responsável: ".strtoupper($RSSS["responsavelSolicitante"])."
Telefone: ".strtoupper($RSSS["telSolicitante"])."
Situação Funcional: ".'Empregado'."
Situação Funcional: ".'Agregado'."
Situação Funcional: ".'Terceiro'."

DADOS MOTORISTA
CPF: ".strtoupper($RSSS["cpfmotVeiculo"])."
Nome: ".strtoupper($RSSS["nomeMotVeiculo"])."
Celular: ".strtoupper($RSSS["telcelmotVeiculo"])."

DADOS DO VEÍCULO
Placa: ".$RSSS["placaVeiculo"]."
UF: ".$RSSS["uf1"]."
Cidade: ".$RSSS["cidade1"]."
Marca: ".$RSSS["marcaVeiculo"]."
Ano do Modelo: ".$RSSS["anoModVeiculo"]."
Modelo: ".strtoupper($RSSS["modeloVeiculo"])."
Ano de Fabricação: ".strtoupper($RSSS["fabricacaoVeiculo"])."
Cor: ".strtoupper($RSSS["corVeiculo"])."
Chassi: ".strtoupper($RSSS["chassiVeiculo"])."
Renavan: ".strtoupper($RSSS["renavanVeiculo"])."
Combustivel: ".'Diesel'."
Combustivel: ".'Gasolina'."
Combustivel: ".'Alcool'."

DADOS DO RASTREADOR
Rastreador: ".strtoupper($RSSS["rastreadorVeiculo"])."
Marca: ".strtoupper($RSSS["marcaRastreador"])."
Gerenciadora: ".strtoupper($RSSS["gerenciadoraRastreador"])."
Contato: ".strtoupper($RSSS["telRastreador"])."

DADOS DO PROPRIETÁRIO DO VEÍCULO
CPF/CNPJ: ".strtoupper($RSSS["cpfProprietario"])."
Nome: ".strtoupper($RSSS["nomeProprietario"])."
Tel. Residencial: ".strtoupper($RSSS["telresidProprietario"])."
Bairro: ".strtoupper($RSSS["bairroProprietario"])."
Endereço: ".strtoupper($RSSS["enderecoProprietario"])."
Número: ".strtoupper($RSSS["numeroProprietario"])."
UF: ".$RSSS["uf2"]."
Cidade: ".$RSSS["cidade2"]."




5. Re: Enviar email com anexo em pdf

Lucas Spielmann
lucasdcsp

(usa Mandriva)

Enviado em 21/06/2014 - 19:02h

Pessoal, ainda não consegui resolver o problema do envio do email com o conteudo em anexo em dpf.


6. Converter para pdf

Lucas Spielmann
lucasdcsp

(usa Mandriva)

Enviado em 16/07/2014 - 23:09h

Boa noite,
Estou utilizando a lib DOMPDF para tentar converter um conteúdo qualquer para pdf. Estou enfrentando o seguinte erro a alguns dias já: <b>Unable to stream pdf: headers already sent</b>

Comecei testando com o conteúdo que preciso, como havia consultas em banco, etc... fui facilitando removendo achando que poderia ser este o problema, mas cheguei ao ponto de deixar o código limpo somente com conteúdo html mesmo. Segue abaixo código que está gerando o erro acima.

[PHP]
<?php
$html = "<html>";
$html .= "<head>";
$html .= "</head>";
$html .= "<body>";
$html .= "<table width='100%' border='1' cellspacing='0' cellpadding='0' style='background:#ffffff;border-collapse:collapse;font-family:verdana;font-size:12px;' bordercolor='#CCCCCC'>";
$html .= "<tr>";
$html .= "<td>";
$html .="<label>".Testeeee."</label>";
$html .= "</td>";
$html .= "</tr>";
$html .= "</table>";
$html .= "</body>";
$html .= "</html>";

require_once("dompdf/dompdf_config.inc.php");
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->set_paper('letter','landscape');
$dompdf->render();
$dompdf->stream("sample.pdf", array("Attachment" => 0));
?>
[/PHP]

O requiere_once está indicando o caminho correto. Inclusive a biblioteca DOMPDF está funcionado para outro sistema que tenho neste mesmo servidor. Portanto a biblioteca está OK, PHP esta OK, Apache está OK. Única diferença que no outro sistema envio as informações de uma pagina para outra e utilizo javascript para fazer isso. Neste sistema só vou utilizar PHP, e também não acho que seja isso o problema.
Bem, se possível gostaria muito de uma ajuda.

Obrigado.



7. Enviar email com anexo em pdf

CASSIO FERRAZ
cassio88

(usa Ubuntu)

Enviado em 17/07/2014 - 07:23h

1) o erro already sent, se não me falha a memória, é porque você já fez algum echo antes no seu programa php

2) uma possibilidade é você ter duas chamadas a funções.
a primeira chamada gera_e salva o pdf:
$nome->gera_pdf($html);
a segunda dispara o email (um exemplo usando pear está no link abaixo)
$nome->manda_email($html);

http://pear.php.net/manual/pt_BR/package.mail.mail-mime.example.php

Espero não ter sido muito sucinto

Dá um retorno depois dizendo se ajudou.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts