我需要一个与 Perl 兼容的正则表达式来使用 smtp-gate 过滤我的电子邮件。我只想允许一个域(“mydomain.com”)并拒绝其他所有域。我该如何以万无一失的方式做到这一点? (regex_reject_mail_from)
我知道这个问题一半属于服务器故障,但基本上它是一个 Perl 正则表达式问题,所以我认为它更适合 stackoverflow。
编辑:
这应该匹配,这样我就可以拒绝它:
"Someone" <<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="c4b7aba9a1abaaa184b7aba9a1a0aba9a5adaaeaa7aba9" rel="noreferrer noopener nofollow">[email protected]</a>>
这不应该匹配:
"Me" <<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="503d35103d29343f3d31393e7e333f3d" rel="noreferrer noopener nofollow">[email protected]</a>>
这也不应该匹配:
<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="87fee8f2c7eafee3e8eae6eee9a9e4e8ea" rel="noreferrer noopener nofollow">[email protected]</a>
-
最佳答案
我建议如下:
\b[A-Z0-9._%+-]+@(?!mydomain\.com)[A-Z0-9.-]+\.[A-Z]{2,6}\b
使用/i 选项使其不区分大小写。
这将匹配 @
后没有 mydomain.com
的大多数有效(和一些无效)电子邮件地址。请记住,使用正则表达式进行电子邮件验证很困难。
关于regex - 如何在 smtp-gate 中仅接受来自一个域的邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1678922/