Отправка электронной почты пользователю

2

Я использую этот код для отправки электронной почты

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 можно вставить в это?

Теги:

4 ответа

10
Лучший ответ

Дэн дал один вариант - строковые литералы, но я хотел бы предложить вам переместить данные в отдельный файл HTML. Внесите его в качестве ресурса в вашей сборке, а затем вы можете загрузить его во время выполнения.

Таким образом вы получите подсветку синтаксиса HTML, вы не будете загромождать свой код большим количеством данных, и вы можете в любое время отредактировать его очень легко, не беспокоясь о вещах, таких как двойные кавычки (которые необходимо удвоить в дословном строковом литерале или сбежать с обратным слэшем в обычный строковый литерал).

Недостатком является то, что становится сложнее помещать пользовательские данные в HTML - для этого вам может потребоваться использовать систему шаблонов; либо просто рукописным (html = html.Replace("$user", name)), либо одной из доступных доступных библиотек шаблонов. Будьте осторожны, конечно, с помощью HTML-экранирования.

  • 0
    хорошо постараюсь сделать это .. thnx
6

Вы можете использовать символ @:

message.Body = @"
    <html>
        <body>
            IMAGINE A LOT OF HTML CODING HERE
        </body>
    </html>";

Это работает нормально, если у вас небольшая разметка HTML/требуется быстрое и грязное решение. Для производственного кода я рекомендую вам использовать то, что предлагает Джон Скит, сохраняя отдельный файл HTML.

2

Отвечайте на второй вопрос:

"Свойство Body может содержать любой объект, размер которого не превышает 4 МБ"

От http://msdn.microsoft.com/en-us/library/system.messaging.message.body.aspx

  • 0
    kk..thnx за ссылку
1

Поместите текст на несколько строк?

message.Body = "<html><body>IMAGINE A LOT OF "+
                " HTML CODING HERE</body></html>";

Ещё вопросы

Сообщество Overcoder
Наверх
Меню