Tenko Postado Janeiro 23, 2012 Denunciar Share Postado Janeiro 23, 2012 (editado) Boa tarde pessoal, beleza?Preciso de ajuda, fiz este script, funciona para enviar qualquer arquivo, menos PDF, podem me ajudar a saber onde esta errado por favor.Abraçospublic function montaEmailAnexo( $sPasta ) { $boundary = "XYZ-" . date ( "dmYis" ) . "-ZYX"; $this->headers = "From: {$this->de};" . "\n"; $this->headers .= "MIME-Version: 1.0" . "\n"; $this->headers .= "Content-Type: multipart/mixed;"; $this->headers .= "boundary={$boundary}" . "\n"; $this->headers .= "{$boundary}" . "\r\n"; $this->corpoMSG = "--$boundary" . "\r\n"; $this->corpoMSG .= "{$this->mensagem}" . "\r\n\r\n"; $this->corpoMSG .= "$boundary" . "\r\n"; $this->corpoMSG .= "Content-Type: text/html; charset='iso-8859-1'" . "\r\n"; $this->corpoMSG .= "Content-Transfer-Encoding: quoted-printable" . "\r\n"; $this->corpoMSG .= "Content-description:Mail message body" . "\r\n"; $this->corpoMSG .= "Content-Transfer-Encoding: 8bits" . "\r\n"; $this->corpoMSG .= "--$boundary" . "\r\n"; $sType = ( in_array( $sPasta, array( '../Arquivos/Pedidos/', '../Arquivos/Trocas/' ) ) ) ? 'Application/pdf' : ''; for($i = 0; $i < count ( $this->arquivos ); $i ++) { // [ 06/10/2011 13:44:47 ] Comentário : Abrindo a pasta onde os arquivos estão para gerar os anexos $oFp = fopen ( "{$sPasta}{$this->arquivos [$i]}", 'rb' ); if( $oFp ) { $fread = fread ( $oFp, filesize ( "{$sPasta}{$this->arquivos [$i]}" ) ); // [ 06/10/2011 13:45:09 ] Comentário : Criptografando os anexos para não serem lidos por outra pessoa durante o processo de entrega $this->anexos = base64_encode ( $fread ); $this->anexos = chunk_split( $this->anexos ); $this->corpoMSG .= "Content-Type:{$sType}; name={$this->arquivos [$i]}" . "\r\n"; $this->corpoMSG .= "Content-Transfer-Encoding: base64" . "\r\n"; $this->corpoMSG .= "Content-Disposition: attachment; filename={$this->arquivos [$i]}" . "\r\n"; $this->corpoMSG .= "{$this->anexos}" . "\n"; $this->corpoMSG .= "--{$boundary}--" . "\r\n"; } else { echo 'Erro ao abrir o arquivo...'; return false; } fclose ( $oFp ); } if (! @mail ( $this->para, $this->assunto, $this->corpoMSG, $this->headers )) { return false; } else { return true; } }Antes que eu esqueça...O erro que aparece é: Arquivo não pode ser aberto por estar danificado ou não foi decodificado corretamente Editado Janeiro 23, 2012 por Tenko Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Roger Mauricio Takemiya Postado Janeiro 23, 2012 Denunciar Share Postado Janeiro 23, 2012 Opa, boa tardeEle chega a gerar um erro? o simplesmente envia o email sem o anexo?Dá uma olhada nesse exemplo.http://www.daniweb.com/web-development/php/code/217105 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Tenko Postado Janeiro 23, 2012 Autor Denunciar Share Postado Janeiro 23, 2012 E ai, beleza?Então, o email chega, chega o anexo, mas quando tento abrir, olha ai:O Adobe Reader não pode abrir 'nome_arq.pdf' porque não há suporte a esse tipo de arquivo ou ele foi danificado(por exemplo, foi enviado como anexo de e-mail e não foi decodificado corretamente)..Palavra por palavra Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Tenko Postado Janeiro 23, 2012 Autor Denunciar Share Postado Janeiro 23, 2012 É... ainda mesmo vendo o link que você passou não esta abrindo..Mesmo assim obrigado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Roger Mauricio Takemiya Postado Janeiro 23, 2012 Denunciar Share Postado Janeiro 23, 2012 Blzera Estranho Tenko, mais o tamanho do arquivo está igual?Outra coisa, não consigo copilar o seu código aqui n otrabalho, porém no exemplo que te passei, já obtive sucesso utilizando ele, enviando pdfs, reparei algumas diferenças entre o seu código, só que eu não sei se pode ter influencia na codificação do email. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Tenko
Boa tarde pessoal, beleza?
Preciso de ajuda, fiz este script, funciona para enviar qualquer arquivo, menos PDF, podem me ajudar a saber onde esta errado por favor.
Abraços
Antes que eu esqueça...
O erro que aparece é: Arquivo não pode ser aberto por estar danificado ou não foi decodificado corretamente
Editado por TenkoLink para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.