0

如果这是一个“明显”的问题,我提前道歉。

我对 MailKit 尤其陌生,对 C# 也很陌生。

要打开一个新的 IMAP 连接,我使用以下代码,直接取自 MailKit 的介绍性 GitHub 说明:

using (var client = new ImapClient())
            {
                client.Connect("imap.gmail.com", 993, true);

                // Note: since we don't have an OAuth2 token, disable
                // the XOAUTH2 authentication mechanism.
                client.AuthenticationMechanisms.Remove("XOAUTH");

                client.Authenticate("emailAddress", "pass");

                // The Inbox folder is always available on all IMAP servers...
                var inbox = client.Inbox;
                inbox.Open(FolderAccess.ReadOnly);
             }

我有一个包含与电子邮件管理相关的功能的类。

我希望 ImapClient 'client' 和 ImapClient.Inbox 'inbox' 实例在我的班级中持续存在,以便每个函数都可以访问收件箱,而无需运行上面的连接过程。我怎样才能让这些实例在我的课堂上持续存在?

换句话说,我想运行一次连接过程(最好在声明我的类的实例时),然后让所有后续方法通过这个初始连接过程访问收件箱。

提前致谢。

4

1 回答 1

0

您需要做的就是不在 using 语句中创建客户端,然后您就可以保存对客户端的引用(您可以使用它轻松获取收件箱)。

与客户端完成后,您可以调用Dispose().

于 2014-11-19T15:19:05.200 回答