PHPMailer 使用 FOR 循环添加图像
PHPMailer adding images using the FOR loop
我有这个 PHP 代码:
for($x = 0; $x < count($obrazy); $x++)
{
$mail->AddEmbeddedImage($obrazy[$x], 'tel'.$x);
}
变量"obrazy"是一个table存储路径(link到图像)例如"obraz/zdjecie.png"。我需要用一个循环来做到这一点,因为 obrazy 数组每次都可以有不同的大小。上面的循环对我不起作用,因为当我想在邮件中显示这个图像时,什么也没有显示。
$iterator = 0;
while ($row = mysqli_fetch_array($rezultat))
{
$mail->Body = $mail->Body.'//..........
<img src="cid:tel'.$iterator.'" style="
width: 160px;
display: block;
float: left;
"/> //..........
';
$iterator++;
}
"// ......" 表示与所问问题无关的另一部分代码。 while循环肯定是因为我从数据库中提取了不同的数据。一切正常,只有图像不想显示在电子邮件中,即使我输入数字而不是“$iterator”。 table 中包含的图像链接对于 PHP 文件是可靠的。
很可能是你的路径或权限有误;检查来自 addEmbeddedImage
的 return 值:
if (!$mail->AddEmbeddedImage($obrazy[$x], 'tel'.$x)) {
echo 'Failed to attach '. $obrazy[$x];
}
将路径变成绝对路径可能是个好主意,例如说 __DIR__ . '/' . $obrazy[$x]
而不仅仅是相对路径。
可能是您当前的工作目录不在您认为的位置。尝试这样做:
if (!$mail->AddEmbeddedImage(getcwd() . '/' . $obrazy[$x], 'tel'.$x)) {
echo 'Failed to attach '. getcwd() . '/' . $obrazy[$x];
}
然后它会显示找不到文件的完整路径,您可以检查它们是否正确。
我有这个 PHP 代码:
for($x = 0; $x < count($obrazy); $x++)
{
$mail->AddEmbeddedImage($obrazy[$x], 'tel'.$x);
}
变量"obrazy"是一个table存储路径(link到图像)例如"obraz/zdjecie.png"。我需要用一个循环来做到这一点,因为 obrazy 数组每次都可以有不同的大小。上面的循环对我不起作用,因为当我想在邮件中显示这个图像时,什么也没有显示。
$iterator = 0;
while ($row = mysqli_fetch_array($rezultat))
{
$mail->Body = $mail->Body.'//..........
<img src="cid:tel'.$iterator.'" style="
width: 160px;
display: block;
float: left;
"/> //..........
';
$iterator++;
}
"// ......" 表示与所问问题无关的另一部分代码。 while循环肯定是因为我从数据库中提取了不同的数据。一切正常,只有图像不想显示在电子邮件中,即使我输入数字而不是“$iterator”。 table 中包含的图像链接对于 PHP 文件是可靠的。
很可能是你的路径或权限有误;检查来自 addEmbeddedImage
的 return 值:
if (!$mail->AddEmbeddedImage($obrazy[$x], 'tel'.$x)) {
echo 'Failed to attach '. $obrazy[$x];
}
将路径变成绝对路径可能是个好主意,例如说 __DIR__ . '/' . $obrazy[$x]
而不仅仅是相对路径。
可能是您当前的工作目录不在您认为的位置。尝试这样做:
if (!$mail->AddEmbeddedImage(getcwd() . '/' . $obrazy[$x], 'tel'.$x)) {
echo 'Failed to attach '. getcwd() . '/' . $obrazy[$x];
}
然后它会显示找不到文件的完整路径,您可以检查它们是否正确。