PHPMailer使用FOR循环添加图像

时间:2019-03-23 16:19:00

标签: php image email phpmailer

我有以下PHP代码:

for($x = 0; $x < count($obrazy); $x++) 
{ 
   $mail->AddEmbeddedImage($obrazy[$x], 'tel'.$x); 
}

变量“ obrazy”是一个存储路径(链接到图像)的表,例如“ obraz / zdjecie.png”。我需要循环执行此操作,因为遍历数组每次都可以具有不同的大小。上面的循环对我不起作用,因为当我想在邮件中显示此图像时,什么也没有显示。

$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”也是如此。对于PHP文件,指向表中包含的图像的链接是可靠的。

1 个答案:

答案 0 :(得分:0)

机会是您的路径,或者权限是错误的;检查 from selenium import webdriver browser = webdriver.Chrome(executable_path="chromedriver.exe") browser.get("https://edition.cnn.com") print(browser.page_source) 的返回值:

addEmbeddedImage

将路径变成绝对路径可能是个好主意,例如通过说诸如if (!$mail->AddEmbeddedImage($obrazy[$x], 'tel'.$x)) { echo 'Failed to attach '. $obrazy[$x]; } 之类的东西而不是相对路径。

可能是您当前的工作目录不在您认为的位置。尝试这样做:

__DIR__ . '/' . $obrazy[$x]

然后它将显示您找不到的文件的完整路径,您可以检查它们是否正确。