I do not want to discourage your attempt but our company uses the same BS with the result,
that it is typically ignored - like those flickering ADs one learns to ignore after some time.
So pardon me for sounding sunny, but there are a few more things to consider.
Your matches are too specific. They seem to fit just for the few examples you've provided. When you going down this path, use loads of test automation.
What you need is a parser that splits the email into its components, detecting header and body for each component (header and body are separated by at least one empty line - your matches might trigger within a header and corrupt the whole thing).
You already handling text and HTML formats, however, producing valid HTML would need you to inject your message somewhere after the <body> tag. Take additonal care not to mess up encrypted or signed parts of the mail.
There might be a suitable library in the MIME:: section of CPAN that could support you more reliably.
Perhaps MIME::Fast or MIME::Tools?
Are you posting in the right place? Check out Where do I post X? to know for sure.
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
Want more info? How to link
or How to display code and escape characters
are good places to start.