[ruby-on-rails] Rails에서 이메일을 미리 보려면 어떻게해야합니까?

이것은 어리석은 질문 일 수 있지만 Rails에서 HTML 이메일을 모을 때 브라우저에서 템플릿을 미리 볼 수있는 특히 쉬운 내장 방법이 있습니까? 아니면 가져 오는 일종의 사용자 지정 컨트롤러를 작성해야합니까? 그것의 관점에서?



답변

Action Mailer는 이제 Rails 4.1 에서 이메일 미리보기 방식을 내장하고 있습니다. 예를 들어 다음을 확인하십시오.

# located in test/mailers/previews/notifier_mailer_preview.rb

class NotifierPreview < ActionMailer::Preview
  # Accessible from http://localhost:3000/rails/mailers/notifier/welcome
  def welcome
    Notifier.welcome(User.first)
  end
end


답변

Daniel의 대답 은 좋은 시작이지만 이메일 템플릿에 동적 데이터가 포함되어 있으면 작동하지 않습니다. 예를 들어 이메일이 주문 영수증이고 그 안에 인쇄한다고 가정합니다 @order.total_price. 이전 방법을 사용하면 @order변수가 nil이됩니다.

내가 사용하는 작은 레시피는 다음과 같습니다.

첫째,이 이메일 미리보기 기능은 확실히 내부 전용이므로 관리 네임 스페이스에 몇 가지 일반 경로를 설정했습니다.

#routes.rb

MySite::Application.routes.draw do
  namespace :admin do
    match 'mailer(/:action(/:id(.:format)))' => 'mailer#:action'
  end
end

다음으로 컨트롤러를 만듭니다. 이 컨트롤러에서는 이메일 템플릿 당 하나의 메소드를 생성합니다. 대부분의 이메일에는 동적 데이터가 포함되어 있으므로 템플릿에 필요한 모든 멤버 변수를 채워야합니다.

이것은 픽스쳐로 수행 할 수 있지만 일반적으로 의사 랜덤 실제 데이터를 가져 오는 것을 선호합니다. 기억하십시오-이것은 단위 테스트가 아닙니다-이것은 순전히 개발 지원입니다. 매번 동일한 결과를 생성 할 필요는 없습니다. 사실, 그렇지 않으면 더 좋을 것입니다!

#app/controllers/admin/mailer_controller.rb
class Admin::MailerController < Admin::ApplicationController

  def preview_welcome()
    @user = User.last
    render :file => 'mailer/welcome.html.erb', :layout => 'mailer'
  end

end

템플릿을 렌더링 할 때 layout=>:mailer. 이렇게하면 일반적인 웹 애플리케이션 레이아웃 (예 :)이 아닌 생성 한 HTML 이메일 레이아웃에 이메일 본문이 포함됩니다 application.html.erb.

그리고 그것은 거의 다입니다. 이제 http://example.com/admin/mailer/preview_welcome 을 방문 하여 환영 이메일 템플릿의 변경 사항을 미리 볼 수 있습니다 .


답변

37Signals에는 mail_view 라는 자체 메일 테스트 젬도 있습니다 . 꽤 환상적입니다.


답변

내가 본 가장 쉬운 설정은 MailCatcher 입니다. 설치는 2 분이 걸렸으며 새 메일러에서 즉시 사용할 수 있습니다.


답변

email_preview를 사용 합니다 . 시도 해봐.


답변

최근에 Maily 라는 gem을 작성 하여 브라우저를 통해 애플리케이션 이메일을 미리보고, 편집하고 (템플릿 파일) 전달했습니다. 또한 데이터를 연결하는 친숙한 방법, 유연한 권한 부여 시스템 및 최소한의 UI를 제공합니다.

가까운 장래에 다음과 같은 새로운 기능을 추가 할 계획입니다.

  • 이메일 당 여러 후크
  • UI를 통해 이메일 매개 변수화 (메일러 방법의 인수)
  • 번역 키로 재생 (목록, 강조 표시, …)

나는 그것이 당신을 도울 수 있기를 바랍니다.


답변

Rails 이메일 미리보기를 사용할 수 있습니다.

rails-email-preview 스크린 샷

REP는 A가 국제화 지원, 쉽게 premailer 통합, 함께 편집 옵션 CMS와, 미리보기 및 테스트 보내기 이메일에 엔진 레일입니다 comfortable_mexican_sofa .