在所有使用字符串的搜索键中,如果是,则消息与键匹配 string是字段的子字符串。匹配不区分大小写。
然而,当使用node-imap时,gmail似乎不会因为对TO字段的搜索而尊重这一点。我没有尝试过另一种编程语言,但考虑到节点模块如何发送命令,我怀疑gmail本身并不尊重与TO字段的部分匹配。
正在进行的简化示例:
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();
查看原始邮件,我可以在标题To: myGmailUser@gmail.com
中清楚地看到。混淆为什么完全匹配有效,但部分匹配却没有。
此外,在gmail内部,如果我搜索to:myGmailUser
,它会返回消息,但如果我搜索to:myGmail
则不会。虽然我想它会使用与IMAP不同的协议。