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); } } }
/// <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; } } }
// 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"); } }
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); }
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); }
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"); } }