Node.js 在节点中使用IMAP将gmail部分搜索到字段不工作
根据: 在所有使用字符串的搜索键中,如果 字符串是字段的子字符串。匹配不区分大小写 然而,在使用时,gmail似乎并不尊重这一点,因为它是针对“收件人”字段进行搜索的。我还没有尝试过其他编程语言,但考虑到节点模块是如何发送命令的,我怀疑gmail本身没有考虑到与TO字段的部分匹配 正在发生的事情的简化示例: 查看原始消息时,我可以在标题中清楚地看到:myGmailUser@gmail.com. 困惑于为什么完全匹配有效,而部分匹配无效Node.js 在节点中使用IMAP将gmail部分搜索到字段不工作,node.js,email,search,imap,gmail-imap,Node.js,Email,Search,Imap,Gmail Imap,根据: 在所有使用字符串的搜索键中,如果 字符串是字段的子字符串。匹配不区分大小写 然而,在使用时,gmail似乎并不尊重这一点,因为它是针对“收件人”字段进行搜索的。我还没有尝试过其他编程语言,但考虑到节点模块是如何发送命令的,我怀疑gmail本身没有考虑到与TO字段的部分匹配 正在发生的事情的简化示例: 查看原始消息时,我可以在标题中清楚地看到:myGmailUser@gmail.com. 困惑于为什么完全匹配有效,而部分匹配无效 此外,在gmail本身中,如果我搜索to:myGmail用户
此外,在gmail本身中,如果我搜索to:myGmail用户,它会返回消息,但如果我搜索to:myGmail,则不会返回消息。尽管我认为它将使用与IMAP不同的协议。标准可能会说一件事,但并非每个系统都完全符合标准。我相信GMail只能搜索整个令牌。你可以通过IMAP直接连接并发出命令来验证这是否是GMail服务器的问题。我的IMAPTalk客户端是在Windows上执行此操作的一种方法:
var Imap = require('imap');
var imap = new Imap(
user: 'myGmailUser',
password: 'myGmailPassword',
host: 'imap.gmail.com',
port: 994,
tls: true,
tlsOptions: {rejectUnauthorized: false}
);
imap.once('ready', function() {
imap.openBox('[Gmail]/All Mail', function(err, box) {
imap.search(['TO','myGmail'], function(err, searchResult) {
// no results
});
imap.search(['TO','myGmailUser@gmail.com'], function(err, searchResult) {
// I get my messages as results
});
}
});
imap.connect();