如何将电子邮件页面/模板的内容提取到.NET中的MailMessage Body中

时间:2010-03-09 17:09:07

标签: c# asp.net html-email mailmessage

我有一个电子邮件模板,它只是一个简单的静态HTML页面。

我需要将该页面放入MailMessage的正文中。

通常我要做的只是创建一个StringBuilder并反复追加这些行。但这是一个很长的页面,我不想用单引号替换引号等。

那么有没有办法将html页面的内容拉入字符串?如:

emailMessage.IsBodyHtml     = true;
emailMessage.Subject        = "Test Subject";
emailMessage.Body           = GetContentsFrom("emailtemplate.html");

谢谢!

3 个答案:

答案 0 :(得分:2)

你可以用File.ReadAllText替换GetContentsFrom吗?

答案 1 :(得分:1)

我认为这个例程可以解决问题:

private static string GetTemplate(string templateFullPath)
{
    string template;

    if (!File.Exists(templateFullPath))
        throw new ArgumentException("Template file does not exist: " + templateFullPath);

    using (StreamReader reader = new StreamReader(templateFullPath))
    {
        template = reader.ReadToEnd();
        reader.Close();
    }

    return template;
}

答案 2 :(得分:1)

页面是否在某处托管?你可以这样做:

私有字符串HtmlPageInToString()

{

WebRequest myRequest;
myRequest = WebRequest.Create(@"http://yoururlhere/");

myRequest.UseDefaultCredentials = true;

WebResponse myResponse = myRequest.GetResponse();

Stream ReceiveStream = myResponse.GetResponseStream();
Encoding encode = System.Text.Encoding.GetEncoding("utf-8");

StreamReader readStream = new StreamReader(ReceiveStream, encode);

return readStream.ReadToEnd();

}