我对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'实例在我的整个类中保持不变,这样每个函数都可以访问收件箱而无需运行上面的连接过程。我怎样才能让这些实例在我的课堂上持续存在?
以另一种方式说这个,我想运行一次连接过程(最好是在声明我的类的实例时),然后让所有后续方法通过这个初始连接过程访问收件箱。
提前致谢。
答案 0 :(得分:0)
您需要做的就是不在using语句中创建客户端,然后您就可以保存对客户端的引用(您可以使用它来轻松获取收件箱)。
完成客户端后,您可以拨打Dispose()
。