Questo perché le email, di default, non sono in html, ma semplice testo. Per inviarle come html, è sufficiente impostare gli header:
Codice PHP:
// To send HTML mail, the Content-type header must be set
$headers  'MIME-Version: 1.0' "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' "\r\n";
?> 
Poi, passi la variabile contenente gli headers insieme al messaggio nella funzione mail:
Codice PHP:
<?php
mail
($to$subject$msg$headers);
?>
Per quanto riguarda il messaggio, puoi tranquillamente includere un file txt, l'importante è che contenga un codice html.

In ogni caso, trovi tutte le informazioni utili sull'argomento qui: http://php.net/manual/en/function.mail.php

Spero di esserti stato utile!