来自网址
https://javamail.java.net/nonav/docs/api/com/sun/mail/pop3/package-summary.html,
您还可以预先获取所有消息的所有UID:
FetchProfile fp = new FetchProfile();
fp.add(UIDFolder.FetchProfileItem.UID);
folder.fetch(folder.getMessages(), fp);
然后使用上面的技术获取每条消息的UID。这与IMAP支持的UIDFolder接口使用的技术类似,但请注意,POP3 UID是字符串,而不是像IMAP UID这样的整数。有关详细信息,请参阅POP3规范。
由此,https://www.ietf.org/rfc/rfc1939.txt,
在第7号中,有一个我需要的例子。
示例:
S: +OK POP3 server ready <1896.697170952@dbc.mtview.ca.us>
C: APOP mrose c4c9334bac560ecc979e58001b3e22fb
S: +OK maildrop has 1 message (369 octets)
In this example, the shared secret is the string `tan-
staaf'. Hence, the MD5 algorithm is applied to the string
<1896.697170952@dbc.mtview.ca.us>tanstaaf
which produces a digest value of
c4c9334bac560ecc979e58001b3e22fb //this is what we need in Java
在此之后,我们如何获取每条消息的MessageID / UID?
我需要的示例消息ID。不推荐使用的fuego.mail库之前提供了这个:
<F855F5879C6E754E9DE37F2E7D0762327C942B43@GADC-EMB099.ap.abc.com>
更新 我有一个3位整数,即使用此
时为561Store store = emailSession.getStore(MAILSTORETYPE);
store.connect(HOST, USERNAME, PASSWORD);
Folder emailFolder = store.getFolder("INBOX");
emailFolder.open(Folder.READ_ONLY);
FetchProfile fp = new FetchProfile();
fp.add(UIDFolder.FetchProfileItem.UID);
emailFolder.fetch(emailFolder.getMessages(), fp);
POP3Folder pf =(POP3Folder)emailFolder;
Message[] messages = emailFolder.getMessages();
for (int i = 0, n = messages.length; i < n; i++) {
Message message = messages[i];
String uid = pf.getUID(message);
System.out.println(uid);