从电子邮件中提取图像

时间:2015-11-27 16:29:23

标签: php imap

我需要使用电子邮件中的其他图片生成HTML文件

使用php_imap

获取所有数据

电子邮件中的img标记

<img alt="" src="cid:part3.08050603.09060803@example.com">

我有多个img代码,但是如何从电子邮件中提取实际图像部分cid:part3.08050603.09060803@example.com并将其另存为文件?

2 个答案:

答案 0 :(得分:1)

抓取图像源

您可以使用DomDocumentDOMXpath来查询图片src

$doc = new DOMDocument();
$doc->loadHTML($email); //load the string into DOMDocument   
$selector = new DOMXPath($doc); //create a new domxpath instance
$images = $selector->query('//img/@src'); //Query the image tag and get the src
foreach ($images as $item) {
   echo $item->value; //grab the value (output: cid:part3.08050603.09060803@example.com)
}

https://eval.in/477064

另存为文件

现在您已经抓住了图像源,您可以将内容写入文件。这确实意味着您需要allow_url_fopen

foreach ($images as $item) {
   $content = file_get_contents($item->value);
   file_put_contents('./'.str_replace("/", "-", ltrim(parse_url($item->value)['path'],'/')), $content );
}

拥有foreach supports multiple images within the e-mail body

答案 1 :(得分:0)