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) {}
}
}
またはこれですか?
$matches = array();
$pattern = '`Content-Disposition: (?!inline)(.*)[\s]*filename=`';
$attachments = (string) preg_match_all($pattern, $storage->getRawContent($msgno), $matches);
は、Zend_Mail_Message :: getParts存在しません。私の答えの2番目の方法はどうですか? – AHHP
'Zend_Mail'は' getParts() 'を持つ' Zend_Mime_Message'から直接継承していますので、 'Zend_Mail'はそれを継承します。私はちょうどその方法をテストし、それは働いた。上記の例では、 '$ msg'は' Zend_Mail'オブジェクトでなければなりません。 '$ mail-> getMessage'が何をしているのか分かりませんが、' $ mail'があなたの 'Zend_Mail'オブジェクトであればそれをスキップすることができます。メッセージの元の本体を取得することは、メッセージが大きかったり添付ファイルが大きい場合には最適ではないかもしれません。あなたが上記の方法を働かせるかどうかを見てください。変数に関する情報を私に与えないと、別の文脈で例を投稿できます。 – drew010
私はそれを使用しましたが、例外は '例外 'Zend_Mail_Exception'のようなメッセージで、 '名前の処理や処理が見つかりませんでした'というメッセージです。' $ msg'オブジェクトは 'Zend_Mail_Storage_Imap'のものです。 –