代码之家  ›  专栏  ›  技术社区  ›  Jack Marchetti

如何将电子邮件页/模板的内容拉入.NET中的邮件正文

  •  1
  • Jack Marchetti  · 技术社区  · 15 年前

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

    MailMessage .

    通常我会做的只是创建一个 StringBuilder 然后一遍又一遍地附加这些行。但是这是一个很长的页面,我不想用单引号替换引号等等。。

    那么有没有办法把html页面的内容拉入一个字符串呢?例如:

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

    3 回复  |  直到 15 年前
        1
  •  2
  •   Alex Peck    15 年前
        2
  •  1
  •   Ben Griswold    15 年前

    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;
    }
    
        3
  •  1
  •   kaelle    15 年前

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

    私有字符串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();
    

    }