Лучший способ создать сложное HTML-сообщение электронной почты с asp.net, как? - PullRequest
2 голосов
/ 28 января 2009

После того, как пользователь разместил заказ, я должен отправить подробное электронное сообщение, содержащее детали заказа, инструкции по оплате, дополнительный текст и т. Д.

Я хочу создать красиво отформатированное сообщение электронной почты в формате HTML.

К настоящему времени я нашел два варианта:

  • ручное создание по частям, строка за строкой, что слишком громоздко,
  • создание реальной страницы aspx и привязки данных, затем визуализация этой страницы в виде html и отправка в виде тела письма.

Этот второй вариант более нагляден и проще в реализации, кроме:

  • Я не знаю, как на самом деле загружать и отображать страницу, я знаю, как это сделать с помощью ascx
  • Кажется, что это большая часть накладных расходов для создания экземпляра страницы и ее рендеринга

Как загрузить страницу и отобразить ее? У вас есть другие идеи или предложения для этой задачи?

Ответы [ 5 ]

3 голосов
/ 28 января 2009

Ну, IMO, ваша основная проблема составляет "Как мне преобразовать ресурс ASPX в строку HTML для передачи в свойство MailMessage Body?"

Вы можете сделать это, просто используя WebRequest для рассматриваемого URL-адреса ASPX и считав этот ответ в поток. Затем просто прочитайте поток в строку, и ваша основная проблема решена.

Редактировать: Вот статья , которая иллюстрирует эту концепцию.

2 голосов
/ 28 января 2009

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

ех.

<b>Receipt for order # [[ordernum]]</b>

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

1 голос
/ 28 января 2009

В аналогичной ситуации я сохраняю шаблонное сообщение электронной почты в своей базе данных, чтобы люди, использующие наше программное обеспечение, могли изменить сообщение. Он создается (пользователем) с помощью онлайн-редактора HTML-управления от Telerik. В этом сообщении я поддерживаю несколько полей типа «mailmerge», которые имеют шаблон {FirstName}, {LastName} и т. Д.

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

Маршрут страницы .aspx? Я просто не стал бы этого делать. Это слишком излишне и не дает вам никаких преимуществ.

0 голосов
/ 28 января 2009

Я буду использовать шаблон, подобный упомянутому Джею.

Ниже ресурс может оказаться полезным для вас.

http://dotnettricks.com/blogs/roberhinojosablog/archive/2006/05/12/57.aspx

0 голосов
/ 28 января 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...