当我在 php 中使用 imap 获取电子邮件时,我得到了电子邮件正文内容,但我无法提取粘贴且未附加在电子邮件正文中的内联图像。
问问题
6909 次
2 回答
2
在电子邮件内容的正文中搜索图像。
假设您的电子邮件正文是,$body
那么您可以使用 preg_match 获取图像 url。使用此 preg_match 表达式来获取图像源。
preg_match('/< *img[^>]*src *= *["\']?([^"\']*)/i', $body, $matches);
于 2013-02-22T12:40:29.647 回答
1
嘿,我想我有一个解决方案
<?php
$hostname = '{myserver/pop3/novalidate-cert}INBOX';
$username = 'username';
$password = 'password';
/* try to connect */
$inbox = imap_open($hostname,$username,$password) or die('Cannot connect to Tiriyo: ' . imap_last_error());
$msgno = 0; //message id
$no_of_occurences = 0;
$intStatic = 2;//to initialize the mail body section
$decode = imap_fetchbody($mbox, $msgno , "");
$no_of_occurences = substr_count($decode,"Content-Transfer-Encoding: base64");//to get the no of images
if($no_of_occurences > 0){
for($i = 0; $i < $no_of_occurences; $i++){
$strChange = strval($intStatic+$i);
$decode = imap_fetchbody($mbox, $msgno , $strChange);//to get the base64 encoded string for the image
$data = base64_decode($decode);
$fName = time()."_".$strChange . '.gif';
$file = $fName;
$success = file_put_contents($file, $data); //creates the physical image
}
}
imap_close($inbox);
?>
于 2013-02-25T08:53:50.657 回答