If KMail does not send mail without saying anything, the “agent” responsible for dispatching the messages can be stuck. Of course, you need to ensure you have proper network connectivity for mail to be sent!
To remedy this, it might help to abort the current action and restart it. First, quit KMail by using KRunner (Alt+F2) or Konsole and typing:
kquitapp kmail. Note that a normal Alt+F4 or → does not do the trick! Wait a minute, then start KMail again. Now start akonadiconsole using KRunner (Alt+F2) or Konsole. Go to the Mail Dispatcher Agent, do a right-click and abort the current action. You will most likely get some error messages popping up.
Go back to KMail and choose → . Now it might work. If not, instead of aborting the current action, try toggling the offline/online status of the Mail Dispatcher Agent or restarting things as mentioned in workaround 2 of the problem above this one.
akonadiconsole can be quite helpful for a number of situations as it shows all the “agents”, the separate components of the KMail backend. You can stop and start them, put them in offline mode, abort ongoing actions etc. It can be very helpful when things get stuck.