跨多个功能保留MailKit客户端

时间:2014-09-14 16:51:48

标签: c# mailkit

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

我对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'实例在我的整个类中保持不变,这样每个函数都可以访问收件箱而无需运行上面的连接过程。我怎样才能让这些实例在我的课堂上持续存在?

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

提前致谢。

1 个答案:

答案 0 :(得分:0)

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

完成客户端后,您可以拨打Dispose()