当您在轨道上发送电子邮件时,通常会使用<%= variable %>
在视图中注入数据。
问题是,如果variable
包含类似http://google.com
的内容,电子邮件客户端会很乐意自动为该字符串创建一个链接,即使您没有将其包裹在{{1}周围} 标签。这可能会导致各种安全问题。
现在我不想尝试为每个案例找到解决方案。那么有一个简单的技巧,我可以在ActionMailer视图上使用,以确保任何潜在的URL都不会被电子邮件客户端自动链接?
答案 0 :(得分:2)
我不认为有一种简单的方法可以防止这种情况发生,因为它发生在客户端。
欺骗电子邮件客户端的一种方法是在网址中间添加<span>
,这可以防止在不更改文字样式的情况下添加链接。
您可以使用帮助程序在特定位置执行此操作,如:
module MailHelper
def escape_links(text)
h(text).gsub(/[\.:]/, '<span>\0</span>').html_safe
end
end
然后在视图模板中将其用作<%= escape_links variable %>
。
我同意在任何地方添加它都会有点烦人,似乎你想要一个更通用的解决方案。在这种情况下,可能有用的东西(我自己还没有尝试过)是使用email interceptors来应用类似的方法来改变消息体。您需要更智能的替换策略,以避免在<span>
的{{1}}内添加<a>
。
答案 1 :(得分:0)
您可以将此css添加到您的电子邮箱中。
[[[-0.05313011 -0.03707792 -0.00771733 0.25379574 0.06289639]
[ 0.34355608 -0.00646485 -0.00426668 0.35139424 0.02420545]]
[[ 0.07838845 -0.04377012 -0.00758527 0.44615552 0.01038414]
[ 0. 0. 0. 0. 0. ]]
[[ 0.16005152 -0.01226684 -0.0048396 0.48419252 0.00086438]
[ 0.4990865 -0.03458051 0.01733598 0.35500884 0.02000519]]
[[ 0.73743606 -0.00149451 -0.102979 -0.39292669 0.50247419]
[ 0.6204772 -0.04163819 -0.4165332 -0.14101879 0.34553975]]]
这将阻止所有鼠标点击电子邮件,如html。