OpenPop正在删除消息

本文关键字:消息 删除 OpenPop | 更新日期: 2023-09-27 18:27:35

当我尝试删除一条消息时,它一次删除4条,尽管我明确表示不这样做,因为我有大约700条消息,所以我必须显示最多4条。

public void inboxupdate()
    {
        client.Connect("pop.googlemail.com", 995, true);
        if (client.Connected)
        {
            client.Authenticate(tbxEmail.Text, tbxPassword.Text, OpenPop.Pop3.AuthenticationMethod.UsernameAndPassword);
        }
        int MessageCount = client.GetMessageCount();
        for (int i = 1; i <= 4; i++ )
        {
            try
            {
                cbxInbox.Items.Add(client.GetMessage(i).ToMailMessage().Subject, false);
            }
            catch
            {
            }
        }
    }

要删除的代码:

private void btnDelete_Click(object sender, EventArgs e)
    {
        if (cbxInbox.CheckedItems.Count > 1)
        {
            for (int i = 1; i <= cbxInbox.CheckedItems.Count; i++)
            {
                client.DeleteMessage(i + 1);
            }
        }
        cbxInbox.Items.Clear();
        client.Disconnect();
        inboxupdate();
    }

即使我做

client.DeleteMessage(1)

它一次删除4个。此外,这些消息似乎很旧,因为当我访问mail.google.com时,它们不会出现在第一页上有没有办法区分垃圾邮件和邮件?

OpenPop正在删除消息

Gmail有一些有趣的POP3实现。一旦您下载了一条消息,下次它将不会为您显示。因此,你的问题很可能不是OpenPop删除了4条消息,而是你下载了4条Gmail对你隐藏的消息。

请参阅当Gmail以编程方式用作POP3服务器时,它表现出哪些非标准行为功能?

顺便说一句:下次你问问题时,请花点时间问,把它清理干净。例如,为什么要包含注释掉的代码?

第二个旁注。以下代码不考虑哪些消息被"标记"为应删除。不应该查找索引吗?如果用户选择了n项目,那么您总是会删除第一个n项目,但如果他选择了最后一个n项目呢?

if (cbxInbox.CheckedItems.Count > 1)
{
    for (int i = 1; i <= cbxInbox.CheckedItems.Count; i++)
    {
        client.DeleteMessage(i + 1);
    }
}

希望能有所帮助。