コード例 #1
0
        public void Connect(string server, string port, string encryption)
        {
            int portInt;

            if (int.TryParse(port, out portInt))
            {
                if ((string)encryption == "STARTTLS")
                {
                    pop.Connect(server, portInt);
                    pop.StartTLS();
                }
                else
                {
                    pop.ConnectSSL(server, portInt);
                }
            }
            else
            {
                if ((string)encryption == "STARTTLS")
                {
                    pop.Connect(server);
                    pop.StartTLS();
                }
                else
                {
                    pop.ConnectSSL(server);
                }
            }
        }
コード例 #2
0
        /// <summary>
        /// Connects to POP3 server.
        /// </summary>
        /// <param name="host">Host name or IP address.</param>
        /// <param name="serverEncryption">Server encryption (SslTls, Unencrypted, StartTls)</param>
        /// <seealso cref="M:Limilabs.Client.ClientBase.Connect(System.String,System.Int32,System.Boolean)" />
        /// <exception cref="T:Limilabs.Client.ServerException">DNS resolving error, connection error.</exception>
        /// <exception cref="T:Limilabs.Client.POP3.Pop3ResponseException">Initial error response.</exception>
        public void Connect(MailServerEncryption serverEncryption, string host)
        {
            switch (serverEncryption)
            {
            case MailServerEncryption.SslTls:
            {
                _pop3.ConnectSSL(host);
                break;
            }

            case MailServerEncryption.Unencrypted:
            {
                _pop3.Connect(host);
                break;
            }

            case MailServerEncryption.StartTls:
            {
                _pop3.Connect(host);
                _pop3.StartTLS();
                break;
            }

            default:
            {
                _pop3.Connect(host);
                break;
            }
            }
        }
コード例 #3
0
        // Connect to POP3
        public async Task <Pop3> ConnectPop3(Model.UserInfo userInfo)
        {
            var serverconnTask = Task.Run(() =>
            {
                Pop3 pop3 = new Pop3();

                if (userInfo.EncryptionType == Model.Enum.EncryptionType.Unencrypted)
                {
                    pop3.Connect(userInfo.Server, userInfo.Port);
                }
                else if (userInfo.EncryptionType == Model.Enum.EncryptionType.SSLTLS)
                {
                    pop3.ConnectSSL(userInfo.Server, userInfo.Port);
                }
                else
                {
                    pop3.Connect(userInfo.Server, userInfo.Port);
                    pop3.StartTLS();
                }
                pop3.UseBestLogin(userInfo.UserName, userInfo.Password);
                return(pop3);
            });
            var completedTask = await Task.WhenAny(serverconnTask);

            if (completedTask == serverconnTask)
            {
                return(await serverconnTask);
            }
            else
            {
                throw new TimeoutException("server Connection timed out");
            }
        }
コード例 #4
0
 private void ConnectAndLogin(Pop3 imap)
 {
     if (Encryption == Constants.Encryptions.SSL_TLS)
     {
         imap.ConnectSSL(Host, PortNumber);
     }
     else if (Encryption == Constants.Encryptions.START_TLS)
     {
         imap.Connect(Host, PortNumber);
         imap.StartTLS();
     }
     else
     {
         imap.Connect(Host, PortNumber);
     }
     imap.UseBestLogin(Username, Password);
 }
コード例 #5
0
ファイル: Pop3Client.cs プロジェクト: ManaliV/EmailClient
        public Pop3Client(string username, string password, string server, int port, EncryptionType encryptionType)
            : base(username, encryptionType)
        {
            _pop3 = new Pop3();

            if (encryptionType == EncryptionType.SSLTLS)
            {
                _pop3.ConnectSSL(server, port);
            }
            else
            {
                _pop3.Connect(server, port);

                if (encryptionType == EncryptionType.StartTLS)
                {
                    _pop3.StartTLS();
                }
            }

            _pop3.Login(username, password);
        }
コード例 #6
0
        private async Task <Pop3> Connect(UserInfo userInfo)
        {
            var  timeout     = _settings.ConnectionTimeOutMilliseconds;
            Task timeoutTask = Task.Delay(timeout);

            var connectionTask = Task.Run(() =>
            {
                Pop3 pop3 = _pop3Factory.GetInstance();

                if (userInfo.EncryptionType == Model.Enum.EncryptionType.Unencrypted)
                {
                    pop3.Connect(userInfo.Server, userInfo.Port);
                }
                else if (userInfo.EncryptionType == Model.Enum.EncryptionType.SslTls)
                {
                    pop3.ConnectSSL(userInfo.Server, userInfo.Port);
                }
                else
                {
                    pop3.Connect(userInfo.Server, userInfo.Port);
                    pop3.StartTLS();
                }

                pop3.UseBestLogin(userInfo.UserName, userInfo.Password);

                return(pop3);
            });

            var completedTask = await Task.WhenAny(connectionTask, timeoutTask);

            if (completedTask == connectionTask)
            {
                return(await connectionTask);
            }
            else
            {
                throw new TimeoutException("Connection with the server timed out");
            }
        }