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.