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を作成することですが、私はそれを使用したくないです。
ありがとう!