C# MailKit - 如何阅读最后一封电子邮件

C# MailKit - How to read Last Email

我编写了代码来使用 Mailkit 阅读电子邮件,在 Mailkit 中有一种方法可以阅读第一封电子邮件,但我找不到一种方法来阅读最近一封电子邮件的主题

using (var client = new ImapClient())
                {
                    client.Connect(EXT_IMAP_SERVER, EXT_IMAP_PORT, true);

                    client.Authenticate(EXT_USERNAME, EXT_PASSWORD);

                    var inbox = client.Inbox;
                    inbox.Open(FolderAccess.ReadWrite);
                    var LAST_EMAIL = inbox.FirstUnread;// ****** here is my issue ******
                    var LAST_MSG = client.Inbox.GetMessage(LAST_EMAIL);
                    inbox.AddFlags(LAST_EMAIL, MessageFlags.Seen, true);
                    Console.WriteLine(LAST_MSG.Subject);

                    client.Disconnect(true);
           
                }

in the Mailkit there is a way to read first email

文件夹中的第一封电子邮件始终具有 0 的索引。 FirstUnread 属性 是文件夹中尚未阅读的最旧邮件的索引。

换句话说,如果您的文件夹中有 100 封邮件,但您已经几天没有查看邮件,那么您可能有几封未读邮件。也许最后 3 条消息是未读的,所以这些未读消息的索引将是 979899FirstUnread 索引在此示例中为 97

but i couldn't find a way to read subject of last recent email

最后一条消息的索引总是folder.Count - 1。就像数组中最后一个元素的索引总是 array.Count - 1.

或者为了更清楚,如果您有一个包含 100 封邮件的文件夹,则该文件夹中最后一封邮件的索引将为 99.

var message = folder.GetMessage (folder.Count - 1);
Console.WriteLine (message.Subject);