vazzoler 0 Denunciar post Postado Março 7, 2017 Boa noite Pessoal! Estou com o seguinte problema: estou gerando dinamicamente um um arquivo xls e gravando no meu servidor. Até aí está tudo ok. Porém eu gostaria de, logo após de gerado, esse arquivo fosse enviado por email. Estou usando phpmailer para o envio. O email está sendo enviado, porém sem o anexo. Segue meu código: <?php //Incluir a classe excelwriter include("engine/excelwriter.inc.php"); require_once 'engine/core.php'; require_once 'engine/validacao_logado.php'; require ('phpmailer/class.phpmailer.php'); require ("phpmailer/class.smtp.php"); session_start(); $exportar = $_POST['exportar']; if(!isset($exportar)) { GotoPage("cargas"); } $cargas = $_SESSION['cargas']; //Você pode colocar aqui o nome do arquivo que você deseja salvar. $excel=new ExcelWriter("planilha.xls"); if($excel==false){ echo $excel->error; } //Escreve o nome dos campos de uma tabela $myArr=array('Pedido','ID-TP','Cliente','Origem','Cliente','Destino','Tarifa','Qtde','Peso','Data','Produto','Motorista','Placa','CTE','Manifesto','Status','Observacao'); $excel->writeLine($myArr); foreach ($cargas as $carga) { $myArr=array($carga->pedido,$carga->id_tp,$carga->cliente_origem,$carga->cidade_origem,$carga->cliente_destino,$carga->cidade_destino,'R$ '.number_format($carga->tarifa, 2, ',', '.'),$carga->quantidade,number_format($carga->peso, 2, ',', '.'),DataMySQL_Brasil($carga->data),$carga->produto,$carga->motorista,$carga->placa,$carga->cte,$carga->manifesto,$carga->status,$carga->observacao); $excel->writeLine($myArr); } $excel->close(); // Envia o e-mail de boas vindas ao cliente cadastrado. $email = new PHPMailer(); $email->From = 'email@email.com.br'; $email->FromName = 'Email'; $email->Subject = 'Planilha de Cargas'; $email->Body = 'Segue em anexo planilha de Cargas'; $email->AddAddress( 'email@email.com.br' ); $file_to_attach = 'planilha.xls'; $email->AddAttachment( $file_to_attach , 'planilha.xls'); return $email->Send(); ?> Alguém sabe me dizer porque não está anexando? Obrigado Gustavo Compartilhar este post Link para o post Compartilhar em outros sites
Maykel-ctba 233 Denunciar post Postado Março 7, 2017 1) Você tem que salvar o arquivo no servidor antes de criar o anexo. O arquivo não existe até que você o tenha salvo lá. Você pode fazer uma verificação antes de enviar o e-mail usando file_exists(). 2) Você tem que setar o caminho completo no AddAttachment. A não ser que seu PHPMailer esteja na mesma pasta de planilha.xls, ele não vai funcionar assim mesmo. Compartilhar este post Link para o post Compartilhar em outros sites
vazzoler 0 Denunciar post Postado Março 7, 2017 1 hora atrás, Maykel-ctba disse: 1) Você tem que salvar o arquivo no servidor antes de criar o anexo. O arquivo não existe até que você o tenha salvo lá. Você pode fazer uma verificação antes de enviar o e-mail usando file_exists(). 2) Você tem que setar o caminho completo no AddAttachment. A não ser que seu PHPMailer esteja na mesma pasta de planilha.xls, ele não vai funcionar assim mesmo. 1) Apesar do teste não estar sendo feito, o arquivo existe, inclusive fiz um teste colocando um link para fazer o download do mesmo e deu tudo certo. 2) O arquivo está sendo salvo no mesmo diretório do PHPMailer. Teria que ficar no mesmo diretório do diretório do phpmailer ou no mesmo diretório da classe do phpmailer? Compartilhar este post Link para o post Compartilhar em outros sites
Maykel-ctba 233 Denunciar post Postado Março 7, 2017 O ideal é ter uma pasta só para estes arquivos gerados em XLS. Pra não misturar as coisas, sabe? Mas se você consegue baixar o arquivo após ser gerado, o problema deve ser outro. Libere as visualizações de erro, e também o debug do PHPMailer para ver se encontramos algo. Compartilhar este post Link para o post Compartilhar em outros sites