저는 TCPDF 라이브러리를 사용하여 즉석에서 PDF (bill)를 생성하고 이메일을 통해 보내고 있습니다. 그것은 모두 작동하지만 이상한 문제가 있습니다. 내가 Gmail 계정에 전자 메일을 보내면 모든 것이 잘되지만, 내 메일 서버로 보낼 때 나는 pdf로 이메일을 받지만 열 때 메시지가 나타나지 않는다. "Adobe Reader가 열리지 않았다. file.pdf는 지원되는 형식이 아니거나 파일이 손상 되었기 때문에 발생합니다. " (이메일의 pdf는 비어 있습니다).TCPDF를 사용하여 즉석에서 PDF를 생성합니다.
$attachment = $pdf->Output("mypdf.pdf","E");
$attachment = chunk_split($attachment);
및과 같이 이메일을 통해 보내 :
나는과 같이 문자열로 PDF를 저장할 내가 PHP 메일 기능을 가진 전자 우편을 보내고있다
$header .= "--".$separator.$eol;
$header .= "Content-Type: application/pdf; name='mypdf.pdf'".$eol;
$header .= "Content-Transfer-Encoding: base64".$eol;
$header .= "Content-Disposition= attachment".$eol.$eol;
$header .= $attachment;
합니다.
$ 첨부 = $ PDF-> 출력 ("mypdf.pdf" "D"); 난과 같이, PDF 파일의 다운로드를 강제하는 경우
재미있는 것은입니다
파일이 정상적으로 작동하며 아무 문제없이 열립니다! 하지만 "E"로 다시 변경하면 작동하지 않습니다.
다른 이상한 일은 문제없이 pdf 파일을 열 수 있지만 다음 번에는 작동하지 않을 수도 있습니다 (정확한 이메일을 보내더라도).
어떤 일이 벌어지고 있는지 알 수 있습니까? pdf를 로컬 서버에 저장하지 않으려합니다.
'$ attachement'를 인코딩 했습니까? – DerVO
$ pdf-> 출력 ("mypdf.pdf", "E"); base64 인코딩 된 문자열을 반환합니다. 나도 나 자신을 인코딩하려고했지만 작동하지 않았다. – blejzz