PHPmailer和pdf附件

时间:2013-09-28 21:51:07

标签: php email pdf attachment phpmailer

我正在尝试使用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

位于我的电子邮箱顶部和电子邮件底部:

--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 

依旧......

如何解决这个问题?

3 个答案:

答案 0 :(得分:10)

试试这个,它对我有用......

   $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');

答案 1 :(得分:1)

您可以使用另外三个参数,所有这些参数都是可选的:

AddAttachment($path,$name,$encoding,$type);

也请遵循以下答案:Send File Attachment from Form Using phpMailer and PHP

还有另一种方法可以添加附件。如果要制作带有图像并入桌面的HTML电子邮件,则需要附加图像,然后将<img src="cid:CID" />标记链接到该电子邮件。例如,如果您使用CID my-photo将图像添加为内嵌附件,则可以使用<img src="cid:my-photo" alt="my-photo" />在HTML电子邮件中访问该图像。

详细地说,这是添加内联附件的功能:

$mail->AddEmbeddedImage(filename, cid, name);

通过将此函数与上面的示例值一起使用,得到此代码:

$mail->AddEmbeddedImage('my-photo.jpg', 'my-photo', 'my-photo.jpg ');

答案 2 :(得分:0)

试试这个解决方案: Add attachment through PHPMailer 它似乎完全没有关系,但也帮助了我。设置电子邮件正文

一定有问题