Php 从Zend_邮件对象中删除附件
有没有办法从Zend_邮件对象中删除附件?易于理解的 例如: 现在,我想修改对象并再次发送它Php 从Zend_邮件对象中删除附件,php,zend-framework,Php,Zend Framework,有没有办法从Zend_邮件对象中删除附件?易于理解的 例如: 现在,我想修改对象并再次发送它 $mail->clearSubject() ->setSubject('new subject'); 是否有可能从该对象中删除该附件 以前设置过吗?我能想到的唯一方法是 $mail->setParts(array()); 但这将删除所有部件,不管它们是什么。我能想到的唯一方法是 $mail->setParts(array()); 但这将删除所有零件,不管它们是什么
$mail->clearSubject()
->setSubject('new subject');
是否有可能从该对象中删除该附件
以前设置过吗?我能想到的唯一方法是
$mail->setParts(array());
但这将删除所有部件,不管它们是什么。我能想到的唯一方法是
$mail->setParts(array());
但这将删除所有零件,不管它们是什么。您可以这样做:
$mail = new Zend_Mail();
$mail->createAttachment("...");
$parts = $mail->getParts();
foreach ($parts as $k => $v) {
if ($v->disposition == "attachment") {
unset($parts[$k]);
}
}
$mail->setParts($parts);
$mail->hasAttachments = false;
这将仅删除其MIME配置设置为附件的部分。您可以通过以下方式执行此操作:
$mail = new Zend_Mail();
$mail->createAttachment("...");
$parts = $mail->getParts();
foreach ($parts as $k => $v) {
if ($v->disposition == "attachment") {
unset($parts[$k]);
}
}
$mail->setParts($parts);
$mail->hasAttachments = false;
这将只删除MIME配置设置为附件的部件。因此,如果$parts=array,$mail->\u parts将设置为NULL。但它在ZF源代码中初始化为array,并且addPart设置$This->\u parts[]=$part;没有检查null conditionTrue,我以为它被设置为null,只是编辑了我的答案,谢谢;因此,如果$parts=array,$mail->\u parts将被设置为NULL。但它在ZF源代码中被初始化为array,并且addPart设置$this->\u parts[]=$part;没有检查null conditionTrue,我以为它被设置为null,只是编辑了我的答案,谢谢;