我正在设计一个使用gmail API的应用程序,以使用户能够通过gmail发送/查看电子邮件。为了将这些应用消息与帐户中的其他消息区分开来,我们的想法是使用MyAppLabel
标签标记我们从应用发送的消息。然后,当我们向用户显示其收件箱时,我们会像in:inbox AND label:MyAppLabel
这样进行过滤,因此我们只向他们显示相关的电子邮件。
问题是我们通过gmail API在应用中发送了一条消息,并用MyAppLabel
标记了该消息,但是当收件人通过其外部客户端回复时,线程中的传入消息显然没有我们的标签。总之:初始传出消息的标签为“ SENT,MyAppLabel”,而回复的标签为“ INBOX”。如果现在使用过滤器in:inbox AND label:MyAppLabel
,则不会返回任何结果,因为该线程中没有消息同时具有收件箱和自定义标签。如果我只是使用in:inbox
,那么我会收到与该应用程序无关的其他消息。如果我只是使用label:MyAppLabel
,那么我通常也会收到非收件箱中的邮件(例如,事件发送的邮件没有回复,而收件箱中并不自然存在)
我真正想要的是一个查询,该查询赋予我所有线程至少具有一个标记为“ INBOX”的消息和至少一个标记为“ MyAppLabel”的消息,即使在一个和两个标记上均未找到这两个标记相同的消息,但线程中的消息不同。
这可能吗?还是有其他我可以用来解决这个问题的策略?