Это может быть глупый вопрос, но когда я собираю HTML-письмо в Rails, есть ли особенно простой встроенный способ предварительного просмотра шаблона в браузере или мне нужно написать какой-то настраиваемый контроллер, который его вытягивает в качестве своей точки зрения?
ruby-on-rails
email
Питер Никси
источник
источник
Ответы:
Action Mailer теперь имеет встроенный способ предварительного просмотра писем в Rails 4.1 . Например, посмотрите это:
источник
spec/mailers/previews
Ответ Даниэля - хорошее начало, но если ваши шаблоны писем содержат какие-либо динамические данные, это не сработает. Например, предположим, что ваша электронная почта - это квитанция о заказе, и вы распечатываете ее
@order.total_price
- при использовании предыдущего метода@order
переменная будет равна нулю.Вот небольшой рецепт, который я использую:
Во-первых, поскольку эта функция предварительного просмотра электронной почты определенно предназначена только для внутреннего использования, я настроил несколько общих маршрутов в пространстве имен администратора:
Далее я создаю контроллер. В этом контроллере я создаю один метод для каждого шаблона электронной почты. Поскольку большинство электронных писем содержат динамические данные, нам необходимо заполнить любые переменные-члены, которые ожидает шаблон.
Это можно сделать с помощью фикстур, но я обычно предпочитаю просто получать некоторые псевдослучайные реальные данные. Помните - это НЕ модульный тест - это просто помощь в разработке. Необязательно давать один и тот же результат каждый раз - на самом деле, наверное, лучше, если это не так!
Обратите внимание, что при рендеринге шаблона мы используем
layout=>:mailer
. Это встраивает тело вашего электронного письма в созданный вами HTML-макет электронной почты, а не в типичный макет веб-приложения (напримерapplication.html.erb
).И это почти все. Теперь я могу посетить http://example.com/admin/mailer/preview_welcome, чтобы просмотреть изменения в моем шаблоне приветственного письма.
источник
get 'mailer...
теперь вместоmatch
.37Signals также имеет свой собственный гем тестирования почты под названием mail_view . Это просто фантастика.
источник
Самая простая установка, которую я видел, - это MailCatcher . Установка заняла 2 минуты, и для новых почтовых программ работает из коробки.
источник
Я использую email_preview . Попробуйте.
источник
Недавно я написал гем под названием Maily для предварительного просмотра, редактирования (файла шаблона) и доставки электронных писем приложения через браузер. Он также обеспечивает удобный способ подключения данных, гибкую систему авторизации и минималистичный пользовательский интерфейс.
Я планировал добавить новые функции в ближайшем будущем, например:
Надеюсь, это поможет тебе.
источник
Вы можете использовать предварительный просмотр электронной почты Rails
REP является рельсам двигатель предварительного просмотра и отправки тестового сообщения электронной почты, с поддержкой I18n, легкой интеграции premailer и факультативных CMS редактирования с comfortable_mexican_sofa .
источник
rails
генерирует предварительный просмотр почты, если вы используетеrails g mailer CustomMailer
. Вы получите файлCustomMailerPreview
внутриspec/mailers/previews
папки.Здесь вы можете написать свой метод, который будет вызывать почтовую программу и генерировать предварительный просмотр.
Для бывшего -
Предварительный просмотр всех писем на http: // localhost: 3000 / rails / mailers / custom_mailer
источник
config.action_mailer.preview_path = "#{Rails.root}/spec/mailers/previews"
Rails Email Preview помогает нам быстро просматривать электронную почту в веб-браузере в режиме разработки.
1) Добавить
“gem ‘rails_email_preview’, ‘~> 0.2.29’ “
в гем-файл и установить пакет.2) Запустите
“rails g rails_email_preview:install”
это создает инициализатор в папке конфигурации и добавляет маршруты.3) Запустите
“rails g rails_email_preview:update_previews”
эту папку crates mailer_previews в каталоге приложения.Генератор добавит заглушку к каждому из ваших писем, а затем заполнит заглушку фиктивными данными.
Пример:
4) Параметры в поисковом запросе будут доступны как переменная экземпляра для класса предварительного просмотра. Пример: если у нас есть URL-адрес, подобный
“/emails/user_mailer_preview-welcome?user_id=1”
@user_id
определенному в методе приветствия,UserMailerPreview
он помогает нам отправлять почту конкретному пользователю.5) Чтобы получить доступ к URL-адресу REP, подобному этому
6) Мы можем отправлять электронные письма через REP, это будет использовать настройки почтовой программы среды. Раскомментируйте эту строку в инициализаторе, чтобы отключить отправку почты в тестовой среде.
Источник: Блог RailsCarma : предварительный просмотр писем в приложениях Rails с помощью Mail_View Gem
источник
Я удивлен, что никто не упомянул letter_opener . Это драгоценный камень, который будет отображать и открывать электронные письма как страницу браузера всякий раз, когда электронное письмо доставляется в dev.
источник
Невозможно предварительно просмотреть его прямо из почтовой программы. Но как вы писали, вы можете написать контроллер, который выглядит примерно так.
Но я думаю, что это не лучший способ проверять письма, если они правильно выглядят.
источник
render "#{params[:mailer]}_mailer/#{params[:method]}", :layout => 'mailer'
вставит тело письма в HTML-макет электронного письма, созданный для вашего приложения.Я предпочитаю gem mails_viewer . Этот драгоценный камень весьма полезен, поскольку он сохраняет шаблон HTML в папке tmp.
источник