Rails - 使用邮件程序模板为多部分电子邮件设置多个布局

时间:2008-12-12 21:13:21

标签: ruby-on-rails ruby actionmailer

所以Rails 2.2添加了邮件程序布局,这很好,除了我发送一个多部分电子邮件时我无法弄清楚如何让它们工作..我的邮件内容包含两个文本的相同布局/ plain版本和text / html版本。我想要的是将我的布局包裹在text / html版本周围,或者为每个版本设置一个单独的布局。

有人遇到过这个吗?我没有在其他地方看到任何提及它,

卡梅伦

1 个答案:

答案 0 :(得分:3)

为了将来参考,上面在博客文章中修改的解决方案在第二篇博客文章中给出了以下所有归功于上述博客文章。 Solution blog post

将此代码添加到environment.rb文件中,以阻止邮件程序将布局应用于纯文本电子邮件。它还有一个检查,可以阻止它与异常通知插件冲突。

# Do not use the mailer layout template for plain text emails
module ActionMailer
  class Base
    private    
    def candidate_for_layout?(options)
       (!options[:file] || !options[:file].respond_to?(:content_type) ||
          options[:file].content_type != 'text/plain') &&
          !@template.send(:_exempt_from_layout?, default_template_name)
    end
  end
end