0

我正在使用 phpmailer 发送电子邮件。电子邮件是带有一堆图像的模板。所以我使用 AddEmbeddedImage() 方法来添加图像。问题是我想添加很多图像,如何指定路径参数以便一次加载所有图像?AddEmbeddedImage('images/*.jpg',...) 有意义吗?

对于信息,我实例化$mailer = new PHPMailer();然后我使用$mail->AddEmbeddedImage('img/some_image.jpg', 'image');但我不能为二十张图像做二十次

4

1 回答 1

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的目录代码。

于 2012-12-30T00:25:36.463 回答