您可以连接到一个邮件帐户的并发客户端数量是否有任何限制?
我有一个应用程序可以在每个请求上打开一个新的 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,并等待
- 具有新 UID 的 FolderA.SetFlagAsync(),并使用 SEEN 标记邮件
- 等待 6. 和 7.
- INBOX.SetFlagAsync() 使用之前的 UID,并用 DELETED 标记邮件,等待操作
- 使用 INBOX.CloseAsync 和 FolderA.CloseAsync 关闭 IMAP 文件夹