2013-09-28 59 views
5

我試圖用phpmailer類發送PDF附件的電子郵件。PHPmailer和pdf附件

我用這個代碼:

mailTo功能:

$mail->AddAttachment($pdffile); 

其中$pdffile = $_SERVER['DOCUMENT_ROOT'] . "/facturen/test.pdf"

發送的電子郵件郵件的結果,而附件但:

--b1_3768f40f33d9a5dec555d03a15af14f9 
Content-Type: text/html; charset = "iso-8859-1" 
Content-Transfer-Encoding: 8bit 

在我的電子郵件的頂部和th我的電子郵件電子底:

--b1_3768f40f33d9a5dec555d03a15af14f9 
Content-Type: application/octet-stream; name="test.pdf" 
Content-Transfer-Encoding: base64 
Content-Disposition: attachment; filename="test.pdf" 

JVBERi0xLjQKJcfsj6IKMTEgMCBvYmoKPDwvTGVuZ3RoIDEyIDAgUi9GaWx0ZXIgL0ZsYXRlRGVj 
b2RlPj4Kc3RyZWFtCnic7VtZs9zEFa5A2CYpQyALSUiiNyQqI3pfeGOrOECgMJc8BPJg38Xbta8x 
NqbyL/Jn85yvF6mPpNbMXMoPVCrlskvT6j59+izfWdT+pmG9UA0Lf4aH43ubt69x2dz8dsOb8Ofh 
zY2zrGfeNU7yXmvf3Ns4wXrDxDhiHes50431vGdGlt8K741pjjfDiMEMbZuBgNHhp2qGLYbfxxvP 
fa+9Gke8CTOG9flXoT8MZAaG1QOD8yMcb87e2sieCwXST3DUj/D3Tj7ytb/8bx751uaLzTcNV1r3 
0kVtcy5Vr3ijmeqNwFzfc+51tgLVfHCx+XwT7SMIRbMgsUAZkzkPlFygBCq2V83D00jfOZAUJtE3 
eHamwSoBJhvJlOidzfR1or97iXAWm/i8xBy0xHLZDytsfYXoPV2hNes9z0tcWgKxKq5NMA8RVJCn 
QVzO6UjKaJxb6XTyJCa4yzcb1XNjjI 

等等...

如何解決這個問題?

回答

1

您可以使用另外三個參數,所有這些參數都是可選的: AddAttachment($ path,$ name,$ encoding,$ type);

也遵循這樣的回答:Send File Attachment from Form Using phpMailer and PHP

有添加附件的另一種方式。如果你想製作一張帶有圖像的HTML電子郵件,必須附上圖像,然後將標籤鏈接到它。例如,如果您將圖像添加爲CID my-photo的內聯附件,您可以在HTML電子郵件中使用& ltimg src =「cid:my-photo」alt =「my-photo」/>來訪問它。

詳細地說,這裏是增加一個內嵌附件的功能:

$ MAIL-> AddEmbeddedImage(文件名,CID,名稱); 通過使用此功能以上面的示例值,結果在此代碼中: $ mail-> AddEmbeddedImage('my-photo.jpg','my-photo','my-photo.jpg');

+1

謝謝你,但我試圖附加PDF。我知道$ name,$ encoding,$ type參數,但他們在這種情況下如何幫助我? – FredV

9

試試這個問題,它爲我工作...

$mail->AddAttachment('path_to_pdf', $name = 'Name_for_pdf', $encoding = 'base64', $type = 'application/pdf'); 

在你的情況

$mail->AddAttachment($_SERVER['DOCUMENT_ROOT'].'/facturen/test.pdf', $name = 'test', $encoding = 'base64', $type = 'application/pdf');