我们正在使用Java Mail API设置IMAP标志。有没有一种方法可以在Thunderbird或其他客户端中查看这些标志以进行调试?
您可以学习足够多的IMAP,以便使用socat进行尝试。这是一个样本交换,我用>标记了我的输入;,以及具有<:
$ socat READLINE ssl:imap.gmail.com:993,verify=0,crlf
< * OK Gimap ready for requests from [ip]
> a LOGIN user@gmail.com password
< * CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 UIDPLUS COMPRESS=DEFLATE ENABLE MOVE CONDSTORE ESEARCH
< a OK user@gmail.com User authenticated (Success)
> a SELECT INBOX
< * FLAGS (Answered Flagged Draft Deleted Seen $Forwarded)
< * OK [PERMANENTFLAGS (Answered Flagged Draft Deleted Seen $Forwarded *)] Flags permitted.
< * OK [UIDVALIDITY 7] UIDs valid.
< * 836 EXISTS
< * 0 RECENT
< * OK [UIDNEXT 36515] Predicted next UID.
< * OK [HIGHESTMODSEQ 3346208]
< a OK [READ-WRITE] INBOX selected. (Success)
> a FETCH 810:820 (FLAGS)
< * 810 FETCH (FLAGS (Flagged))
< * 811 FETCH (FLAGS ())
< * 812 FETCH (FLAGS (Seen))
< * 813 FETCH (FLAGS (Seen))
< * 814 FETCH (FLAGS (Seen))
< * 815 FETCH (FLAGS (Seen))
< * 816 FETCH (FLAGS (Seen))
< * 817 FETCH (FLAGS ())
< * 818 FETCH (FLAGS ())
< * 819 FETCH (FLAGS ())
< * 820 FETCH (FLAGS ())
< a OK Success
> a LOGOUT
< * BYE LOGOUT Requested
< a OK 73 good day (Success)
您至少需要浏览RFC 3501,以便了解UID和消息序列号,第6.4.5节将告诉您在FETCH命令中可以要求的各种内容,如标志、信封等。
每个命令前面都有一个任意标记。我在示例中只使用了a
。它旨在允许命令和响应的管道化,以便它们可以匹配。
LOGIN
命令只是用户名和密码,SELECT INBOX
为以下命令选择要使用的邮箱。FETCH获取一个序列列表(在本例中,我所说的消息序列号在810和820之间,以及一个要获取的项目列表,在这种情况下,只获取标志。
Get-Trojitá,默认情况下显示电子邮件标志。我不知道如何配置其他MUA来做同样的事情,但我怀疑它们中的许多也可以为您做这件事。