gpt4 book ai didi

c# - OpenPop 删除消息

转载 作者:太空宇宙 更新时间:2023-11-03 13:37:24 28 4
gpt4 key购买 nike

当我尝试删除一条消息时,它会一次删除 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/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com