Комментарии 38
Я бы решал эту проблему при помощи UserJS, чтобы вообще не писать сложные парсеры, в браузерах это уже все есть, достаточно после загрузки страницы пройтись по всем элемента и дописать в style.cssText стили, полученные при помощи getComputedStyle.
+2
Хотя серверное решение конечно же может понадобиться…
0
Javascript в почтовом сообщении штука сомнительная. Например, в Thunderbird 3 он выключен.
-1
Javascript в самом сообщении и не нужен, здесь о преобразовании перед отправкой речь идет.
+2
ммм, интересная идея, только письма-то заранее сделанные, типа активации пользователя, прогонять их через браузер совсем не хочется, не удобно это
0
оно возвращает значения в пикселях. по твоему у всех монитор такой же как у тебя?
-3
Css parser отлично работает, я например просто составляю css-ки с расчетом на то что они будут использоваться в письмах, т.е. не использую сложные селекторы и наследование, получаются классы вроде strong_text и strong_red_text, различающиеся только цветом.
+4
тоже вариант, но отказываться от всех перимуществ css из-за почты — я не могу пойти на такое
0
Ну тут уже зависит от ваших писем и задач конечно. Но с другой стороны — это всего лишь письмо, я на своей практике ни разу не видел письма где нельзя было бы обойтись без вложенности стилей и всяких таких примочек.
Ну и кстати вы можете генерировать css) Sass вам в помощь.
Ну и кстати вы можете генерировать css) Sass вам в помощь.
+1
если бы это было просто письмо — то да, можно было бы обойтись без вложенности стилей и всяких примочек, но хочется-то использовать уже существующий код, который используется на основном сайте, например, на сайте есть красивая панелька, она уже сверстана и оттестирована, находится в отдельном partial-е, хочется в письме сделать:
render :partial => 'shared/panel'
и не заморачиваться больше. Да, я понимаю, что по большому счету для лучшей поддержки почтовыми клиентами было бы круто переверстать все это дело таблицами, убрать все сложные, неподдерживаемые css-правила и т.п. но хочется-то, хотя бы на первое время, сделать быстрое решение, чтобы показать его начальству, а потом уже в фоне по мере сил и возможностей перевестать по-правильному.
render :partial => 'shared/panel'
и не заморачиваться больше. Да, я понимаю, что по большому счету для лучшей поддержки почтовыми клиентами было бы круто переверстать все это дело таблицами, убрать все сложные, неподдерживаемые css-правила и т.п. но хочется-то, хотя бы на первое время, сделать быстрое решение, чтобы показать его начальству, а потом уже в фоне по мере сил и возможностей перевестать по-правильному.
0
это от каких? неужели так сложно более общие селекторы писать вначале?
0
Самое главное правило HTML-писем: обязательно включать в сообщение и plain text-версию.
+5
Если в письме есть аттачмент картинки, то в HTML-ке ее можно отобразить. Возможно, и со стилями такой трюк пройдет.
Техника такая:
где 25bc9b0e72ffee30f74314732989afd7 — Content-Id картинки в письме. На сколько помню, Content-Id может быть любым, я ставил имя файла.
Техника такая:
где 25bc9b0e72ffee30f74314732989afd7 — Content-Id картинки в письме. На сколько помню, Content-Id может быть любым, я ставил имя файла.
0
Немного неправильно отправил.
Техника такая:
<img src="cid:25bc9b0e72ffee30f74314732989afd7">
где 25bc9b0e72ffee30f74314732989afd7 — Content-Id картинки в письме. На сколько помню, Content-Id может быть любым, я ставил имя файла.
Техника такая:
<img src="cid:25bc9b0e72ffee30f74314732989afd7">
где 25bc9b0e72ffee30f74314732989afd7 — Content-Id картинки в письме. На сколько помню, Content-Id может быть любым, я ставил имя файла.
0
По-моему, лежащее на поверхности решение — отказаться от семантики и использовать CSS-классы вроде «red» «100-percent-wide».
Мерзко, но в случае с почтой может быть оправдано.
Мерзко, но в случае с почтой может быть оправдано.
+2
Такая же проблема стоит перед верстальщиками виджетов для вставки в блоги.
Например, ЖЖ еще и некоторые инлайновые объявления режет (position: relative и absolute).
Мне кажется, можно написать простенькое расширение для внутреннего пользования (под FF или Chrome), по совету тов. Octane, и генерить с его помощью шаблоны. Не так уж часто эти шаблоны меняются, имхо.
Например, ЖЖ еще и некоторые инлайновые объявления режет (position: relative и absolute).
Мне кажется, можно написать простенькое расширение для внутреннего пользования (под FF или Chrome), по совету тов. Octane, и генерить с его помощью шаблоны. Не так уж часто эти шаблоны меняются, имхо.
0
НЛО прилетело и опубликовало эту надпись здесь
Мы в свое время отказались от html в письмах, из-за неадекватного восприятия — половина пользователей отправляет письмо с html в корзину не читая даже заголовок. Необходимый контент генерировался на сервере, а в письмо была вставлена личная ссылка.
Это далеко не универсальный способ, во-первых лишний клик, во-вторых безопасность.
Это далеко не универсальный способ, во-первых лишний клик, во-вторых безопасность.
0
Мы тоже рассылаем html письма, но их читает далеко не 50%.
Все нормальные импортные магазины присылают html письма.
Все чинно, красиво и никакого спама и люди читают. Так что не стоит наезжать на красивые письма.
Все нормальные импортные магазины присылают html письма.
Все чинно, красиво и никакого спама и люди читают. Так что не стоит наезжать на красивые письма.
0
apple.com рассылает офигенно красиво сверстанные письма.
Я уверен, что они немного больше вас.
Я уверен, что они немного больше вас.
0
пора бы уже и email стандартам начать развиваться.
0
НЛО прилетело и опубликовало эту надпись здесь
хрестоматийное от Зельдмана:
«E-mail is not a platform for design»
www.zeldman.com/2007/06/08/e-mail-is-not-a-platform-for-design/
Русский перевод:
www.newsland.ru/News/Detail/id/82184/
«E-mail is not a platform for design»
www.zeldman.com/2007/06/08/e-mail-is-not-a-platform-for-design/
Русский перевод:
www.newsland.ru/News/Detail/id/82184/
0
По-моему, поскольку проблема описана, проще всего форкнуться и решить её.
В методе
def render_inline(css_doc, html_doc)
надо просто получить список всех селекторов и потом просто отсортировать по увеличению важности.
Цитирую Википедию:
Приоритеты рассчитываются таким образом (от большего к меньшему):
свойство задано при помощи !important?
стиль прописан напрямую в теге?
количество идентификаторов (#id) в селекторе (чем больше, тем больше приоритет);
количество классов (.class) и псевдоклассов (:pseudoclass) в селекторе;
количество имён тегов в селекторе;
Кроме того, имеет значение относительный порядок расположения свойств — свойство, указанное позже, имеет приоритет.
В общем, вполне реализуемо, за небольшое время. Если бы мне было нужно, я бы реализовал.
В методе
def render_inline(css_doc, html_doc)
надо просто получить список всех селекторов и потом просто отсортировать по увеличению важности.
Цитирую Википедию:
Приоритеты рассчитываются таким образом (от большего к меньшему):
свойство задано при помощи !important?
стиль прописан напрямую в теге?
количество идентификаторов (#id) в селекторе (чем больше, тем больше приоритет);
количество классов (.class) и псевдоклассов (:pseudoclass) в селекторе;
количество имён тегов в селекторе;
Кроме того, имеет значение относительный порядок расположения свойств — свойство, указанное позже, имеет приоритет.
В общем, вполне реализуемо, за небольшое время. Если бы мне было нужно, я бы реализовал.
+1
надо попробовать, но что-то мне подсказывает что тут не все так просто как кажется
0
в общем, я реализовал задуманное
вот сопутствующая статья: rails.vsevteme.ru/items/show?id=15682
а вот код: github.com/goganchic/awesome_email
вот сопутствующая статья: rails.vsevteme.ru/items/show?id=15682
а вот код: github.com/goganchic/awesome_email
+1
Microsoft часто делает рассылку и все отображается очень корректно, картинки к картинкам, тексты к текстам, все, что не хочешь — не открываешь. Просто заверстанная страничка — очень удобно мне кажется…
0
Отлично! RC очень порадовал. Правда сначала было немного непривычно, т.к. изменились некоторые обыденные команды, а так очень нравится. Ждём полного Релиза"
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Как быть с HTML-письмами?