c# - OpenPop 删除消息

标签 c# visual-studio email pop3 openpop

当我尝试删除一条消息时,它会一次删除 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 时它们没有出现在第一页上 有没有办法区分垃圾邮件和消息?

最佳答案

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

请参阅What non-standard behaviour features does Gmail exhibit, when it is programmatically used as a POP3 server?

作为旁注:下次你问问题时,请花点时间问它,清理它。例如,为什么包含注释掉的代码?

第二个旁注。下面的代码没有考虑哪些消息被“标记”为应该删除。你不应该查找索引吗?如果用户选择了 n 个项目,您总是会删除前 n 个项目,但是如果他选择了最后一个 n 个项目怎么办?

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

希望对您有所帮助。

关于c# - OpenPop 删除消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18232849/

相关文章:

visual-studio - msbuild SLN 并仍然获得单独的项目输出?

c# - List<T> RemoveAll() 没有删除项目

c# - 通过引用传递引用

c# - 使用 Json.Net 解析 forecast.io 天气数据时遇到问题

python - 在 Windows 10 上为 PyPy3 安装 numpy 时出现问题

php - SMTP 连接失败并激活 TLS

c# - List.clear() 后跟 List.add() 不起作用

c# - 当我尝试将我的代码添加到 GitHub 上的存储库时,出现类似 "Failed to push to the remote repositor..."的错误

HTML 图像未在电子邮件中定位

css - HTML 电子邮件 - Outlook.com/Hotmail CSS 覆盖样式