【发布时间】:2012-08-10 05:58:20
【问题描述】:
我正在使用 rails 3.2.5 ActionMailer 发送纯文本邮件。鉴于我有这样的邮件视图:
message_from_user.text.erb:
Hi <%= @recipient.name %>,
You got the following message from <%= @sender.name %>:
<%= @message %>
当@message 为"quotes & ampersands" 时,纯文本邮件包含&quot;quotes &amp; ampersands&quot;。所以看起来 Rails 只是将其视为 HTML 视图并转义任何 html 以防止跨站点脚本。然而,这是一封纯文本邮件。扩展名为.text.erb,ActionMailer 检测到这一点并将 MIME 设置为text/plain。所以我从不想转义其中的任何 html。
我的应用程序中有很多邮件模板,它们都是纯文本。我会考虑修补所有这些以包含 <%=raw @message%> 或 <%= @message.html_safe %> 糟糕的风格 - 不是很干燥。
我尝试了各种变通方法,包括修补 Erubis 的钱。它们似乎都不起作用。我正在寻找一些补丁或配置选项或任何东西来禁用所有.text.erb 文件的转义html。
非常感谢任何帮助!
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 actionmailer erb