Enhance events

Hi,

here is a PR to enhance the events. I wanted a new event when the message was sent since I cannot access the callback of sendMail() from my tests. I also separated the events and simplified the parameters. 

The changes are not backwards compatible.

Ben