我正在使用phpmailer发送电子邮件。电子邮件是一个包含大量图像的模板。所以我使用AddEmbeddedImage()方法添加图像。问题是我想添加大量图像,如何指定路径参数以便一次加载所有图像? AddEmbeddedImage('images / * .jpg',...)是否有意义?
有关信息,我实例化了$mailer = new PHPMailer();
然后我使用了$mail->AddEmbeddedImage('img/some_image.jpg', 'image');
但是对于二十张图片我不能这样做二十次
答案 0 :(得分:1)
您可以迭代文件夹中的所有图像,并使用foreach循环添加该图像。例如:
<?php
function get_files ($dir, $_ext = 'jpg') {
$files = array();
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if ($file == '.' || $file == '..') continue;
$ext = pathinfo($file, PATHINFO_EXTENSION);
if ($ext == $_ext) {
$files[] = $file;
}
}
closedir($dh);
}
}
return $files;
}
/**
* You can change the second parameter so you can get other image types
* (png, gif, etc.)
*/
$images = get_files ("/path/to/folder/of/images/");
foreach ($images as $image) {
$mail->AddEmbeddedImage ($image, 'image');
}
?>
目录代码取自PHP.net。