gpt4 book ai didi

ruby-on-rails - 如何使用 Ruby 4 的 gem 保护可见的电子邮件地址免受垃圾邮件的侵害?

转载 作者:太空宇宙 更新时间:2023-11-03 16:18:00 25 4
gpt4 key购买 nike

我想混淆我网页上的电子邮件地址。我希望避免使用 JS,以防我的用户停用它。

我找到了这个 gem :actionview-encoded_mail_to但它似乎对我不起作用。它在页面上显示了完整的电子邮件地址(这很好),但它也在控制台中显示了它。

我尝试了 3 个示例,结果相同。该 gem 出现在我的 Gemfile 中,因此应该已正确安装。

最佳答案

您始终可以推出自己的产品,但首先,该 gem 绝对有效。这是我所做的...

使用 gem

我将 gem 添加到 Rails 4.2 应用程序中:

# Gemfile
gem 'actionview-encoded_mail_to'

我安装了它:

$ bundle install

我进入了控制台:

$ rails console

我在控制台中提供了辅助方法:

include ActionView::Helpers::UrlHelper

使用与示例相同的参数调用了 mail_to 助手:

mail_to "me@domain.com", nil, replace_at: "_at_", replace_dot: "_dot_", class: "email"

...得到这个结果:

"<a class=\"email\" href=\"mailto:me@domain.com\">me_at_domain_dot_com</a>"

那个 "me_at_domain_dot_com" 看起来被正确地混淆了。你采取了哪些步骤?

滚动你自己的混淆

混淆电子邮件字符串将是一个微不足道的字符串替换,我们可以只使用sub:

def obfuscate_email(email, replace_at: '_at_', replace_dot: '_dot_')
email.sub("@", replace_at).sub ".", replace_dot
end

我在控制台中进行了测试:

obfuscate_email "me@example.com"
# => "me_at_example_dot_com"

您可以将该方法放在 application_helper.rb 中并在您的任何 View 中使用它:

link_to obfuscate_email(user.email), "mailto:#{user.email}"
# => "<a href=\"mailto:me@example.com\">me_at_example_dot_com</a>"

请注意,href 必须是未混淆的电子邮件才能正常工作。

走向更完整的 mail_to 助手

def obfuscated_mail_to(email, options = {})
link_to obfuscate_email(email), "mail_to:#{email}", options
end

在控制台中测试:

obfuscated_mail_to "me@example.com", class: "email"
=> "<a class=\"email\" href=\"mail_to:me@example.com\">me_at_example_dot_com</a>"

希望对您有所帮助!

关于ruby-on-rails - 如何使用 Ruby 4 的 gem 保护可见的电子邮件地址免受垃圾邮件的侵害?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39513598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com