Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Шаблоны Email сообщений 
:(
    Опции темы
mauzer
Дата 28.9.2005, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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 шаблонирование" наверняка должно часто использоваться разработчиками. В чем дело, может я слишком запариваюсь, и как то неправильно подхожу к проблеме?
PM MAIL   Вверх
Stampede
Дата 28.9.2005, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гносеолог
**


Профиль
Группа: Участник Клуба
Сообщений: 963
Регистрация: 25.4.2005
Где: Calgary, Alberta, Canada

Репутация: 66
Всего: 144



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

Выходы существуют, но достаточно неуклюжие Одна из идей может быть примерно такой: в том месте кода, где ты хочешь сформировать и отправить письмо, обращаешься к JSP, которая рендерит текст письма, как к веб-ресурсу, то есть по URL:

Код

    URL url = new URL("http://yoursite.com/some-path/mailgen.jsp");
    BufferedReader in = new BufferedReader(
                new InputStreamReader(url.openStream()));

    StringBuffer sb = new StringBuffer();
    String s;
    while ((s = in.readLine()) != null)
    {
        sb.append(s);
    }
    in.close();

    String message = sb.toString();


Потом с этим текстом делаешь, что хочешь.


Но я бы на твоем месте вообще забил на JSP и делал бы все (в том числе и онлайновый контент) на шаблонном движке типа Velocity. О том, как им пользоваться, смотри, например, в топике Набираем Velocity.

Успехов!



--------------------
"If you want something done right, do it yourself"
По секрету: выучить английский - реально!
PM WWW   Вверх
mauzer
Дата 29.9.2005, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 28.9.2005

Репутация: нет
Всего: нет



Цитата(Stampede @ 28.9.2005, 22:38)
Но я бы на твоем месте вообще забил на JSP и делал бы все (в том числе и онлайновый контент) на шаблонном движке типа Velocity. О том, как им пользоваться, смотри, например, в топике Набираем Velocity.

Успехов!

Жалко что нет нормального решения с JSP smile

Ну да бог с ним. А имеется ли на Velocity готовое решение для создания шаблонов email сообщений? Причем, не просто тела сообщений, а именно всего сообщения (с динамически формируемым аттачем, динамически формируемым Subject'ом)?

PM MAIL   Вверх
mauzer
Дата 29.9.2005, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 28.9.2005

Репутация: нет
Всего: нет



Цитата(Stampede @ 28.9.2005, 22:38)
Но я бы на твоем месте вообще забил на JSP и делал бы все (в том числе и онлайновый контент) на шаблонном движке типа Velocity. О том, как им пользоваться, смотри, например, в топике Набираем Velocity.

И еще пара вопросов для кучи.
1) Имеется ли для Velocity решение подобное тегу JSP displaytable (тег для отображения таблиц, позволяет легко делать сортировку по колонкам, разбиение на страницы)
2) Если не существует готового решения для создания Email-шаблонов, то как бы Вы посоветовали решить данную проблему?
PM MAIL   Вверх
tux
Дата 29.9.2005, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 74
Всего: 132



Технология Velocity в первую очередь предназначена для генерации текста из готового шаблона. Поэтому с задачей создания текста почтового сообщения (будь то plain text или HTML) она справится прекрасно. Однако, приложить к письму аттач или вообще сформировать почтовое сообщение не получится - это дело соответствующего почтового протокола. Однако, проблему с применением Velocity можно решить следующим образом.

Вот статья о том как создать шаблон почтового сообщения в виде XML. Можно взять такой метод за основу, а XML-шаблон генерировать используя Velocity.
PM MAIL Skype GTalk Jabber YIM   Вверх
Stampede
Дата 29.9.2005, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гносеолог
**


Профиль
Группа: Участник Клуба
Сообщений: 963
Регистрация: 25.4.2005
Где: Calgary, Alberta, Canada

Репутация: 66
Всего: 144



Цитата(mauzer @ 29.9.2005, 11:27)
А имеется ли на Velocity готовое решение для создания шаблонов email сообщений?


Как совершенно справедливо указал tux, Velocity сам по себе не умеет работать с почтой: он не знает, что это такое и что с ней делать. Зато он прекрасно умеет делать то, для чего предназначен - сливать шаблон со списком переменных, и выдавать результирующий текст.

Дальше этот текст тебе надо отправить в виде емейла. Для работы с почтой существует Java Mail API, но пользоваться им напрямую очень неудобно. Гораздо удобнее задействовать какую-нибудь готовую библиотеку, которая предоставляет простые и понятные методы для работы с почтой.

Как будто специально для тебя индейцы Apache два дня назад выпустили первый официальный релиз библиотеки Jacarta Commons Email 1.0. Библиотека настолько простая, что проще уже и быть не может: весь API состоит из всего восьми! классов - и при этом достаточно функциональная, чтобы создавать multipart сообщения, в том числе HTML-емейлы и емейлы с аттачментами.

Цитата(mauzer @ 29.9.2005, 11:45)
Имеется ли для Velocity решение подобное тегу JSP displaytable (тег для отображения таблиц, позволяет легко делать сортировку по колонкам, разбиение на страницы)


Ну, начнем с того, что это не стандартный тег, а опен-сорс инициатива.
Я посмотрел, как это выглядит - довольно удобная штука, спору нет. Но у меня все же есть сомнения, до какой степени она гибкая. На Velocity такое реализовать тоже можно без особого труда - например, в форме набора макросов для удобства повторного использования, или написанием специального класса Table, в который можно будет оборачивать любую коллекцию. Но готового компонента в открытом доступе - возможно и нет. Но может и есть - утверждать не берусь smile



--------------------
"If you want something done right, do it yourself"
По секрету: выучить английский - реально!
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0510 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.