Я использую этот код для отправки электронной почты
var message = new MailMessage("[email protected]", "[email protected]");
message.Subject = "Testing";
message.IsBodyHtml = true;
message.Body = "<html><body>IMAGINE A LOT OF HTML CODING HERE</body></html>";
Проблема в том, что я просто скопировал HTML-код, который я хочу отправить как электронную почту, и теперь мне нужно сделать весь код HTML в ОДНОЙ одной строке! В противном случае это говорит ";" отсутствует! Я имею в виду, теперь я не могу продолжать удалять пробелы и помещать их ВСЕ в одну строку! Это слишком много HTML-кода, который мне нужно отправить. Что я делаю?:/
[EDIT]
Другой вопрос: есть ли предел для этого message.Body
? Как ограничение на то, сколько HTML можно вставить в это?
Дэн дал один вариант - строковые литералы, но я хотел бы предложить вам переместить данные в отдельный файл HTML. Внесите его в качестве ресурса в вашей сборке, а затем вы можете загрузить его во время выполнения.
Таким образом вы получите подсветку синтаксиса HTML, вы не будете загромождать свой код большим количеством данных, и вы можете в любое время отредактировать его очень легко, не беспокоясь о вещах, таких как двойные кавычки (которые необходимо удвоить в дословном строковом литерале или сбежать с обратным слэшем в обычный строковый литерал).
Недостатком является то, что становится сложнее помещать пользовательские данные в HTML - для этого вам может потребоваться использовать систему шаблонов; либо просто рукописным (html = html.Replace("$user", name)
), либо одной из доступных доступных библиотек шаблонов. Будьте осторожны, конечно, с помощью HTML-экранирования.
Вы можете использовать символ @
:
message.Body = @"
<html>
<body>
IMAGINE A LOT OF HTML CODING HERE
</body>
</html>";
Это работает нормально, если у вас небольшая разметка HTML/требуется быстрое и грязное решение. Для производственного кода я рекомендую вам использовать то, что предлагает Джон Скит, сохраняя отдельный файл HTML.
Отвечайте на второй вопрос:
"Свойство Body может содержать любой объект, размер которого не превышает 4 МБ"
От http://msdn.microsoft.com/en-us/library/system.messaging.message.body.aspx
Поместите текст на несколько строк?
message.Body = "<html><body>IMAGINE A LOT OF "+
" HTML CODING HERE</body></html>";