GMAIL API 的 PHP 实现 - 使用多个字符串进行过滤

Posted

技术标签:

【中文标题】GMAIL API 的 PHP 实现 - 使用多个字符串进行过滤【英文标题】:Php implementation for GMAIL API - filtering using multiple strings 【发布时间】:2018-11-17 21:20:17 【问题描述】:

对于 GMAIL API - 有没有一种方法可以在查询中使用多个字符串,而无需单独遍历每个字符串。以下是一些用例:

1 - 获取包含 domain1.com 或 domain2.com 的电子邮件的所有结果

$list = $service->users_messages->listUsersMessages('me',
  ['maxResults' => 100, 'q' => 'domain1.com  domain2.com']);

2 - 获取包含 domain1.com 或 domain2.com 且每个域专门匹配一个字符串的电子邮件的所有结果

$list = $service->users_messages->listUsersMessages('me',
  ['maxResults' => 100, 
   'q' => 'domain1.com statement ready, domain2.com view your statement']);

3 - 获取与特定字符串匹配的电子邮件的所有结果

$list = $service->users_messages->listUsersMessages('me',
  ['maxResults' => 100, 
   'q' => 'statement ready, view your statement']);

以上所有场景中的逗号都是字符串的分隔符。如果我有一个域或字符串,则查询工作正常。但它无法返回包含两个字符串的任何结果,例如语句准备就绪并查看您的语句。

【问题讨论】:

【参考方案1】:

您想将查询用作“AND”和“OR”。如果我的理解是正确的,这个答案怎么样?作为示例字符串,这里使用“sample1”、“sample2”和“sample3”。

模式一:

如果要检索包含“sample1”、“sample2”和“sample3”所有字符串的邮件,可以使用以下查询。它使用空间。

sample1 sample2 sample3

你也可以这样使用。当字符串被括号括起来时,括号中的字符串用作“AND”。

(sample1 sample2 sample3)

模式二:

如果要检索至少包含“sample1”、“sample2”和“sample3”字符串之一的邮件,可以使用以下查询。 OR 是大写字母。

sample1 OR sample2 OR sample3

你也可以这样使用。当字符串被大括号括起来时,大括号中的字符串被用作“OR”。

sample1 sample2 sample3

模式3:

从模式 1 和 2 中,如果您想检索包含“sample1”和“sample2”的邮件或包含“sample3”的邮件,您可以使用以下查询。

(sample1 sample2) sample3

参考:

Search operators you can use with Gmail

【讨论】:

这些运算符用于 Gmail 网络界面,而不是 GMAIL API。我尝试过类似的组合,但没有奏效。不过感谢您的尝试。 @user9465677 如果我误解了你的问题,我很抱歉。对不起给您带来不便。例如,在我的环境中,我可以在qgmail.users.messages.list 中使用(sample1 sample2) sample3sample1 OR sample2 让我玩弄它。可能是我做错了什么。 @user9465677 如果不起作用,当您提供示例查询时,我想在我的环境中确认它。你也可以在developers.google.com/gmail/api/v1/reference/users/messages/…进行测试 模式 1 和 2 我能够通过将所有 AND 语句放在括号中然后 OR 外部来使它们与一些一起工作。我没有模式 3 的用例。对我来说学习的是字符串不只是混合和匹配,您必须非常具体地了解它们。

以上是关于GMAIL API 的 PHP 实现 - 使用多个字符串进行过滤的主要内容,如果未能解决你的问题,请参考以下文章

使用 gmail-api 和 google-api-php-client 发送电子邮件

使用带有 Laravel PHP 的 Gmail Api 读取网站上的所有 gmail 收件箱,然后回复特定的电子邮件

通过 Gmail API 发送电子邮件时应用 MSO 条件语句

无法使用 Gmail PHP API 获取电子邮件正文

Gmail API - PHP - 使用服务帐户发送电子邮件

使用 PHP 向使用 Gmail API 发送的电子邮件添加密件抄送