使用OpenPop.NET删除邮箱中的邮件

时间:2012-04-10 14:44:17

标签: c# pop3

我正在使用OpenPop.NET客户端通过Pop3协议访问我的邮箱。一切都很好,除了一件事:我无法删除消息。即使来自官方网站的sample也无济于事。 我已经尝试过几个邮件服务器:gmail.com,yandex.ru,rambler.ru情况是一样的。

更新 - 添加了代码。

static void Main(string[] args)
{
    DeleteMessageOnServer("pop.gmail.com", 995, true, USERNAME, PASSWORD, 1);
}

public static void
    DeleteMessageOnServer(string hostname, int port, bool useSsl, string username,
    string password, int messageNumber)
{
    // The client disconnects from the server when being disposed
    using (Pop3Client client = new Pop3Client())
    {
        // Connect to the server
        client.Connect(hostname, port, useSsl);

        // Authenticate ourselves towards the server
        client.Authenticate(username, password);

        // Mark the message as deleted
        // Notice that it is only MARKED as deleted
        // POP3 requires you to "commit" the changes
        // which is done by sending a QUIT command to the server
        // You can also reset all marked messages, by sending a RSET command.
        client.DeleteMessage(messageNumber);

        // When a QUIT command is sent to the server, the connection between them are closed.
        // When the client is disposed, the QUIT command will be sent to the server
        // just as if you had called the Disconnect method yourself.
    }
}

2 个答案:

答案 0 :(得分:5)

在调用.DeleteMessage(messageNumber);方法时,会删除通过.Disconnect();方法标记的电子邮件。

答案 1 :(得分:0)

如上所述,当关闭连接时,电子邮件将被删除,消息编号也应以1而不是0开头。对于gmail,您需要转到“设置->转发POP / IMAP->当邮件通过POP进入时”,然后选择“删除gmail的副本”。

您可以here对其进行检查。