How to send an email and generate a PDF

0

I need to generate a pdf for the client to save and at the same time send an email to the company with PHP.

I have this code, but the email works and if I do only the pdf generator it works too, it just does not work together. I believe you have something that is not letting you generate the pdf.

    <?php
    $field_name                 = $_POST['cf_name'];
    $field_email                = $_POST['cf_email'];
    $field_phone                = $_POST['cf_phone'];
    $field_celular              = $_POST['cf_celular'];
    $field_cpf                  = $_POST['cf_cpf'];
    $field_rg                   = $_POST['cf_rg'];

    $field_cnpj                 = $_POST['cf_cnpj'];
    $field_razaosocial          = $_POST['cf_razaosocial'];
    $field_ie                   = $_POST['cf_ie'];

    $field_cep                  = $_POST['cf_cep'];
    $field_rua                  = $_POST['cf_rua'];
    $field_numero               = $_POST['cf_numero'];
    $field_complemento          = $_POST['cf_complemento'];
    $field_bairro               = $_POST['cf_bairro'];
    $field_cidade               = $_POST['cf_cidade'];
    $field_uf                   = $_POST['cf_uf'];

    $field_dispositivo          = $_POST['cf_dispositivo'];
    $field_fabricante           = $_POST['cf_fabricante'];
    $field_modelo               = $_POST['cf_modelo'];
    $field_serial               = $_POST['cf_serial'];
    $field_sistema              = $_POST['cf_sistema'];
    $field_particoes            = $_POST['cf_particoes'];
    $field_capacidade           = $_POST['cf_capacidade'];
    $field_unidadecapacidade    = $_POST['cf_unidade_capacidade'];


    $field_conteudomidia        = $_POST["cf_conteudo_midia"];
    $field_recuperabanco        = $_POST['cf_recupera_banco'];
    $field_bancodados           = $_POST['cf_banco_dados'];
    $field_ocorreu              = $_POST['cf_ocorreu'];
    $field_tentativa            = $_POST['cf_tentativa'];
    $field_jafoi                = $_POST['cf_ja_foi'];
    $field_prioritarios         = $_POST['cf_prioritarios'];
    $field_nomeregulamento      = $_POST['nome_regulamento'];
    $field_date                 = $_POST['date'];

    $field_diagnostico          = $_POST['cf_opcaodiagnostico'];

    $mail_to = '[email protected]';
    $subject = 'Novo Formulario de '.$field_name;

    $body_message = 'Nome: '.$field_name."\n";
    $body_message .= 'E-mail: '.$field_email."\n";
    $body_message .= 'CPF: '.$field_cpf."\n";
    $body_message .= 'RG: '.$field_rg."\n";
    $body_message .= 'Telefone: '.$field_phone."\n";
    $body_message .= 'Celular: '.$field_celular."\n\n";

    $body_message .= 'Razão Social: '.$field_razaosocial."\n";
    $body_message .= 'CNPJ: '.$field_cnpj."\n";
    $body_message .= 'IE: '.$field_ie."\n\n";

    $body_message .= 'CEP: '.$field_cep."\n";
    $body_message .= 'Rua: '.$field_rua."\n";
    $body_message .= 'Número: '.$field_numero."\n";
    $body_message .= 'Complemento: '.$field_complemento."\n";
    $body_message .= 'Bairro: '.$field_bairro."\n";
    $body_message .= 'Cidade: '.$field_cidade."\n";
    $body_message .= 'Estado: '.$field_uf."\n\n";

    $body_message .= 'Dispositivo: '.$field_dispositivo."\n";
    $body_message .= 'Fabricante: '.$field_fabricante."\n";
    $body_message .= 'Modelo: '.$field_modelo."\n";
    $body_message .= 'Serial Number: '.$field_serial."\n";
    $body_message .= 'Sistema Operacional: '.$field_sistema."\n";
    $body_message .= 'Número de Partições: '.$field_particoes."\n";
    $body_message .= 'Capacidade:         '.$field_capacidade.$field_unidadecapacidade."\n\n";

    $body_message .= 'Conteúdo da Mídia: '.$field_conteudomidia."\n";
    $body_message .= 'Recuperar Banco de Dados: '.$field_recuperabanco."\n";
    $body_message .= 'Banco de Dados: '.$field_bancodados."\n";
    $body_message .= 'O que ocorreu: '.$field_ocorreu."\n";
    $body_message .= 'Tentativa de recuperação de dados e/ou orçamento com outra empresa já foi realizado: '.$field_tentativa."\n";
    $body_message .= 'O dispositivo foi formatado ou teve arquivos deletados: '.$field_jafoi."\n";
    $body_message .= 'Arquivos prioridarios: '.$field_prioritarios."\n\n";


    $body_message .= 'Opção de Diagnóstico: '.$field_diagnostico."\n\n";

    $headers = 'From: '.$field_email."\r\n";
    $headers .= 'Reply-To: '.$field_email."\r\n";


    $mail_status = mail($mail_to, $subject, $body_message, $headers);

    if {

    // PEGA O ARQUIVO MODELO

    $pdf = file_get_contents("modelo.html");
    // SUBSTITUI COM OS DADOS FORNECIDOS
    $pdf = str_replace("#name","$field_name",$pdf);
    $pdf = str_replace("#cpf","$field_cpf",$pdf);
    $pdf = str_replace("#email","$field_email",$pdf);
    // SOLICITA A CLASS MPDF
    require_once("mpdf/mpdf.php");
    // INSTANCIA A CLASS MPDF
    $mpdf = new mPDF();
    // ESCREVE O PDF
    $mpdf->WriteHTML($pdf);
    // SAIDA DO PDF NO NAVEGADOR
    $mpdf->Output("Relatório - ".$field_name.".pdf","D");
    SE QUISER SALVAR É SÓ DIRECIONAR O DIRETORIO
    //arquivo_contrato = $mpdf->Output("../requerimentos/".$nome.".pdf");
    }
    ?>
    
asked by anonymous 13.11.2017 / 18:25

1 answer

0

Test the code in parts, check that all $_POST has values, so you can give echo/vardump in $body_message .

Add headers like this:

$headers = "From: ".$field_email."\r\n".
           "Reply-To: ".$field_email."\r\n";

Change single quotation marks into double quotation marks in variables.

Try with a condition in if

if($mail_status) {
    // PEGA O ARQUIVO MODELO
    $pdf = file_get_contents("modelo.html");
    // SUBSTITUI COM OS DADOS FORNECIDOS
    $pdf = str_replace("#name", $field_name, $pdf); // Note que não precisa das aspas para passar a variavel no str_replace
    $pdf = str_replace("#cpf", $field_cpf, $pdf);
    $pdf = str_replace("#email", $field_email, $pdf);
    // SOLICITA A CLASS MPDF
    require_once("mpdf/mpdf.php");
    // INSTANCIA A CLASS MPDF
    $mpdf = new mPDF();
    // ESCREVE O PDF
    $mpdf->WriteHTML($pdf);
    // SAIDA DO PDF NO NAVEGADOR
    $mpdf->Output("Relatório - ".$field_name.".pdf","D");
    //SE QUISER SALVAR É SÓ DIRECIONAR O DIRETORIO
    //arquivo_contrato = $mpdf->Output("../requerimentos/".$nome.".pdf");
}else{
    echo "Erro ao enviar e-mail";
}
?>
    
13.11.2017 / 18:34