使用PHPMailer添加一些图像

时间:2012-12-30 00:05:35

标签: php image phpmailer

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

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

1 个答案:

答案 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