0

phpmailer を使用してメールを送信しています。電子メールは、多数の画像を含むテンプレートです。そこで、AddEmbeddedImage() メソッドを使用して画像を追加します。問題は、たくさんの画像を追加したいということです。一度にすべての画像をロードするためにパスパラメータを指定するにはどうすればよいですか? AddEmbeddedImage('images/*.jpg',...) は意味がありますか?

参考までに、インスタンス化$mailer = new PHPMailer();してから使用します$mail->AddEmbeddedImage('img/some_image.jpg', 'image');が、20回の画像に対して20回実行することはできません

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 に答える