Why is the output so different based on the client? Yahoo and GMail seem to be missing the top and bottom bar, whereas in Outlook you get a border on all sides. Thunderbird seems to be about the only one that renders it as expected?
Unfortunately creating html which renders in all mail clients is a bit of an art, and often requires using horrible hacks (until recently much html email had to use tables for example). They often differ in how they strip out styles as well, so unless the styles are inline on each element, they may disappear. I haven't looked at the code produced here but the explanation is likely in differing client behaviour not being accounted for in the example html.