Setting swiftmailer up with the memory spooling does not work as the kernel seems to never terminate so the onKernelTerminate is never triggered.
I experienced this with the standard setup of symfony 2.1 (the configuration files are from RC1) where none of my emails sent through a command got sent. Removing the spooling options from my configuration, emailing went fine.
I don't know if it's possible to change the console to terminate the kernel so the emails get sent. This would of course be best.
If this is not possible, maybe the documentation should state this and offer ways to work around this.
It cannot terminate the kernel as this requrie a Request and a Response.
The way to send emails from a command is to either flush the memory spool by hand or to create a separate environment where the spool is disabled and use it to run the command.
Once symfony/symfony#3889 is merged, it should become possible to flush the memory spool automatically in the console too, but this will be for 2.2, not for 2.1.x
Ok, so would it be good to add this to the documentation, especially since symfony 2.1 ships with the memory spooling as a default? If so I would see if I can find some time to add a description of the problem and a code example of how to sent spooled messages.
Took me about an hour to figure out this problem. Would be really good if it was documented somewhere, e.g. in the symfony console documentation.
Here's an example how to force a flush of the spool memory: http://sgoettschkes.blogspot.de/2012/09/symfony-21-commands-and-swiftmailer.html
Please update the doc. I also spend more then one hour on it.
@Sheb that's actually my blog post
@istaveren I'll add that to my todo. But it will take me some time, so if anybody else want to add it to the docs, please go ahead.
@Scheb Great that save my day 👍
memory spooling is also not working with monolog
I don't think this is related to this issue, is it? Depending on what you think is the source of this bug, could you please report it to either monolog or the monolog bundle.
I believe it is related to #6 - when spooling is active, emails are not sent by monolog. There needs to be an ability to have "high priority" emails that bypass the spool.
So events added to console commands. How about implement flushing?
With this in mind, it would also be great to have an option to disable spooling, with long running commands its not desirable to waiting until the command is about to exit before sending mails
@mcfedr remove the spool configuration from your config, and it will disable the spooling
@stof thanks! that is not at all obvious from the docs btw :)
Looks like #64 fixed this issue, isn't it?