/// <summary> /// Conecta al servidor de correo /// </summary> public void Connect() { string strResponse = ""; // Desconecta Disconnect(); // Lanza el evento de comienzo de conexión RaiseEvent(Pop3EventArgs.ActionType.ConnectionEstablishing); // Conecta al servidor objConnection = new Tools.Network.Connection(Server); objConnection.Connect(); // Comprueba la respuesta del servidor strResponse = objConnection.Receive(); if (string.IsNullOrEmpty(strResponse) || !strResponse.StartsWith(cnstStrOk, StringComparison.OrdinalIgnoreCase)) TreatError("Server " + Server.Address + " did not send welcome message."); else { string strDigest = GetAuthenticateDigest(strResponse); // Lanza el evento de conexión establecida RaiseEvent(Pop3EventArgs.ActionType.ConnectionEstablished); // Espera dos segundos System.Threading.Thread.Sleep(2000); // Lanza el evento de inicio de autentificación RaiseEvent(Pop3EventArgs.ActionType.AuthenticationBegan); // Envía usuario y contraseña Authenticate(strDigest); // Lanza el evento de final de autentificación RaiseEvent(Pop3EventArgs.ActionType.AuthenticationFinished); } }
/// <summary> /// Conecta al servidor de correo /// </summary> public bool Connect() { SMTPResponse objResponse = null; bool blnConnected = false; // Desconecta Disconnect(); // Lanza el evento de comienzo de conexión RaiseEvent(SMTPEventArgs.ActionType.ConnectionEstablishing); // Conecta al servidor objConnection = new Tools.Network.Connection(Server); objConnection.Connect(); // Comprueba la respuesta del servidor objResponse = new SMTPResponse(objConnection.Receive()); if (!objResponse.IsOk) TreatError("Server " + Server.Address + " did not send welcome message."); else { // Manda un comando EHLO para comprobar si el servidor responde a comandos extendidos objResponse = Send("EHLO " + Tools.Network.Connection.GetLocalHostName(), false); // Manda un comando HELO if (!objResponse.IsOk) objResponse = Send("HELO " + Tools.Network.Connection.GetLocalHostName(), false); // Si es correcto, se autentifica if (objResponse.IsOk) { // Lanza el evento de conexión establecida RaiseEvent(SMTPEventArgs.ActionType.ConnectionEstablished); // Lanza el comando de autentificación if (Authenticate(Server.User, Server.Password)) blnConnected = true; else TreatError("Not aunthentified"); } } // Devuelve el valor que indica si se ha conectado return blnConnected; }
/// <summary> /// Cierra la conexión física /// </summary> private void ShutDown() { objConnection.Disconnect(); objConnection = null; }