php - 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文件
请帮忙
解决方案
您提到 PHP 返回 1 并且两次调用addAttachment
. 这就是 PHP 用作true
and的文本表示形式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
生成的路径,并比较它们 - 包括长度,以防您不小心包含了一些非打印或零宽度字符。