public static ImapClient CreateClientByAccount(Account account)
        {
            try
            {
                var client = new ImapClient { Security = account.Security };
                //client.ManualSaslAuthenticationRequired += (sender, e) => AuthenticateManually(e, account);
                var port = client.Security == SecurityPolicies.Explicit ? ImapPorts.Ssl : ImapPorts.Default;
                client.Connect(account.Host, port);
                //Thread.Sleep(100);
                client.Authenticate(account.Credential, SaslMechanics.Login);
                //Thread.Sleep(500);

                return client;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                throw;
            }
        }
Exemplo n.º 2
0
        public ImapClient InitClient(ImapAccountInfo account)
        {
            Debug.Assert(null != account);

            ImapClient imapClient = new Crystalbyte.Equinox.Imap.ImapClient();
            imapClient.Security = SecurityPolicies.Explicit;

            imapClient.Connect(this.Host, this.Port);

            if ((null != account.UserName) && (null != account.UserPwd))
            {
                // doesn't need OAuth --- try regular LOGIN
                imapClient.Authenticate(account.UserName, account.UserPwd, SaslMechanics.Login);
            }
            else
            {
                imapClient.ManualSaslAuthenticationRequired += (sender, e) => this.AuthHandler(e.Client, e.UserCredentials, account);
                imapClient.Authenticate(account.UserName, account.UserPwd);
            }
            return imapClient;
        }
Exemplo n.º 3
0
 private ImapClient CreateClientByAccount(Account account)
 {
     try {
         var client = new ImapClient {Security = account.Security};
         client.ManualSaslAuthenticationRequired += (sender, e) => AuthenticateManually(e, account);
         var port = client.Security == SecurityPolicies.Explicit ? ImapPorts.Ssl : ImapPorts.Default;
         client.Connect(account.Host, port);
         client.Authenticate(account.Credential);
         return client;
     }
     catch (Exception ex) {
         LogSafely(ex.Message);
         throw;
     }
 }