Imap4req1中的“订阅”和“取消订阅”命令有什么用?

Pya*_*are 4 imap

Imap4req1中的“订阅”和“取消订阅”命令有什么用?我检查了RFC 3501,但无法理解其用法。当我编写以下命令时会发生什么

A SUBSCRIBE "MAILBOX_NAME"

A UNSUBSCRIBE "MAILBOX_NAME"
Run Code Online (Sandbox Code Playgroud)

服务器会将这些邮箱视为单独的邮箱吗?

样品:

请在下面检查一次,并告诉您区别

A LIST "" "*"
* LIST (\HasNoChildren) "/" "Bulk Mail"
* LIST (\HasNoChildren) "/" "Draft"
* LIST (\HasNoChildren) "/" "Inbox"
* LIST (\HasNoChildren) "/" "Sent"
* LIST (\HasNoChildren) "/" "Trash"
A OK LIST completed
A SUBSCRIBE INBOX
A OK SUBSCRIBE completed
A LSUB "" "*"
* LSUB (\HasNoChildren) "/" "Bulk Mail"
* LSUB (\HasNoChildren) "/" "Draft"
* LSUB (\HasNoChildren) "/" "Inbox"
* LSUB (\HasNoChildren) "/" "Sent"
* LSUB (\HasNoChildren) "/" "Trash"
A OK LSUB completed
Run Code Online (Sandbox Code Playgroud)

Max*_*Max 5

它们更改LSUB命令的输出。而已。 SUBSCRIBE将文件夹添加到LSUB命令的输出。 UNSUBSCRIBE将从LSUB命令输出中删除它们。即,LSUB仅显示已订阅的文件夹。

LIST 将始终显示所有文件夹。

例如,从所有订阅的文件夹开始:

a LIST "" *
* LIST (\HasNoChildren) "." "INBOX.Drafts"
* LIST (\HasNoChildren) "." "INBOX.Sent"
* LIST (\HasNoChildren) "." "INBOX.Trash"
* LIST (\Marked \HasChildren) "." "INBOX"
a OK LIST completed

a LSUB "" *
* LSUB (\Marked \HasChildren) "." "INBOX"
* LSUB (\HasNoChildren) "." "INBOX.Drafts"
* LSUB (\HasNoChildren) "." "INBOX.Sent"
* LSUB (\HasNoChildren) "." "INBOX.Trash"
a OK LSUB completed
Run Code Online (Sandbox Code Playgroud)

现在让我们退订INBOX.Sent

a UNSUBSCRIBE INBOX.Sent
a OK Folder unsubscribed.
a LSUB "" *
* LSUB (\Marked \HasChildren) "." "INBOX"
* LSUB (\HasNoChildren) "." "INBOX.Drafts"
* LSUB (\HasNoChildren) "." "INBOX.Trash"
a OK LSUB completed
Run Code Online (Sandbox Code Playgroud)

唯一不同的是INBOX.Sent已从LSUB输出中删除了它。请注意,LIST输出将完全不会受到影响。

现在让我们放回去:

a SUBSCRIBE INBOX.Sent
a OK Folder subscribed.
a LSUB "" *
* LSUB (\HasNoChildren) "." "INBOX.Sent"
* LSUB (\Marked \HasChildren) "." "INBOX"
* LSUB (\HasNoChildren) "." "INBOX.Drafts"
* LSUB (\HasNoChildren) "." "INBOX.Trash"
a OK LSUB completed
Run Code Online (Sandbox Code Playgroud)

它们通常用于客户端标记用户感兴趣的文件夹。