为什么这两个IMAP搜索结果彼此不同?

问题描述 投票:0回答:1

我正在使用imaplib,并尝试获取具有特定主题标头值的电子邮件。

我的代码:

    res, tmp = self.mail.uid('search', None, 'HEADER Subject "SUBJECT_HERE"')
    print(tmp)
    print(res)

    print("test 2 goes:")
    rr, tt = self.mail.search(None, 'HEADER Subject "SUBJECT_HERE"')
    print(tt)
    print(rr)

结果:

[b'225 232 323 324 346 366 382 419 420 425 450 463 517 607 670 751 833911 1043 1129 1133 1134 1287 1350 1799 1854 1957 1960 1962 1991 20052040 2071 2110 2119 2121 2153 2158 2182 2188 2189 2228 2230 2239 22492334 2335 2372 2378 2396 2435 2497 2567 2568 2573 2574 2575 2632 26332634 2648 2649 2709 2785 2819 2821 2828 2829 2868 2885 2895 2902 29062920 2993 2997 2998 3000 3001 3009'] OK测试2:[b'220 227 318 319 340 360 376 413 414 419 444 457 511 601 664 745 827905 1037 1123 1127 1128 1281 1344 1793 1848 1951 1954 1956 1985 19992034 2065 2104 2113 2115 2147 2152 2176 2182 2183 2222 2224 2233 22432328 2329 2366 2372 2390 2429 2491 2561 2562 2567 2568 2569 2625 26262627 2641 2642 2702 2778 2812 2814 2821 2822 2861 2878 2888 2895 28992913 2986 2990 2991 2993 2994 3002'] OK

我认为这两个命令产生相同的结果。

但是如上所示,这两个获取不同的电子邮件。

有什么区别?

email imap imaplib
1个回答
1
投票

一个(SEARCH)返回消息序列号(MSN),该序列号从1到N进行编号,并随着添加和删除消息而改变。如果您删除之前的消息,则现在为5号的消息明天可能就是4号。

另一个(UID SEARCH)返回UID,随着消息被删除,这些ID不会改变。它们是两组完全不同的标识符。具有UID 5的消息将保持为UID 5,直到将其删除(或移动等)。

© www.soinside.com 2019 - 2024. All rights reserved.