gpt4 book ai didi

php - Swiftmailer 发送后删除附件

转载 作者:可可西里 更新时间:2023-11-01 00:00:33 25 4
gpt4 key购买 nike

我试图在使用 Symfony 2.1Swiftmailer 发送电子邮件后删除附件,但是如果我在返回响应对象(重定向)之前删除文件,电子邮件未发送。

我想这是因为 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'));

关于php - Swiftmailer 发送后删除附件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15643027/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com