For email, nowadays, if you want it "pretty" you going to send the pretty part as an html encoded block.
Now, that doesn't fix it for shell though.... you might be able to build a filter to translate embedded escapes into something meaningful when printed.
If you store the following values in variable, e.g boldon and boldoff you can do it:-
boldon=`tput smso`
boldoff=`tput rmso`
I might have the wrong bit, this might put on underline or reverse perhaps. I don't have a server to hand to try this on I'm afraid. Can someone correct me if I'm wrong please?
bold=`tput smso` offbold=`tput rmso`
Set the shell variables bold, to begin stand-out mode sequence, and offbold, to end
standout mode sequence, for the current terminal.
Doubtful that Debian got this wrong. tput bold and sgr0 date way before Linux for terminfo. With that said, there are some (and popular too) BSD variants still holding on to termcap.