1

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

我需要将该页面放入MailMessage.

通常我会做的只是创建一个StringBuilder并一遍又一遍地附加这些行。但它有点长,我不想用单引号等替换引号。

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

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

谢谢!

4

3 回答 3

2

你能用File.ReadAllText替换 GetContentsFrom吗?

于 2010-03-09T17:30:28.670 回答
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;
}
于 2010-03-09T17:31:59.963 回答
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();

}

于 2010-03-09T17:49:59.460 回答