MailMessage из MailBee преобразование из HTML в TEXT добавляет дополнительное пространство - PullRequest
0 голосов
/ 17 октября 2018

Я использую MailBee для преобразования HTML в текст, но он добавляет дополнительный пробел в начале каждой строки, кроме первой.

Например, у меня есть этот HTML

<!DOCTYPE html>
 <html>
    <head>
      <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">
    </head>
    <body>
      <div style=\"font-size:13px;font-family:Arial;\"><br></div>
      <div style=\"font-size:13px;font-family:Arial;\">test</div>
      <div style=\"font-size:13px;font-family:Arial;\">test2</div>
      <div style=\"font-size:13px;font-family:Arial;\">test3</div>
      <div style=\"font-size:13px;font-family:Arial;\">test</div>
   </body>
<html>

(HTML находится в одной строке. Я изменил его на многострочное только для удобства чтения.)

Когда я использую этот код для получения текста

MailMessage message = new MailMessage
 {
    BodyHtmlText = Html
 };
 message.MakePlainBodyFromHtmlBody();
 return message.BodyPlainText;

Я получаю этот результат

\r\ntest \r\n test2 \r\n test3 \r\n test \r\n

Как видите, перед test2, test3 и test добавляется дополнительное пространство.Это ошибка или я что-то не так делаю?Кто-нибудь может мне помочь?Спасибо

1 Ответ

0 голосов
/ 18 октября 2018

Я предлагаю вам использовать простое регулярное выражение для удаления пробелов в начале или конце строки.Регулярное выражение:

^[ ]*|[ ]*$

Просто соответствует нулю или более пробелов в начале или конце строки.

Вам необходимо установить параметр «Многострочный».

Тогдазамените пробелы пустой строкой.

Как использовать:

message.BodyPlainText = Regex.Replace(message.BodyPlainText, "^[ ]*|[ ]*$", "", RegexOptions.Multiline);

Теперь в вашем сообщении будут удалены пробелы.

...