当我尝试删除一条消息时,它一次删除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时,它们不会显示在第一页上。有什么方法可以区分垃圾邮件和消息吗?
发布于 2013-08-14 21:36:16
Gmail有一些有趣的POP3实现。下载邮件后,下次将不再为您显示该邮件。所以你的问题很可能不是OpenPop删除了4条消息,而是你下载了4条消息,然后Gmail对你隐藏了这些消息。
作为附注:下次你问问题时,请花一些时间来问它,清理它。例如,为什么要包含注释掉的代码?
第二个附注。下面的代码没有考虑到哪些消息被“标记”为应该删除。您不应该查找索引吗?如果用户选择了n项,您总是会删除第一个n项,但是如果他选择了n最后一项呢?
if (cbxInbox.CheckedItems.Count > 1)
{
for (int i = 1; i <= cbxInbox.CheckedItems.Count; i++)
{
client.DeleteMessage(i + 1);
}
}希望能有所帮助。
https://stackoverflow.com/questions/18232849
复制相似问题