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