IMAP を介して電子メール アカウントを構成し、電子メールの読み取り、削除、移動などの操作を実行できるアプリケーションが 1 つあります。1 つの電子メールを削除すると、他の電子メールが削除されるという問題に直面しています。デバッグ後、2 人のユーザーが同じメール アカウントを設定しており、ページを更新せずに 2 つの異なるブラウザーからメールを削除していることがわかりました。
実際には、 imap_fetch_overviewによって返された 1 つのメール msgno を削除すると変更されますが、他のページでは古い msgno を持つ同じメールがまだ開いており、そのメールを削除すると他のメールが削除されます。
削除前後の msgno を確認 する
上記の例では、件名が「test 4」のメールを削除すると、「test 6」、「test 7」、「test 8」の msgno が変更されます。以前にメールを開いた他のユーザーが件名「test 7」のメールを削除しようとすると、実際には件名「test 8」のメールが削除されます。
メールを削除するには、msgno をパラメーターとして受け取る imap_delete 関数を使用しています。このような問題を処理する方法を手伝ってください。または、変更されない各メールの一意の識別子を取得する方法があり、その識別子を使用して、削除、移動などの IMAP 操作も実行できます。