0

私はこのようなものと同じ機能を実現したい:

SMTP サーバーが新しい電子メールを受信したときに C# クライアントに通知する

これはうまくいっています。そのメソッド「NewMessageReceived」は、新しいメールが受信されるたびに正常に呼び出されます。

しかし問題は、メールを取得できないことです。このメソッドでは、INBOX の合計数しか取得できませんでした。

ライブラリを使用したこのコード: MailSystem.net

次のような私のコード:

        Imap4Client _imap;
        public static int cnt = 0;
        protected void Application_Start(object sender, EventArgs e)
        {
            var worker = new BackgroundWorker();
            worker.DoWork += new DoWorkEventHandler(StartIdleProcess);

            if (worker.IsBusy)
                worker.CancelAsync();

            worker.RunWorkerAsync();
        }
        private void StartIdleProcess(object sender, DoWorkEventArgs e)
        {
            if (_imap != null && _imap.IsConnected)
            {
                _imap.StopIdle();
                _imap.Disconnect();
            }

            _imap = new Imap4Client();
            _imap.ConnectSsl(ConfigurationManager.AppSettings["IncomingServerName"], Convert.ToInt32(ConfigurationManager.AppSettings["InPort"]));
            _imap.Login(ConfigurationManager.AppSettings["EmailAddress"], ConfigurationManager.AppSettings["Password"]);

            var inbox = _imap.SelectMailbox("INBOX");

            _imap.NewMessageReceived += new NewMessageReceivedEventHandler(NewMessageReceived);

            inbox.Subscribe();

            _imap.StartIdle();
        }

        public static void NewMessageReceived(object source, NewMessageReceivedEventArgs e)
        {
            cnt = e.MessageCount; //Inbox Count
            //here i want to fetch all unread mail from inbox
        }

未読メールを取得する次の解決策を見つけました。

http://mailsystem.codeplex.com/discussions/651129

MailKitライブラリを使用するように言っています。私はすでにMailSystem.netライブラリを使用しているため、ライブラリを 1 つだけ使用して要件を達成する方法はありますか?

他のライブラリも使用する準備ができています。

提案をお願いします。ありがとう

4

1 に答える 1