0

我对 PHP 邮件程序有疑问。

我尝试使用嵌入式图像发送电子邮件。

php 邮件程序只发送附件中的第一张图片。

我的代码:

使用 simple_html_dom.php 获取 html 中所有图像的路径

foreach($ht->find('img') as $img)
        {
            $val=$img->src;

                $val=explode('/',$val);//
                $count=count($val);//

            $img->src='cid:attach_'.$i;//
            $img->alt=$val[$count-1];//
            $img->width=null;
            $img->height=null;
        //  var_dump($val[$count-1]);
            $attach[$i]['src']='../useruploads/'.$temple->id_user.'/images/'.$val[$count-1];
            $attach[$i]['cid']='attach_'.$i;
            $attach[$i]['alt']=$val[$count-1];

        $i++;
        }

在发送电子邮件的功能中,我有循环:

while($attach[$i]['src'])
            {
            $mail->AddEmbeddedImage($attach[$i]['src'], $attach[$i]['cid'], $attach[$i]['alt']);
            $i++;

            }

我找不到错误。

4

1 回答 1

0

您可以直接在循环内调用:

$mail->AddEmbeddedImage($path, $cid, $name, $encoding,$type);

将变量 $path、$cid、$name、$encoding、$type 更改为其对应的值。

但请注意 PHPMailer 的版本。在http://phpmailer.worxware.com/?pg=methods我们有一个关于 v5.0.0 的观察:添加一个嵌入式附件。这可以包括图像、声音和几乎任何其他文档。确保将 $type 设置为图像类型。JPEG 图像使用“image/jpeg”,GIF 图像使用“image/gif”。如果使用 MsgHTML() 方法,则无需使用 AddEmbeddedImage() 方法。我不知道你的版本(实际上没有足够的声誉来评论......)。

希望能帮助到你。

于 2014-09-24T23:36:07.713 回答