Преобразование внешнего CSS в встроенный CSS для Mail in Rails

Я пытаюсь создать приложение, которое будет отправлять стильные письма и иметь требуемых клиентов, кроме 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>

Спасибо!

Ответы

Ответ 1

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

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

Ответ 2

Добавлен 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

Ответ 3

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

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

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

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

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