【问题标题】:PHP IMAP Search With Regex使用正则表达式的 PHP IMAP 搜索
【发布时间】:2015-12-12 01:07:14
【问题描述】:

我正在做一个项目,我需要使用特定条件搜索 IMAP 电子邮件。

我需要检查来自模式电子邮件地址的电子邮件。

我需要过滤包含特定长度数字的电子邮件地址,例如 8 或 10,并且数字必须按顺序排列。

我的意思是,如果我选择 6 个字符,那么:

abcd154632xxx@asdf.com
154892@sdfds.com
123456xxx@gmail.com

上面的 3 个例子可以工作,但 a1b2c3d4e5f6@df.com 不能工作,因为它有 6 个数字,但不是 6 位数字。

所以,我尝试了以下:

imap_search($conn, 'From "*######*@*"', SE_UID);

但它失败了。

我怎样才能做到这一点?正则表达式会为此工作吗?

【问题讨论】:

  • 没有地方说 imap 支持通配符/正则表达式进行搜索。您可能必须获取所有 From 标题行并在您的代码中搜索。
  • @MarcB,感谢您的回复先生,但问题是我有数千封电子邮件要处理,如果处理完所有邮件将需要数十年的时间:( 没有更短/更快的方法吗?跨度>
  • 不,没有。您要么必须使用基本的远程搜索工具,要么获取所有标题并自己搜索它们。此外,如果您不逐个获取它们,下载“数千个”标题不需要数十年的时间。 Thunderbird 可以在几分钟内同步数千个邮箱的标题。
  • @Max,感谢您的回复先生,我的意思是 30-50+ 数千封电子邮件。能分分钟搞定吗?
  • 取决于您的互联网连接以及您的实现方式。

标签: php regex imap


【解决方案1】:

我不知道 imap_search 集成,但以下正则表达式匹配您想要的:

\d{6}.*@

它将搜索 6 个连续的数字,后跟至少一个 @。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-11
    • 2013-06-06
    • 2011-02-21
    • 2011-05-20
    • 2011-09-02
    • 1970-01-01
    • 2013-11-02
    • 1970-01-01
    相关资源
    最近更新 更多