Преобразование внешнего CSS в встроенный CSS для почты в Rails - PullRequest
16 голосов
/ 24 мая 2011

Я пытаюсь создать приложение, которое будет отправлять электронные письма со стилем и требовать работы клиентов, кроме Google Gmail.Я исследовал проблему, и похоже, что Gmail удаляет CSS из внешних файлов или CSS, вложенный в тег «style».Существует ли простой способ перемещения стиля из внешнего файла во встроенный?

Что-то, что займет:

<style>
.wide { width: 100px; }
.cell { display: block; }
</style>
<span class="wide cell">Sample</span>

И преобразовать его в:

<div class="wide cell" style="width: 100px; display: block;">Sample</div>

Спасибо!

Ответы [ 3 ]

38 голосов
/ 03 июня 2011

Вот несколько драгоценных камней, которые вы можете проверить:

У меня нет победителя на момент написания этого ответа, но premailer представляется наиболее актуальным.

6 голосов
/ 30 мая 2011

Добавлено premailer:

def premailer(message)
  message.text_part.body = Premailer.new(message.text_part.body.to_s, with_html_string: true).to_plain_text
  message.html_part.body = Premailer.new(message.html_part.body.to_s, with_html_string: true).to_inline_css

  return message
end

def welcome(user)
  @user = user

  message = mail ...
end
4 голосов
/ 24 мая 2011

В ваших рассуждениях есть только одна проблема ..... многие стили, даже встроенные, не поддерживаются.

Вот ссылка для , что поддерживается в электронной почте

В вашем примере вы используете тег display:, который не поддерживается Outlook 07 +

Моя компания рассылает тысячи электронных писем в день, и я часто помогаю их создавать. На практике встроенные стили работают, но это не так просто, как просто встроить все, и это будет работать. Вы должны быть предельно осторожны относительно того, что вы используете и как вы это используете. Я прибегал к своим начинаниям, делая почти все в чистом HTML с таблицами для макетов. По сути, это единственный способ заставить все работать почти 100% времени.

Если вы встраиваете эту функциональность в приложение, которое будет широко использоваться, я также настоятельно рекомендую встроить Email в Acid через их API. Несмотря на то, что вы можете кодировать вывод очень хорошего качества, Microsoft, без сомнения, найдет способ заставить ваш действительный код не работать. Электронная почта на Acid будет отображаться с использованием того безумия, которое Microsoft использует в то время, чтобы показать вам, работает ли ваша электронная почта. Это чистый гений и требуется для тех, кто серьезно относится к отправке тонны электронных писем. И нет, я не работаю в компании ....

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