Как вытащить содержимое страницы / шаблона электронной почты в тело MailMessage в .NET - PullRequest
1 голос
/ 09 марта 2010

У меня есть шаблон электронной почты, который представляет собой простую статическую HTML-страницу.

Мне нужно поместить эту страницу в тело MailMessage.

Обычно я просто создаю StringBuilder и добавляю строки снова и снова. Но это довольно длинная страница, и я не хочу заменять цитаты одинарными и т.д.

Так есть ли способ просто вставить содержимое html-страницы в строку? Такие как:

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

Спасибо!

Ответы [ 3 ]

2 голосов
/ 09 марта 2010

Не могли бы вы заменить GetContentsFrom на File.ReadAllText ?

1 голос
/ 09 марта 2010

Где-то размещена страница? Вы могли бы сделать это:

приватная строка 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();

}

1 голос
/ 09 марта 2010

Я думаю, что эта рутина сделает свое дело:

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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...