1

C#で自分のWebドメインからメールを読んでいて、OpenPop.netライブラリを使用しています。

メールを読んでいますが、新しいメールしか受信しません。既読と未読の両方をフェッチするようにhotmailのようにしたいので、CSSを使用してそれらを異なる方法で表示します。どうすればいいのか教えてください。

ありがとう

4

4 に答える 4

2

POP3 は IMAP のようなストレージ システムではありません。

POP3 からメールを受信すると、通常はそのメールをサーバーから (永久に) 削除します。それがまさにそれがどのように機能するかです。

おそらく、取得後にサーバー上の電子メールを削除しないことを許可する OpenPOP のオプションがあります。

于 2011-07-28T07:09:30.610 に答える
2

編集:

POP3 を使用して gmail からメールを取得しようとしていると思います。Gmail には、奇妙な非標準の POP3 動作があります。Gmail は、取得されたメッセージを表示にし、POP3 DELE コマンドを無視します。この動作の詳細については、この関連する質問を参照してください。

Openpop の例の 1 つは、すべてのメッセージを取得する方法を示しています。

/// <summary>
/// Example showing:
///  - how to fetch all messages from a POP3 server
/// </summary>
/// <param name="hostname">Hostname of the server. For example: pop3.live.com</param>
/// <param name="port">Host port to connect to. Normally: 110 for plain POP3, 995 for SSL POP3</param>
/// <param name="useSsl">Whether or not to use SSL to connect to server</param>
/// <param name="username">Username of the user on the server</param>
/// <param name="password">Password of the user on the server</param>
/// <returns>All Messages on the POP3 server</returns>
public static List<Message> FetchAllMessages(string hostname, int port, bool useSsl, string username, string password)
{
    // 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);

        // Get the number of messages in the inbox
        int messageCount = client.GetMessageCount();

        // We want to download all messages
        List<Message> allMessages = new List<Message>(messageCount);

        // Messages are numbered in the interval: [1, messageCount]
        // Ergo: message numbers are 1-based.
        for(int i = 1; i <= messageCount; i++)
        {
            allMessages.Add(client.GetMessage(i));
        }

        // Now return the fetched messages
        return allMessages;
    }
}
于 2011-07-28T07:18:17.033 に答える
1

POP の標準的な動作は次のとおりです。

  • メッセージをダウンロード
  • メッセージを削除

一方、IMAP の標準的な動作は次のとおりです。

  • メッセージをダウンロード
  • そこにメッセージを残す

POP ライブラリが十分に低レベルであれば、いつでもその動作を変更できます。

于 2011-07-28T07:19:03.920 に答える
0

できることは、smtp サーバーからメールを取得するときにすべてのメールをデータベースに書き込むことです。そのため、次にアプリケーションを開いたときに、すべてのメールを読むことができます。

通常、クライアントがメールを受信すると、メール サーバーはメールを削除します (Outlook や他のメール クライアントでは、これをオン/オフする特定の設定があります。OpenPop lib にもこの設定がある可能性があります)。

于 2011-07-28T07:07:57.960 に答える