如何阻止特定的电子邮件地址

时间:2017-04-05 21:13:46

标签: javascript jquery jquery-validate

我使用jQuery Validation Plugin并且我需要阻止某些垃圾邮件地址停止发送经常性的潜在客户。

尝试谷歌并阅读插件文档,但我是JS的初学者,所以我无法找到我需要的任何东西。

P.S。不是说无效的电子邮件地址,而是经常有效的电子邮件地址。

2 个答案:

答案 0 :(得分:0)

  

请注意,您应始终仔细检查用户输入服务器端。恶意用户将始终能够绕过客户端设置的规则。此外,通过在JavaScript中执行此操作,您将公开您的禁止电子邮件列表,并使黑客更容易看到他们应该做些什么来绕过您的规则。

话虽如此,您可以加载jQuery Validate's Additional methods plugin并使用addMethod创建自己的规则:

// Banning domains
var bannedDomains = ["spam.com", "junk.com"];

$.validator.addMethod('domainNotBanned', function(value, elem, param) {
  var domain = value.split('@')[1];
  return bannedDomains.indexOf(domain) < 0;
}, 'Emails from this domain are not allowed.');

// Banning specific addresses
var bannedEmails = ["mean@hacker.com", "kim.kardashian@gmail.com"];

$.validator.addMethod('emailNotBanned', function(value, elem, param) {
  return bannedEmails.indexOf(value) < 0;
}, 'This email address is banned.');

// Applying these rules
$('#myForm').validate({
  rules: {
    email: {
      required: true,
      email: true,
      domainNotBanned: true,
      emailNotBanned: true
    }
  }
});

// Just for the demo
$('#myForm').on('submit', function(e) {
  e.preventDefault();
  alert("This email is valid.");
  return false;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/jquery.validation/1.16.0/jquery.validate.min.js"></script>
<script src="https://cdn.jsdelivr.net/jquery.validation/1.16.0/additional-methods.min.js"></script>

<form id="myForm" name="myForm" action="#" method="POST">                                                                                                                                                                                                                     <style>#email-error { display: block; color: red; }</style>
  <label for="email">Email: </label>
  <input id="email" name="email" type="email" minlength="6"/><br>
  <input type="submit" value="Submit">
</form>

答案 1 :(得分:-1)

您可以在数据库中创建一个表,以保存您不想要的电子邮件和域,并在执行下一步之前检查它们。