This isn't so much a thing associated to e-mail itself. E-mail sent using the SMTP protocol doesn't really have any guidelines on 'smilies' in general. The graphic associated to what you're seeing is typically interpreted by the software you are using. Software these days can range from the mail program you're using on your client machine, or the web-based e-mail provider you're using to access your e-mail, such as Yahoo! (ymail), Google mail and so on. Your mileage may vary based off of the service you're using, which is why the actual graphic displayed for the various character combinations that represent smilies, can change.
The same process is used by most online chatting systems, such as America Online Instant Messenger, ICQ (I Seek you) and various others.
The process of actually translating the character combinations into smilies may vary based upon implementation, but usually they involve a search within the message that replaces the simple textual grouping (say ,
:)) with the graphical representation you see. Given the simplicity of such a task in HTML, odds are the e-mail is being rendered using hypertext markup language, or HTML.
Doing this through code however would require a lot more in depth description that goes beyond the scope of this website.