I implemented the trunk version of SwiftMailer (the one used in Symfony) as a mailer for SilverStripe. It contains the spools so you can easily spool messages and send them out later if you want. The way I've made it work is that when spooling is on then Email->send() will just spool the message.
Then you can setup a cron job or whatever to just work its way through the queue. I've attached the code for it so you can try it out if you like. It's still pretty early code so it's mostly with my needs in mind. Let me know if it gives you any trouble or if you have any good ideas about how to develop it further.
I've made it as a module so just place the swiftmailer folder in the root of your project.