как получить динамический html и отправить его по электронной почте?

Предположим, у меня есть динамическая html-форма, сгенерированная представлением MVC (данные базы данных с таблицей стилей). Затем я хочу отправить тот же html по электронной почте. Например, результат может быть примерно таким:

  <div id="DivForPrint">
        <fieldset>
            <legend>Hello</legend>
            <table>
                <tbody><tr>
                    <td>
                        <label for="ID">
                            ID&nbsp;#:</label>
                    </td>
                    <td>
                        <span class="displayData">
                            9
                        </span>
                    </td>
                    <td width="100%"></td>
                    <td>
                        <label>
                            Date:
                        </label>
                    </td>
                    <td width="100px">
                        <span class="displayData">
                            23/09/2009_2:28_PM
                        </span>
                    </td>
                </tr>
            </tbody></table>
        </fieldset>
    </div>

Как его получить и отправить по электронной почте? даже я могу установить что-то вроде mail.IsBodyHtml = true; но таблица стилей недоступна при отправке электронной почты


person KentZhou    schedule 23.09.2009    source источник


Ответы (2)


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

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

person Nathan Taylor    schedule 23.09.2009
comment
Судя по тому, как это звучит, я, по крайней мере, частично неправильно понял ваш вопрос, надеюсь, мой ответ все еще был полезен. :) - person Nathan Taylor; 24.09.2009

Я почти уверен, что вы можете получить вывод View, вызвав метод View.Render() ViewResult, а затем просмотрев переданный текстовый редактор.

Хотя это всего лишь мои предположения.

person Dusda    schedule 23.09.2009
comment
Если это действительно сработает, вы можете проявить творческий подход и создать сервис для репликации инструмента, на который я ссылался выше, затем объединить HTML-ответ из вашего представления с его связанной таблицей стилей (или локальным стилем - в зависимости от того) и отправить всю строку в сервис для встроенного -стиль-ификация. Таким образом, вы могли бы продолжать использовать свои связанные стили и просто создавать встроенные электронные письма полностью на лету. Было бы круто увидеть! - person Nathan Taylor; 24.09.2009
comment
Да, это было бы. Я очень занят прямо сейчас, но на самом деле я думал об использовании Views для рендеринга html для электронных писем (вероятно, это будет «вещь» в следующем проекте, над которым я работаю). Я выложу пример кода, когда решу эту проблему. - person Dusda; 24.09.2009