我使用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文件
请帮助
答案 0 :(得分:1)
您提到PHP返回1,而对addAttachment
的两次调用没有任何内容。这就是PHP用作true
和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
生成的路径,并比较它们 - 包括长度,以防您意外包含一些非打印或零宽度字符