php – Swiftmailer发送后删除附件
发布时间:2020-12-13 22:05:18 所属栏目:PHP教程 来源:网络整理
导读:我发送电子邮件与Symfony 2.1和 Swiftmailer后,我试图删除附件文件,但如果我在返回响应对象(重定向)之前删除该文件,电子邮件不会发送. 我想这是因为symfony在回复中发送电子邮件,因此当电子邮件发送时,附件已经被删除. 例如: ?php// DefaultCotroller.php$m
我发送电子邮件与Symfony 2.1和
Swiftmailer后,我试图删除附件文件,但如果我在返回响应对象(重定向)之前删除该文件,电子邮件不会发送.
我想这是因为symfony在回复中发送电子邮件,因此当电子邮件发送时,附件已经被删除. 例如: <?php // DefaultCotroller.php $message = Swift_Message::newInstance($subject) ->setFrom('no-reply@dasi.es') ->setTo($emails_to) ->setBody($body,'text/html') ->attach(Swift_Attachment::fromPath('backup.rar')); $this->get('mailer')->send(); unlink('backup.rar'); // This remove the file but doesn't send the email! return $this->redirect($this->generateUrl('homepage')); 一个选项是创建一个crontab来清理文件,但我不想使用它. 谢谢! 解决方法
您可以在此处查看处理内存线轴的代码:
https://github.com/symfony/SwiftmailerBundle/blob/master/EventListener/EmailSenderListener.php 这用于批量发送电子邮件. 你可以在send()调用之后和unlink()调用之前添加它,以模仿发送电子邮件的行为 $transport = $this->container->get('mailer')->getTransport(); $spool = $transport->getSpool(); $spool->flushQueue($this->container->get('swiftmailer.transport.real')); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |