Уценка до текста / обычного и текста / HTML для составной электронной почты - PullRequest
2 голосов
/ 13 мая 2010

Я ищу решение для отправки сухих составных электронных писем в Rails. С СУХОЙ я имею в виду, что содержание для почты определяется только один раз.

Я думал о некоторых возможных решениях, но не нашел каких-либо существующих реализаций.

Решения, о которых я подумал:

  • загрузить текст из I18n и применить Markdown для html-почты и применить Markdown со специальным типом вывода для текстовой почты, где
    • ссылки ставятся в скобках после текста ссылки
    • жирный, курсив и другие не имеющие смысла форматирования удаляются
    • поддерживаются упорядоченные и неупорядоченные списки
  • генерирует только html почту и преобразует ее в текст в соответствии с вышеуказанными условиями

Есть ли какое-нибудь доступное решение там? Какой из них, вероятно, лучший способ сделать это?

Ответы [ 2 ]

2 голосов
/ 10 мая 2011

В главе 4 Crafting Rails Applications , Jóse Valim рассказывает, как создать обработчик «merb», который использует разметку с вкрапленным erb и может компилироваться в текст и HTML. Затем вы создаете генератор почтовых программ, который генерирует один шаблон merb для каждого из ваших почтовых действий.

Вы можете прочитать отрывок из этой главы на странице, на которую я вас связал. Я настоятельно рекомендую купить книгу.

Если вы заинтересованы в использовании моей извиняющейся версии того, что он описывает в этой книге, вы можете добавить это в свой Gemfile:

gem 'handlers', :git => "git://github.com/chadoh/handlers.git"

Имейте в виду, что я почти не знаю, что делаю, что я не версионирую этот драгоценный камень, и что я, вероятно, даже не буду поддерживать его. Честно говоря, я хотел бы найти кого-то еще, кто делал бы лучшую работу, но мне это не удалось. Если вы хотите раскошелиться на мой проект и быть человеком, который делает эту лучшую работу, пойти на это !

1 голос
/ 14 мая 2010

Это PITA, но это единственный способ СУХОЙ почты, так что вы можете поддерживать как HTML (multipart), так и обычный текст:

Поместите html-копию электронной почты в частичный файл в каталоге представлений ActionMailer со следующим расширением: _action.html.erb

Замените "действие" на любое имя действия, которое вы используете.

Затем создайте еще 2 файла в том же каталоге: action.text.html.erb и action.text.plain.erb

В text.html частично:

<%= render "action.html", :locals => {:html => true} %>

В текстовой части статьи:

<% content = render "action.html", :locals => {:html => false} %>
<%= strip_tags(content) %>

Это работает для меня, хотя, безусловно, заставляет меня хотеть платить ежемесячную услугу за madmimi

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