Это старый вопрос, но так как он появился в моем поиске в Google, я отвечу на него тем, что выяснил.
ДА!Swiftmailer имеет возможность писать в спул вместо отправки сразу.Реализация довольно проста:
$spool = new Swift_FileSpool('/where/you/want/your/spool');
$transport = Swift_SpoolTransport::newInstance($spool);
$mailer = Swift_Mailer::newInstance($transport);
Это говорит swiftmailer записывать сообщения на диск, а не отправлять их.Затем с помощью задания cron или другого триггера отправьте сообщения, используя что-то вроде:
$spool = new Swift_FileSpool('/where/you/put/your/spool');
$spool_transport = Swift_SpoolTransport::newInstance($spool);
// Create the smtp transport.
$smtp_transport = Swift_SmtpTransport::newInstance('your.smtp.host', 25);
// Get the messages from the spool
$spool = $spool_transport->getSpool();
// Send the messages via the real transport.
$sent = $spool->flushQueue($smtp_transport);