首页 > 解决方案 > phpmailer附加两个pdf文件

问题描述

我正在使用 phpmailer 附加 pdf 文件并发送带有 pdf 附件的电子邮件。正在附加一个 pdf 文件,而另一个没有附加。我正在使用代码作为

$attachedfile = $_SERVER["DOCUMENT_ROOT"] . '/wp-content/plugins/xyz-user-registration/images/iraq_visa_form_test.pdf';
$mail->addAttachment($attachedfile, 'Visa Application'); 
$attachedfile2 = $_SERVER["DOCUMENT_ROOT"] . '/wp-content/plugins/xyz-user-registration/images/iraq_visa_form.pdf';
$mail->addAttachment($attachedfile2, 'Visa Application 2'); 

只附加了一个 pdf 文件,另外一个正在附加。它也适用于单个 pdf 文件附件。我也使用了以下代码

$attachedfile = array($_SERVER["DOCUMENT_ROOT"] . '/wp-content/plugins/xyz-user-registration/images/iraq_visa_form.pdf',$_SERVER["DOCUMENT_ROOT"] . '/wp-content/plugins/xyz-user-registration/images/iraq_visa_test.pdf'); foreach($attachedfile as $attachment){ $mail->AddAttachment($attachment); }

但它又附加了一个pdf文件

请帮忙

标签: phppdfphpmailer

解决方案


您提到 PHP 返回 1 并且两次调用addAttachment. 这就是 PHP 用作trueand的文本表示形式false: PHP 无法读取您的文件之一,因为该文件丢失、路径错误或缺少足够的所有权或权限。仔细检查您的路径和权限。

当我说不要建立你的路径时,我的意思是对路径使用文字字符串。您可以编写一个独立的 PHP 脚本来检查它们:

<?php
$path1 = '/var/www/mysite/wp-content/plugins/xyz-user-registration/images/iraq_visa_form_test.pdf';
$path2 = '/var/www/mysite/wp-content/plugins/xyz-user-registration/images/iraq_visa_form.pdf';
var_dump($path1, is_file($path1), $path2, is_file($path2));

也在你的 shell 中检查它们:

ls -al /var/www/mysite/wp-content/plugins/xyz-user-registration/images/iraq_visa_form_test.pdf /var/www/mysite/wp-content/plugins/xyz-user-registration/images/iraq_visa_form.pdf

如果这些都可以,请返回到您的原始脚本和var_dump生成的路径,并比较它们 - 包括长度,以防您不小心包含了一些非打印或零宽度字符。


推荐阅读