当前位置: 首页 > 知识库问答 >
问题:

无法按SearchTerm搜索outlook电子邮件

弘兴言
2023-03-14

我写了一个示例代码,在给定的日期范围内带来Outlook电子邮件帐户的一个文件夹的电子邮件。我正在使用Java邮件API 1.5和Java7。

为了获取消息,我在下面写了自1970年1月1日至2013年10月30日之前搜索电子邮件的代码-

Date FutureDate = new Date(2013 - 1900, 9, 30, 00, 00, 00);
Date PastDate = new Date(1970 - 1900, 0, 1);
SearchTerm newerThen = new ReceivedDateTerm(ComparisonTerm.LE, FutureDate);
SearchTerm olderThen = new ReceivedDateTerm(ComparisonTerm.GE, PastDate);
SearchTerm andTerm = new AndTerm(olderThen, newerThen);
Message[] msg = folder.search(andTerm);

此代码返回的消息长度为零,即自1970年1月1日至2013年10月30日之前未找到任何消息,但我的文件夹包含204封介于此范围的电子邮件。

令人惊讶的是,相同的代码可以很好地搜索Gmail文件夹以及雅虎IMAP帐户的电子邮件。

以下是包含204封电子邮件但未通过日期范围搜索词搜索电子邮件的Outlook“收件箱”文件夹的协议跟踪-

DEBUG: setDebug: JavaMail version ${mail.version}
DEBUG: getProvider() returning javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc.,${mail.version}]
DEBUG IMAPS: mail.imap.fetchsize: 16384
DEBUG IMAPS: mail.imap.ignorebodystructuresize: false
DEBUG IMAPS: mail.imap.statuscachetimeout: 1000
DEBUG IMAPS: mail.imap.appendbuffersize: -1
DEBUG IMAPS: mail.imap.minidletime: 10
DEBUG IMAPS: trying to connect to host "imap-mail.outlook.com", port 993, isSSL true
* OK Outlook.com IMAP4rev1 server version 17.3.0.0 ready (BLU451-IMAP84)
A0 CAPABILITY
* CAPABILITY IMAP4rev1 CHILDREN ID NAMESPACE AUTH=PLAIN AUTH=XOAUTH2 SASL-IR
A0 OK CAPABILITY completed
DEBUG IMAPS: AUTH: PLAIN
DEBUG IMAPS: AUTH: XOAUTH2
DEBUG IMAPS: protocolConnect login, host=imap-mail.outlook.com, user=mymail@outlook.com, password=<non-null>
DEBUG IMAPS: AUTHENTICATE PLAIN command trace suppressed
DEBUG IMAPS: AUTHENTICATE PLAIN command result: A1 OK mymail@outlook.com authenticated successfully
A2 CAPABILITY
* CAPABILITY IMAP4rev1 CHILDREN ID NAMESPACE
A2 OK CAPABILITY completed
Store gmail:imaps://mymail%40outlook.com@imap-mail.outlook.com
DEBUG IMAPS: connection available -- size: 1
A3 SELECT Inbox
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
* 204 EXISTS
* 0 RECENT
* OK [UNSEEN 101] Message 101 is first unseen
* OK [UIDVALIDITY 376204] UIDs valid
* OK [UIDNEXT 100235] Predicted next UID
* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft)] Limited
A3 OK [READ-WRITE] SELECT completed.
TOTAL MAILS: 204
A4 SEARCH DELETED ALL
* SEARCH 1
A4 OK SEARCH Completed
FOLDER: Inbox
FUTURE DATE: Wed Oct 30 00:00:00 IST 2013
PAST DATE: Thu Jan 01 00:00:00 IST 1970
A5 SEARCH OR SINCE 1-Jan-1970 ON 1-Jan-1970 OR BEFORE 30-Oct-2013 ON 30-Oct-2013 ALL
* SEARCH
A5 OK SEARCH Completed
MESSAGE FOUND: 0

雅虎收件箱的协议跟踪仅包含一封电子邮件,并且使用搜索词搜索电子邮件-

DEBUG: setDebug: JavaMail version ${mail.version}
DEBUG: getProvider() returning javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc.,${mail.version}]
DEBUG IMAPS: mail.imap.fetchsize: 16384
DEBUG IMAPS: mail.imap.ignorebodystructuresize: false
DEBUG IMAPS: mail.imap.statuscachetimeout: 1000
DEBUG IMAPS: mail.imap.appendbuffersize: -1
DEBUG IMAPS: mail.imap.minidletime: 10
DEBUG IMAPS: trying to connect to host "imap.mail.yahoo.com", port 993, isSSL true
* OK [CAPABILITY IMAP4rev1 ID NAMESPACE X-ID-ACLID UIDPLUS LITERAL+ CHILDREN XAPPLEPUSHSERVICE XYMHIGHESTMODSEQ AUTH=PLAIN AUTH=LOGIN AUTH=XYMCOOKIE AUTH=XYMECOOKIE AUTH=XYMCOOKIEB64 AUTH=XYMPKI] IMAP4rev1 imapgate-0.7.68_14.446672 imap411.mail.bf1.yahoo.com
DEBUG IMAPS: AUTH: PLAIN
DEBUG IMAPS: AUTH: LOGIN
DEBUG IMAPS: AUTH: XYMCOOKIE
DEBUG IMAPS: AUTH: XYMECOOKIE
DEBUG IMAPS: AUTH: XYMCOOKIEB64
DEBUG IMAPS: AUTH: XYMPKI
DEBUG IMAPS: protocolConnect login, host=imap.mail.yahoo.com, user=mymail@yahoo.com, password=<non-null>
DEBUG IMAPS: AUTHENTICATE PLAIN command trace suppressed
DEBUG IMAPS: AUTHENTICATE PLAIN command result: A0 OK AUTHENTICATE completed - Mailbox size in bytes is 33054009
A1 CAPABILITY
* CAPABILITY IMAP4rev1 ID NAMESPACE X-ID-ACLID UIDPLUS LITERAL+ XAPPLEPUSHSERVICE XYMHIGHESTMODSEQ
A1 OK CAPABILITY completed
Store gmail:imaps://mymail%40yahoo.com@imap.mail.yahoo.com
DEBUG IMAPS: connection available -- size: 1
A2 SELECT Inbox
* 1 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 1379569582] UIDs valid
* OK [UIDNEXT 7322] Predicted next UID
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft)] Permanent flags
* OK [HIGHESTMODSEQ 5940064101685223608]
A2 OK [READ-WRITE] SELECT completed; now in selected state
TOTAL MAILS: 1
A3 SEARCH DELETED ALL
* SEARCH
A3 OK SEARCH completed
FOLDER: Inbox
FUTURE DATE: Wed Oct 30 00:00:00 IST 2013
PAST DATE: Thu Jan 01 00:00:00 IST 1970
A4 SEARCH OR SINCE 1-Jan-1970 ON 1-Jan-1970 OR BEFORE 30-Oct-2013 ON 30-Oct-2013 ALL
* SEARCH 1
A4 OK SEARCH completed
MESSAGE FOUND: 1

请指导我在何处进行更改以通过使用日期范围创建的搜索词获取电子邮件?outlook是否不支持使用日期搜索词进行搜索?

谢谢

尼拉姆·夏尔马

共有2个答案

袁谭三
2023-03-14

在使用imapsync迁移邮件时,我偶然发现了一个类似的问题,imapsync还使用IMAP搜索来实现邮件过滤。

通过IMAPSEARCH搜索outlook.com(参见RFC 3501,第6.4.4节)通常可以工作。但根据我的经验,专门搜索特定日期之前的邮件似乎在某些文件夹中不起作用。例如,通过Sent文件夹上的SENTBEFORE过滤outlook.com.我在搜索解决方案时发现了您的问题。

解决方法似乎是使用IMAP搜索键之前的,该键不使用消息的日期标题,而是使用内部IMAP服务器日期。(虽然我不知道如何以及是否将其转换为JavaMail API。)

似乎有些事情还没有按outlook.com.的规范执行

裘禄
2023-03-14

看起来像是outlook。com服务器损坏;请向Microsoft报告此问题。

 类似资料:
  • 我编写了一个Java应用程序,通过LDAP搜索Active directory以获取用户信息。我有一个传入的自定义Person类实例列表。在它我有DN或电子邮件定义。我正在相应地修改搜索条件。代码如下: 代码工作时没有错误,但当指定DN时,它确实找到了一个人,但当定义email时,它什么也找不到。但是,如果复制生成的筛选器字符串并将其以以下形式传递给ldapsearch命令: ldapsearch

  • 我们使用谷歌应用程序进行工作,我们希望能够跟踪用户的gmail活动,比如他们收到多少封电子邮件,回复多少封电子邮件 我曾经使用Google Admin Reports API:Users Usage Report来获取统计数据,但结果不准确,并且它不会返回详细的消息列表。 谷歌管理控制台上的电子邮件日志搜索正是我想要的,但我不确定是否有电子邮件日志搜索API可用,以便我们可以循环搜索所有用户并检索

  • 问题内容: 我正在使用。 使用发送电子邮件(通过)的最佳方法是什么? 问题答案: 有关使用Outlook的解决方案,请参见下面的TheoretiCAL答案。 否则,请使用python随附的smtplib。请注意,这将要求您的电子邮件帐户允许smtp,默认情况下不一定启用此功能。 编辑: 此示例使用保留域,如RFC2606中所述 为了使它真正与gmail配合使用,Doe先生需要进入gmail中的选项

  • 我的VBA代码(工作): 谢谢你在这方面的帮助,蒂姆

  • 问题内容: 我正在编写新闻稿脚本,并且需要在地址中实施搜索。我用FULLTEXT为该表编制了索引,但是当我执行以下查询时: 我得到奇怪的结果。它显示“ example.com”上的所有电子邮件以及用户名为“ name”的所有电子邮件。例如我得到: 我重新编写了查询,以使用LIKE“ %name@example.com%”,但是对于一个大表,它需要花费大量的时间才能完成。有解决方案吗?我想在搜索时仅

  • Im正在尝试分析outlook中的.msg文件以获取MIME内容,以便将该文件另存为EML。我正在使用Exchange Web服务在EML通过Exchange服务器上的日志收件箱时保存EML,但有些电子邮件需要在事后通过outlook add in保存,不过将它们变成EML/MIME格式似乎比较困难。 任何洞察力都是非常有用的。