Regex 将G套件发送邮件限制为N个收件人

Regex 将G套件发送邮件限制为N个收件人,regex,email,routing,google-workspace,Regex,Email,Routing,Google Workspace,我正在尝试创建一个路由规则,如果收件人(收件人:Cc:和密件抄送:)超过某个限制,则通过正则表达式可以阻止发送电子邮件 e、 g (^To:(.*.*)+(\n| \r\n.\r)^抄送:(.*.*)(\n| \r\n.\r)^密件抄送:(.*.*)(\n| \r\n.\r)){4,} MIME版本:1.0 日期:2019年12月2日星期一18:51:05+0100 消息ID: 主题:测试 发件人:姓名 致:姓名 抄送:姓名 密件抄送:姓名 内容类型:多部分/相关;边界=“00000000000

我正在尝试创建一个路由规则,如果收件人(收件人:Cc:和密件抄送:)超过某个限制,则通过正则表达式可以阻止发送电子邮件

e、 g

(^To:(.*.*)+(\n| \r\n.\r)^抄送:(.*.*)(\n| \r\n.\r)^密件抄送:(.*.*)(\n| \r\n.\r)){4,}
MIME版本:1.0
日期:2019年12月2日星期一18:51:05+0100
消息ID:
主题:测试
发件人:姓名
致:姓名
抄送:姓名
密件抄送:姓名
内容类型:多部分/相关;边界=“00000000000046fe3e0598bc3916”
此正则表达式的问题在于,仅限于以下字段的出现次数:to、Cc和Ccn在每行中找到的第一个值处停止, 因此,只有当我更改为{3,}时,它才会匹配


但是,我无法在不限制这些字段的情况下计算标题中的电子邮件地址,否则我可以在标题中找到几个分散的电子邮件地址,如msgId,在正文或签名中

有什么限制?举个例子。这将使每个收件人/抄送/密件抄送行最多发送5封电子邮件。它要求所有三行都是连续的。它可以根据需要进行更改<代码>(?m)(?:^To:(?:[^-\r\n]*@){0,5}[^-\r\n]*\s*^Cc:(?:[^-\r\n]*@){0,5}[^-\r\n]*\s*\Bcc:(?:[^-\r\n]*@){0,5}[^-\r\n]*\s*.{3}/code>还有,计算地址总数的唯一方法,因此,限制它们的方法是分两步进行。首先,捕获/匹配那些行
(?m)(?:^到:.*\s*.^Cc:.*\s*.^Bcc:.*\s*){3}
,然后计算该字符串中的@数。不幸的是,使用G套件的路由规则,我不能分两步完成。此时我必须设置的限制是20个收件人,所有3个字段的计数必须是唯一的-到:Cc:和Bcc:,因此,在每种情况下,无论收件人在哪里,规则都会阻止超过20个收件人的传出邮件
(^To:(.*@.*)+(\n|\r\n|\r)|^Cc:(.*@.*)(\n|\r\n|\r)|^Bcc:(.*@.*)(\n|\r\n|\r)){4,}

MIME-Version: 1.0
Date: Mon, 2 Dec 2019 18:51:05 +0100
Message-ID: <msgID-00000-11111-22222A@mail.gmail.com>
Subject: Test
From: Name <email@example.com>
To: Name <email@example.com>, Name <email@example.com>
Cc: Name <email@example.com>
Bcc: Name <email@example.com>
Content-Type: multipart/related; boundary="00000000000046fe3e0598bc3916"