我有一个应用程序,人们可以在其中通过 IMAP 配置电子邮件帐户并执行阅读电子邮件、删除、移动等操作。我面临的问题是,在删除一封电子邮件时,其他电子邮件会被删除。经过调试,我发现有 2 个用户配置了相同的电子邮件帐户,他们正在从 2 个不同的浏览器中删除电子邮件而没有刷新页面。
实际上,在删除 imap_fetch_overview 返回的一封电子邮件后,msgno会发生更改,但在其他页面中,相同的邮件仍处于打开状态,并且具有旧的 msgno,并且在删除该电子邮件时,其他邮件将被删除。
删除前后检查 msgno
在上面的示例中,删除主题为“test 4”的邮件后,“test 6”、“test 7”、“test 8”的 msgno 被更改。现在,如果以前打开过邮件的其他用户尝试删除主题为“test 7”的邮件,实际上将删除主题为“test 8”的邮件。
要删除电子邮件,我正在使用以 msgno 作为参数的 imap_delete 函数。请帮助如何处理此类问题,或者有没有办法为每封不会更改的邮件获取唯一标识符,并且使用该标识符我还可以执行 IMAP 操作,如删除、移动等。