Вы можете хранить HTML как CDATA в XML.
Но, глядя на то, что вы пытаетесь сделать, вы можете вместо этого взглянуть на класс System.Web.UI.WebControls.MailDefinition , поскольку он уже содержит разумный способ использования почтовых шаблонов.
Документация msdn ориентирована на его использование в приложениях WinForms, но вы можете просто использовать ListDictionary для заполнения замен.
Вот упрощенный пример, чтобы дать представление о том, как можно использовать MailDefinition, я не буду вдаваться в подробности, поскольку это немного выходит за рамки первоначального вопроса.
protected MailMessage GetNewUserMailMessage(string email, string username, string password, string loginUrl)
{
MailDefinition mailDefinition = new MailDefinition();
mailDefinition.BodyFileName = "~/mailtemplates/newuser.txt";
ListDictionary replacements = new ListDictionary();
replacements.Add("<%username%>", username);
replacements.Add("<%password%>", password);
replacements.Add("<%loginUrl%>", loginUrl);
return mailDefinition.CreateMailMessage(email, replacements, this);
}