This is a complicated question.
First of all I think you made a big mistake reading her e-mail, It' intrusive and disrespectful.Second, I think you made another mistake not confronting her or asking her about this right away - I don't know how you got to see her e-mail, if you just looked at the computer and her e-mails were out there to see or if you hacked into her account. Third, I think you were being dishonest with her and yourself when you said "I don't mind if you have sex with other guys, just don't hide it from me". I heard that from a couple of men in the past - basically this is a very mixed message that's a passive aggressive way of being in control - you are afraid she'll cheat on you so the one thing you manage to do without coming off as a closed minded jealous guy is to at least try and make sure you have all the info.
It seem to me that constantly in the relationship you are having a serious trust issue that makes you spy on your girlfriend and try to catch instead of talking about all this openly.
Saying that - I don't know why she didn't tell you about it, maybe to was all still in planning and she wasn't sure it was going to happened, maybe she was afraid you would say "no" to a guy staying at her house, maybe she wanted to surprise you, maybe she was planning to have sex with the guy and not tell you about it. I think the only way to find out is talk to her openly about it - admit to reading her e-mails and apologize for that, and then ask her - not in an accusing way, why she chose not to share her friend visit with you.
I think that before you resolve your trust issue, you shouldn't marry this girl, I don't think it's possible to built a good relationship based on so much mistrust and doubts and since your son's involved as well, I think you have to be 100% sure about this woman before you let her enter his life.