Tenko Posted January 23, 2012 Report Share Posted January 23, 2012 (edited) 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 Edited January 23, 2012 by Tenko Quote Link to comment Share on other sites More sharing options...
0 Roger Mauricio Takemiya Posted January 23, 2012 Report Share Posted January 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 Quote Link to comment Share on other sites More sharing options...
0 Tenko Posted January 23, 2012 Author Report Share Posted January 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 Quote Link to comment Share on other sites More sharing options...
0 Tenko Posted January 23, 2012 Author Report Share Posted January 23, 2012 É... ainda mesmo vendo o link que você passou não esta abrindo..Mesmo assim obrigado Quote Link to comment Share on other sites More sharing options...
0 Roger Mauricio Takemiya Posted January 23, 2012 Report Share Posted January 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. Quote Link to comment Share on other sites More sharing options...
Question
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
Edited by TenkoLink to comment
Share on other sites
4 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.