You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Javascript实现自定义禁止发送邮箱列表功能?

JavaScript 自定义禁止发送邮箱列表实现方案

核心实现逻辑

维护精准的指定邮箱黑名单,在发信流程的前置环节做精确完全匹配校验,仅匹配到列表内的邮箱时才拦截,不会屏蔽整个域名。

前端校验代码示例(用户发信前触发)

// 1. 定义禁止发送的邮箱黑名单,可根据需求灵活增删
const BLOCKED_RECIPIENTS = [
  'ceo@yourcompany.com',
  'cfo@yourcompany.com',
  'board@yourcompany.com'
].map(item => item.toLowerCase()) // 统一转小写避免大小写匹配问题

// 2. 邮箱拦截校验函数
function checkBlockedRecipient(recipientEmails) {
  // 支持单个或多个收件人校验,多个收件人用数组传入
  const recipients = Array.isArray(recipientEmails) ? recipientEmails : [recipientEmails]
  // 遍历所有收件人校验是否在黑名单中
  return recipients.some(email => {
    const formattedEmail = email.trim().toLowerCase()
    return BLOCKED_RECIPIENTS.includes(formattedEmail)
  })
}

// 3. 发信按钮触发逻辑示例
function handleSendEmail() {
  const toEmail = document.getElementById('recipient-input').value
  // 多收件人场景可以按分隔符(逗号、分号)切割成数组再传入
  // const toEmailList = toEmail.split(/[,;]/).map(item => item.trim()).filter(Boolean)
  
  if (checkBlockedRecipient(toEmail)) {
    alert('抱歉,您无权向该收件人发送邮件,请联系行政团队走特殊申请流程')
    return // 拦截发信流程
  }
  // 校验通过,继续执行发信逻辑
  sendEmailRequest()
}

后端校验补充(Node.js 示例)

前端校验仅做友好提示,必须在后端接口层做二次校验,避免前端逻辑被恶意绕过:

// 后端接口接收发信请求时的校验逻辑
app.post('/api/send-email', (req, res) => {
  const { recipients, content } = req.body
  // 和前端保持一致的黑名单和校验逻辑
  const BLOCKED_RECIPIENTS = [
    'ceo@yourcompany.com',
    'cfo@yourcompany.com',
    'board@yourcompany.com'
  ].map(item => item.toLowerCase())

  const hasBlocked = recipients.some(email => {
    const formatted = email.trim().toLowerCase()
    return BLOCKED_RECIPIENTS.includes(formatted)
  })

  if (hasBlocked) {
    return res.status(403).json({
      code: 403,
      msg: '无权向指定收件人发送邮件'
    })
  }
  // 校验通过,执行发信逻辑
})

注意事项

  • 所有邮箱匹配前统一做去空格、转小写处理,避免因为输入空格、大小写差异导致匹配失效
  • 目前逻辑为精确完全匹配,不会拦截同域名下的其他非禁止邮箱,符合不需要屏蔽整域名的需求
  • 后续如果需要新增禁止邮箱,只需要更新BLOCKED_RECIPIENTS数组即可,不需要修改核心校验逻辑
  • 如果需要支持通配符规则(比如拦截所有*@exec.yourcompany.com后缀的邮箱),可以把匹配逻辑修改为正则匹配即可

内容的提问来源于stack exchange,提问作者Jane Max Meng

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 06:21:00