一个邮件帐户可以连接的并发客户端数量是否有限制?
我有一个应用程序,它会根据每个请求打开一个新的 ImapClient。 ImapClient将打开INBOX和FolderA,并通过UID将邮件从一个移动到另一个。多个客户端永远不会同时访问同一封邮件,但可能会同时移动同一帐户中的多封邮件。
当我使用 Exchange 同时连接大约 5 个以上的客户端时,似乎会发生错误,并响应许多不同的错误,如下所示: “IMAP 服务器以‘NO’响应回复‘COPY’命令。” “IMAP 服务器以“NO”响应回复“EXPUNGE”命令。”
当我移动邮件时,我会执行以下顺序:
- 使用新的 ImapClient
- 连接并验证客户端
- 获取INBOX和FolderA的FolderAsync,然后等待响应
- 使用 OpenSync() 和 ReadWrite 打开收件箱,然后等待任务。
- 使用 FetchAsync() 获取 INBOX,循环遍历结果以根据 MessageID 查找所需的 UID
- 调用 MoveToAsync() 将基于 uid 的邮件移动到FolderA,并等待
- FolderA.SetFlagAsync() 使用新的 UID,并使用 SEEN 标记邮件
- 正在等待 6 号和 7 号。
- INBOX.SetFlagAsync() 使用之前的 UID,并将邮件标记为 DELETED,等待操作
- 使用 INBOX.CloseAsync 和 FolderA.CloseAsync 关闭 IMAP 文件夹
最佳答案
没有标准定义 IMAP 服务器允许的最大客户端数量。我读到 Thunderbird 最多使用 5 个并发连接(这可能表明他们发现这对于大多数 IMAP 服务器来说效果很好),因此这可能可以解释您所看到的内容。
关于c# - MailKit 和同一邮件帐户上的多个客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36477474/