I've built my own custom mail queue, which allows email to be sent to be stored in the database. Cron sends out unsent email once each minute. This allowed me to built a custom interface to view the contents of each email, even after it has been sent. Email attachments are also stored in the database record for each email, in case you wanted to know. I also made all of this a driver so I can switch between swiftmailer and CI's email class. I can't share this code with you, due to a licensing agreement, or I would. It's not that hard to do.