0
我如何知道消息具有多少个附件?Zend_Mail_Part:获取附件数
该方法可靠吗?
$attachments = 0;
$msg = $mail->getMessage($msgno);
if($msg->isMultipart()){
$parts = $msg->countParts();
for($i=1; $i<=$parts; $i++){
$part = $msg->getPart($i);
try {
if(strpos($part->contentType,'text/html')===false && strpos($part->contentType,'text/plain')===false)
$attachments++;
} catch (Zend_Mail_Exception $e) {}
}
}
or this?
$matches = array();
$pattern = '`Content-Disposition: (?!inline)(.*)[\s]*filename=`';
$attachments = (string) preg_match_all($pattern, $storage->getRawContent($msgno), $matches);
Zend_Mail_Message ::的getParts不存在。我的答案中的第二种方法呢? – AHHP 2012-03-05 13:12:03
'Zend_Mail'直接从具有'getParts()'的Zend_Mime_Message'继承,所以'Zend_Mail'继承它。我只是测试了这个方法,它工作。在上面的例子中,'$ msg'必须是'Zend_Mail'对象。我不确定'$ mail-> getMessage'在做什么,但是如果'$ mail'是你的'Zend_Mail'对象,也许可以跳过。如果邮件很大或有很大的附件,获取邮件的原始内容可能不是最好的想法。看看你是否可以得到上述方法的工作。如果没有给我更多关于变量的信息,或者我可以在不同的上下文中发布一个例子。 – drew010 2012-03-05 16:41:29
我用它和一个异常就像'异常'Zend_Mail_Exception'消息'没有名称处置或处置发现头''我的'$ msg'对象是'Zend_Mail_Storage_Imap'我应该这样做吗? – 2012-07-23 09:53:52