![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| mauzer |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 28.9.2005 Репутация: нет Всего: нет |
Помогите пожалуйста решить следующую задачу. В разрабатываемой нами системе (на основе Spring + Hibernate) необходимо сделать email рассылки (и не только email). Хотелось бы не зашивать email-сообщение в Java-код, а использовать какое-то решение наподобие JSP, т.е. создавать объектную модель, передавать ее в контекст шаблона, осуществлять рендериг шаблона, после этого отрендеренные данные преобразовывать в объект типа MimeMailMessage, а потом отправлять. Вот в выборе этих шаблонов и состоит загвоздка.
1) Существует ли решение специально заточенное под email шаблонирование (чтобы можно было прямо в шаблоне в шаблоне задать subject, и прочие header'ы email сообщения)? 2) Можно ли как-то решить данную проблему с помощью JSP? Не хотелось бы использовать какой-то другой язык шаблонов, т.к. в качестве шаблонов для html страниц используется тот-же JSP и не хетелось бы заставлять верстальщиков и web-дизайнеров изучать 2 синтаксиса шаблонов. 3) Облазив весь инет я не нашел готового решения для данной проблемы. Но ведь задача простая и "email шаблонирование" наверняка должно часто использоваться разработчиками. В чем дело, может я слишком запариваюсь, и как то неправильно подхожу к проблеме? |
|||
|
||||
| Stampede |
|
|||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 66 Всего: 144 |
mauzer, создатели технологии JSP допустили в свое время грубейшую идеологическую ошибку - намертво привязали вывод содержимового страницы к сокетам, и тем самым исключили возможность использования JSP страниц вне веб окружения.
Выходы существуют, но достаточно неуклюжие Одна из идей может быть примерно такой: в том месте кода, где ты хочешь сформировать и отправить письмо, обращаешься к JSP, которая рендерит текст письма, как к веб-ресурсу, то есть по URL:
Потом с этим текстом делаешь, что хочешь. Но я бы на твоем месте вообще забил на JSP и делал бы все (в том числе и онлайновый контент) на шаблонном движке типа Velocity. О том, как им пользоваться, смотри, например, в топике Набираем Velocity. Успехов! -------------------- "If you want something done right, do it yourself" По секрету: выучить английский - реально! |
|||
|
||||
| mauzer |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 28.9.2005 Репутация: нет Всего: нет |
Жалко что нет нормального решения с JSP Ну да бог с ним. А имеется ли на Velocity готовое решение для создания шаблонов email сообщений? Причем, не просто тела сообщений, а именно всего сообщения (с динамически формируемым аттачем, динамически формируемым Subject'ом)? |
|||
|
||||
| mauzer |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 28.9.2005 Репутация: нет Всего: нет |
И еще пара вопросов для кучи. 1) Имеется ли для Velocity решение подобное тегу JSP displaytable (тег для отображения таблиц, позволяет легко делать сортировку по колонкам, разбиение на страницы) 2) Если не существует готового решения для создания Email-шаблонов, то как бы Вы посоветовали решить данную проблему? |
|||
|
||||
| tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 74 Всего: 132 |
Технология Velocity в первую очередь предназначена для генерации текста из готового шаблона. Поэтому с задачей создания текста почтового сообщения (будь то plain text или HTML) она справится прекрасно. Однако, приложить к письму аттач или вообще сформировать почтовое сообщение не получится - это дело соответствующего почтового протокола. Однако, проблему с применением Velocity можно решить следующим образом.
Вот статья о том как создать шаблон почтового сообщения в виде XML. Можно взять такой метод за основу, а XML-шаблон генерировать используя Velocity. |
|||
|
||||
| Stampede |
|
||||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 66 Всего: 144 |
Как совершенно справедливо указал tux, Velocity сам по себе не умеет работать с почтой: он не знает, что это такое и что с ней делать. Зато он прекрасно умеет делать то, для чего предназначен - сливать шаблон со списком переменных, и выдавать результирующий текст. Дальше этот текст тебе надо отправить в виде емейла. Для работы с почтой существует Java Mail API, но пользоваться им напрямую очень неудобно. Гораздо удобнее задействовать какую-нибудь готовую библиотеку, которая предоставляет простые и понятные методы для работы с почтой. Как будто специально для тебя индейцы Apache два дня назад выпустили первый официальный релиз библиотеки Jacarta Commons Email 1.0. Библиотека настолько простая, что проще уже и быть не может: весь API состоит из всего восьми! классов - и при этом достаточно функциональная, чтобы создавать multipart сообщения, в том числе HTML-емейлы и емейлы с аттачментами.
Ну, начнем с того, что это не стандартный тег, а опен-сорс инициатива. Я посмотрел, как это выглядит - довольно удобная штука, спору нет. Но у меня все же есть сомнения, до какой степени она гибкая. На Velocity такое реализовать тоже можно без особого труда - например, в форме набора макросов для удобства повторного использования, или написанием специального класса Table, в который можно будет оборачивать любую коллекцию. Но готового компонента в открытом доступе - возможно и нет. Но может и есть - утверждать не берусь -------------------- "If you want something done right, do it yourself" По секрету: выучить английский - реально! |
||||
|
|||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |