我正在使用Action Mailer,并尝试包含链接。由于某种原因,HTML被转义,并且没有显示链接,而是显示:
<a href="http://localhost:3000/employer?task_review=true">here</a>
相反,它应该仅显示链接。这是Ruby:
<%= raw(link_to("here", employer_url(:task_review => 'true'))) %>
我也尝试过:
<%= link_to("here", employer_url(:task_review => 'true')).html_safe %>
和
<%= link_to("here", employer_url(:task_review => 'true')) %>
他们似乎都不起作用。我已经看过其他类似问题的答案,它们都说使用raw
或html_safe
,但均无效。有人有什么想法吗?
从问题的描述来看,问题似乎不在于模板渲染,而在于内容类型。
电子邮件客户端接受不同的内容类型,并进行相应的呈现-如果内容类型为text/html
,则解析并呈现HTML;如果内容类型为,则按原样显示文本text/plain
。
许多邮件发送者发送的邮件包含一个以上的邮件版本(一个HTML和一个TEXT),以支持不具有HTML功能的旧邮件客户端。
要检查您的程序发送的邮件是否具有HTML版本,请打开其原始邮件(在下方的Gmail中More -> show original
),然后查找如下所示的文本:
------=_NextPart_001_0048_01CE7CA4.8389CCD0
Content-Type: text/html;
charset="windows-1255"
这意味着您发送的邮件有HTML版本。
但是,如果您看到的只是:
------=_NextPart_001_0048_01CE7CA4.8389CCD0
Content-Type: text/plain;
charset="windows-1255"
你的问题在那里。(如果同时出现两个选项,则您的邮件客户端可能不支持HTML)
如果发现您没有发送HTML版本,请确保您的模板文件具有扩展名,.html.erb
而不是扩展名.text.erb
(后者向邮件程序指示您希望使用纯文本格式的邮件格式)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句