FOUND A FIX!!!!
(I think)...
I started reading this thread shortly after posting my own problem, couldn't be bothered to wade through the 17 pages of this one so excuse me if this has already been said:
Right, I had multiple email accounts, all gmail, address 1 2 & 3.
All mail went to the right addresses, fine. But when I compose, lets say from address 1 or 2, it ALWAYS ends up being received the other end by address 3. I only find this out until I get a reply delivered to the wrong address.
SO go to preferences, select one of the problematic addresses, then outgoing mailserver (SMTP:) in this case it will say Gmail. Click it so you get the drop down and edit SMTP list. There is a tab that says advanced. This is where I noticed the problem. On my list of SMTP servers I had one for my microsoft account, and then one Gmail one for all 3 gmail accounts. And what did I find for authentication? the username and password of the problem address that ALL my gmail accounts were sending through. You need to create SEPERATE smtp servers for each and every account, especially when using multiple accounts of the same kind (e.g. 3 gmails!)
This fixed the problem for me perfectly and now my emails send from the CORRECT selected address. HOORAH!
Hopefully solved a lot of problems (presuming everyone's problem is the same) THING TO REMEMBER:
Regardless weather it by gmail or hotmail you compose from, mac defaults to using the next working server. Before setting up seperate smtp servers for each gmail I just deleted the one that was there and then it started sending from microsoft account etc... just to clarify that it works regardless of account type!