diff --git a/Ashx/CargaEventos.ashx b/Ashx/CargaEventos.ashx index b87b8b817..d16322ed9 100644 --- a/Ashx/CargaEventos.ashx +++ b/Ashx/CargaEventos.ashx @@ -555,6 +555,7 @@ Public Class CargaEventos : Implements IHttpHandler, IRequiresSessionState cevent.id = dr("CveContrato").ToString.ToEntero cevent.title = If(dr("CodigoAF").ToString.Trim.Length > 0, $"#{dr("CodigoAF").ToString}-{dr("DescripcionContrato").ToString}", $"-{dr("DescripcionContrato").ToString}") + cevent.description = dr("DescripcionContrato").ToString cevent.start = String.Format("{0:s}", dr("FechaInicial").ToString.ToDateTime) cevent.end = If(tipoVista = "fecha", String.Format("{0:s}", dr("FechaInicial").ToString.ToDateTime.AddHours(1)), String.Format("{0:s}", dr("FechaFinal").ToString.ToDateTime)) cevent.FechaFinal = String.Format("{0:s}", dr("FechaFinal").ToString.ToDateTime) diff --git a/Ashx/SIGWeb.ashx b/Ashx/SIGWeb.ashx index dde388876..cc2504d43 100644 --- a/Ashx/SIGWeb.ashx +++ b/Ashx/SIGWeb.ashx @@ -811,6 +811,7 @@ Public Class SIGWeb : Implements IHttpHandler, IRequiresSessionState Dim retorno As String = "" Dim DtRetorno As DataTable = Nothing + Dim Estatus = IfNull(context.Request("estatus"), "-1").ToString.ToEntero Dim filtro As String = "" @@ -823,7 +824,6 @@ Public Class SIGWeb : Implements IHttpHandler, IRequiresSessionState filtro = " Estatus = 'Inactivo' " End If - Dim usuario As Usuario = UsuarioActual(context) Dim CveEmpresa As Integer If IsNothing(usuario) Then @@ -998,6 +998,12 @@ Public Class SIGWeb : Implements IHttpHandler, IRequiresSessionState End If + If usuario.Empresa.Funcionalidad(578) = "1" AndAlso DtPSRetorno IsNot Nothing Then + 'solo muestar productos con existencia. + DtPSRetorno = DtPSRetorno.FiltraParametros("ExistenciaTotal > 0") + End If + If DtPSRetorno IsNot Nothing AndAlso DtPSRetorno.Columns("ExistenciaTotal") IsNot Nothing Then DtPSRetorno.Columns.Remove("ExistenciaTotal") + If UsaGlobal Then 'se recarga el global, y el clspaginas, son los unicos 2 lugares 'Dim AppNombre As String = String.Format("GlobalDTPSSimplificado-{0}", CveEmpresa) diff --git a/Bancos/PopIEVentas.aspx.vb b/Bancos/PopIEVentas.aspx.vb index 0dd21d7fd..2019215db 100644 --- a/Bancos/PopIEVentas.aspx.vb +++ b/Bancos/PopIEVentas.aspx.vb @@ -345,9 +345,6 @@ Partial Class Bancos_PopIEVentas CargaTipoTransaccion(TipoTransaccion) CargaCuentas() - - - Dim dia As Integer = If(UsuarioActual.CveEmpresa = 13, NowADS().Day - 1, NowADS().Day) Fecha = (dia.ToString + "/" + NowADS().Month.ToString + "/" + NowADS().Year.ToString).ToDate @@ -1231,7 +1228,6 @@ Partial Class Bancos_PopIEVentas If CveVenta > 0 Then If VentaActual IsNot Nothing Then - Dim tipoCambioPago As Decimal = 1 Dim CuentasContablesInvalidas As New StringBuilder Dim tFecha As Date = TxtFechaDocumento.Text.ToDate @@ -1250,18 +1246,18 @@ Partial Class Bancos_PopIEVentas 'Pago.TCPago = 1 / TxtTipoCambio.Text.ToDecimal ImportePagadoVenta = (ImportePagado / TxtTipoCambio.Text.ToDecimal).RoundSQL ElseIf Pago.CveMonedaPago = 2 AndAlso VentaActual.CveMoneda = 2 Then 'Si la venta viene en Dolares y se va a pagar en DOLARES - Pago.TCPago = TxtTipoCambio.Text.ToDecimal + Pago.TCPago = TxtTCDolaresDolares.Text.ToDecimal ElseIf Pago.CveMonedaPago = 2 AndAlso VentaActual.CveMoneda = 1 Then 'Si la venta viene en pesos y se va a pagar en DOLARES Pago.TCPago = TxtTipoCambio.Text.ToDecimal End If 'If ChkPagarPesos.Checked Then Pago.TCPago = 1 / TxtTipoCambio.Text.ToDecimal If ChkPagarDolares.Checked Then Pago.TCPago = TxtTipoCambio.Text.ToDecimal - If TxtComision.Text.ToDecimal <> 0 Then Pago.OtroGastoIngreso = TxtComision.Text.ToDecimal Else Pago.OtroGastoIngreso = 0 + If TxtComision.Text.ToDecimal <> 0 Then Pago.OtroGastoIngreso = TxtComision.Text.ToDecimal Else Pago.OtroGastoIngreso = 0 - Select Case RBLContado.SelectedValue - Case "1" ' Banco - CveIE = ObjIE.AddBancos_IE(DdlCuenta.SelectedValue.ToEntero, DdlTipoTransaccion.SelectedValue.ToEntero, Fecha, TxtFolio.Text.Trim, TxtPagueseA.Text.Trim, ImportePagado, CveMoneda, tipoCambioPago, TxtObservaciones.Text.Trim, "", + Select Case RBLContado.SelectedValue + Case "1" ' Banco + CveIE = ObjIE.AddBancos_IE(DdlCuenta.SelectedValue.ToEntero, DdlTipoTransaccion.SelectedValue.ToEntero, Fecha, TxtFolio.Text.Trim, TxtPagueseA.Text.Trim, ImportePagado, CveMoneda, Pago.TCPago, TxtObservaciones.Text.Trim, "", True, True, -1, CvePrePoliza, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCuentaTarjeta:=If(DivTarjeta.Visible, DdlTarjeta.SelectedValue.ToEntero, -1), CveCuentaDeposito:=CveCuentaDeposito, Referencia:=If(TxtReferenciaCIE.Visible, TxtReferenciaCIE.Text, "-1"), CveCorte:=CveCorte, FechaEmision:=FechaEmision) If CveIE > 0 Then @@ -1272,130 +1268,130 @@ Partial Class Bancos_PopIEVentas Pago.TipoPago = "B" If MsgError = "" AndAlso AplicaPrePolizaPagoVenta(VentaActual, Pago, CvePrePoliza, ObjMov) Then - MsgError = "No se pudo insertar la póliza" - End If - - Else - MsgError = "Ocurrio un Error al registrarse el movimiento bancario." - Inserta = False + MsgError = "No se pudo insertar la póliza" End If + + Else + MsgError = "Ocurrio un Error al registrarse el movimiento bancario." + Inserta = False + End If Case "2" ' FyE Pago.ImportePago = ImportePagado Pago.ImportePagoVenta = ImportePagado - Pago.OtroGastoIngreso Pago.TipoPago = "FyE" - Pago.CvePersonal = DdlFuncionarioEmpleado.SelectedValue.ToEntero - Pago.Referencia = DdlFuncionarioEmpleado.SelectedItem.ToString + Pago.CvePersonal = DdlFuncionarioEmpleado.SelectedValue.ToEntero + Pago.Referencia = DdlFuncionarioEmpleado.SelectedItem.ToString - If MsgError = "" AndAlso AplicaPrePolizaPagoVenta(VentaActual, Pago, CvePrePoliza, ObjMov) Then - MsgError = "No se pudo insertar la póliza" - End If + If MsgError = "" AndAlso AplicaPrePolizaPagoVenta(VentaActual, Pago, CvePrePoliza, ObjMov) Then + MsgError = "No se pudo insertar la póliza" + End If - Case "3" 'Ingresos x Comprobar + Case "3" 'Ingresos x Comprobar - CveCliente = DdlIngreso.SelectedValue.ToEntero - CveIE = -1 - ImportePagado = TxtImporte.Text.Trim.ToDecimal - Pago.ImportePago = ImportePagado - Pago.TipoPago = "I" + CveCliente = DdlIngreso.SelectedValue.ToEntero + CveIE = -1 + ImportePagado = TxtImporte.Text.Trim.ToDecimal + Pago.ImportePago = ImportePagado + Pago.TipoPago = "I" - For Each rw As GridViewRow In GvIngresos.Rows - If rw.FCCheckBox("Chk").Checked Then - CveIE = rw.DataKey("CveIE").ToEntero - Pago.CveMonedaPago = rw.DataKey("CveMoneda").ToEntero - Pago.ImportePago = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal - Pago.ImportePagoVenta = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal - Pago.TCPago = rw.DataKey("TipoCambio").ToDecimal - Pago.FechaDocumentoRelacionado = rw.DataKey("FechaDocumento").ToDate - Pago.CveIE = CveIE - Pago.CveClientePago = rw.DataKey("CveCliente").ToEntero - If ChkPagarPesos.Checked Then Pago.TCPago = 1 / rw.DataKey("TipoCambio").ToDecimal - If ChkPagarDolares.Checked Then Pago.TCPago = rw.DataKey("TipoCambio").ToDecimal + For Each rw As GridViewRow In GvIngresos.Rows + If rw.FCCheckBox("Chk").Checked Then + CveIE = rw.DataKey("CveIE").ToEntero + Pago.CveMonedaPago = rw.DataKey("CveMoneda").ToEntero + Pago.ImportePago = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal + Pago.ImportePagoVenta = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal + Pago.TCPago = rw.DataKey("TipoCambio").ToDecimal + Pago.FechaDocumentoRelacionado = rw.DataKey("FechaDocumento").ToDate + Pago.CveIE = CveIE + Pago.CveClientePago = rw.DataKey("CveCliente").ToEntero + If ChkPagarPesos.Checked Then Pago.TCPago = 1 / rw.DataKey("TipoCambio").ToDecimal + If ChkPagarDolares.Checked Then Pago.TCPago = rw.DataKey("TipoCambio").ToDecimal - If AplicaPrePolizaPagoVenta(VentaActual, Pago, CvePrePoliza, ObjMov) Then - MsgError = "No se pudo insertar la póliza" - Else - Exit For - End If + If AplicaPrePolizaPagoVenta(VentaActual, Pago, CvePrePoliza, ObjMov) Then + MsgError = "No se pudo insertar la póliza" + Else + Exit For End If - Next + End If + Next - Case "4" 'Deudores Diversos + Case "4" 'Deudores Diversos - ImportePagado = TxtImporte.Text.Trim.ToDecimal - 'CveProveedor2 = DdlDeudor.SelectedValue.ToEntero - CveIE = -1 - If DdlDeudor.SelectedValue.ToEntero <= 0 Then - Alert("Debe especificar el deudor.", TipoMensaje.MsgAdvertencia) - Exit Sub + ImportePagado = TxtImporte.Text.Trim.ToDecimal + 'CveProveedor2 = DdlDeudor.SelectedValue.ToEntero + CveIE = -1 + If DdlDeudor.SelectedValue.ToEntero <= 0 Then + Alert("Debe especificar el deudor.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + For Each rw As GridViewRow In GvDeudores.Rows + If rw.FCCheckBox("Chk").Checked AndAlso rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal <> 0 Then + Pago.CveIE = rw.DataKey("CveIE").ToEntero + Pago.CveMonedaPago = rw.DataKey("CveMoneda").ToEntero + Pago.ImportePago = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal + Pago.TCPago = rw.DataKey("TipoCambio").ToDecimal + 'Pago.CveProveedor = DdlDeudor.SelectedValue.ToEntero + Pago.TipoPago = "DD" + If AplicaPrePolizaPagoVenta(VentaActual, Pago, CvePrePoliza, ObjMov) Then + MsgError = "No se pudo insertar la póliza" + Else + Exit For + End If End If + Next - For Each rw As GridViewRow In GvDeudores.Rows - If rw.FCCheckBox("Chk").Checked AndAlso rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal <> 0 Then - Pago.CveIE = rw.DataKey("CveIE").ToEntero - Pago.CveMonedaPago = rw.DataKey("CveMoneda").ToEntero - Pago.ImportePago = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal - Pago.TCPago = rw.DataKey("TipoCambio").ToDecimal - 'Pago.CveProveedor = DdlDeudor.SelectedValue.ToEntero - Pago.TipoPago = "DD" - If AplicaPrePolizaPagoVenta(VentaActual, Pago, CvePrePoliza, ObjMov) Then - MsgError = "No se pudo insertar la póliza" - Else - Exit For - End If + Case "5" 'Compras + + ImportePagado = TxtImporte.Text.Trim.ToDecimal + CveIE = -1 + For Each rw As GridViewRow In GvCompras.Rows + If rw.FCCheckBox("Chk").Checked AndAlso rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal <> 0 Then + Pago.CveMonedaPago = 1 + Pago.ImportePago = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal + Pago.ImportePagoVenta = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal + Pago.TipoPago = "Compra" + If AplicaPrePolizaPagoVenta(VentaActual, Pago, CvePrePoliza, ObjMov) Then + MsgError = "No se pudo insertar la póliza" End If - Next - - Case "5" 'Compras + If MsgError = "" Then + Dim CompraActual As New Compra() With {.CveCompra = rw.DataKey("CveCompra").ToEntero, .ProveedorNombre = NombreCliente, .SerieFolio = rw.DataKey("SerieFolio"), .CveProveedor = rw.DataKey("CveProveedor").ToEntero, .IVA = rw.DataKey("IVA").ToDecimal, .IEPS = rw.DataKey("IEPS").ToDecimal, .RetIVA = rw.DataKey("RetIVA").ToDecimal, .RetISR = rw.DataKey("RetISR").ToDecimal, .Total = rw.DataKey("Total").ToDecimal, .PorcentajeIVA = rw.DataKey("PorcentajeIVA").ToDecimal, .CveSubProyecto = rw.DataKey("CveSubProyecto").ToEntero, .CveMoneda = rw.DataKey("CveMoneda").ToEntero, .CveTipoConceptoProveedor = rw.DataKey("CveTipoConcepto").ToEntero} + Dim PagoCompra As New CompraPago - ImportePagado = TxtImporte.Text.Trim.ToDecimal - CveIE = -1 - For Each rw As GridViewRow In GvCompras.Rows - If rw.FCCheckBox("Chk").Checked AndAlso rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal <> 0 Then - Pago.CveMonedaPago = 1 - Pago.ImportePago = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal - Pago.ImportePagoVenta = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal - Pago.TipoPago = "Compra" - If AplicaPrePolizaPagoVenta(VentaActual, Pago, CvePrePoliza, ObjMov) Then + PagoCompra.CveMonedaPago = rw.DataKey("CveMoneda").ToEntero + PagoCompra.ImportePago = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal + PagoCompra.TCPago = rw.DataKey("TipoCambio").ToDecimal + PagoCompra.CveProveedor = rw.DataKey("CveProveedor").ToEntero + PagoCompra.CveVentaRelacionada = CveVenta + PagoCompra.TipoPago = "Venta" + If AplicaPrePolizaPagoCompra(CompraActual, PagoCompra, CvePrePoliza, ObjMov) Then MsgError = "No se pudo insertar la póliza" - End If - If MsgError = "" Then - Dim CompraActual As New Compra() With {.CveCompra = rw.DataKey("CveCompra").ToEntero, .ProveedorNombre = NombreCliente, .SerieFolio = rw.DataKey("SerieFolio"), .CveProveedor = rw.DataKey("CveProveedor").ToEntero, .IVA = rw.DataKey("IVA").ToDecimal, .IEPS = rw.DataKey("IEPS").ToDecimal, .RetIVA = rw.DataKey("RetIVA").ToDecimal, .RetISR = rw.DataKey("RetISR").ToDecimal, .Total = rw.DataKey("Total").ToDecimal, .PorcentajeIVA = rw.DataKey("PorcentajeIVA").ToDecimal, .CveSubProyecto = rw.DataKey("CveSubProyecto").ToEntero, .CveMoneda = rw.DataKey("CveMoneda").ToEntero, .CveTipoConceptoProveedor = rw.DataKey("CveTipoConcepto").ToEntero} - Dim PagoCompra As New CompraPago - - PagoCompra.CveMonedaPago = rw.DataKey("CveMoneda").ToEntero - PagoCompra.ImportePago = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal - PagoCompra.TCPago = rw.DataKey("TipoCambio").ToDecimal - PagoCompra.CveProveedor = rw.DataKey("CveProveedor").ToEntero - PagoCompra.CveVentaRelacionada = CveVenta - PagoCompra.TipoPago = "Venta" - If AplicaPrePolizaPagoCompra(CompraActual, PagoCompra, CvePrePoliza, ObjMov) Then - MsgError = "No se pudo insertar la póliza" - End If End If - End If - Next - Case Else - 'NO SE HA DEFINIDO PARA FUNCIONARIO Y EMPLEADO - If RBLContado.SelectedValue <> "2" Then - MsgError = "No se ha especificada opcion." End If - End Select + Next + + Case Else + 'NO SE HA DEFINIDO PARA FUNCIONARIO Y EMPLEADO + If RBLContado.SelectedValue <> "2" Then + MsgError = "No se ha especificada opcion." + End If + End Select - If MsgError = "" Then + If MsgError = "" Then - If MsgError = "" AndAlso ObjMov.ValidacionesPrePoliza(CvePrePoliza, UsuarioActual, Opcion:=3) Then - If ObjMov.ValorPolizaDescuadre > 0 Then - MsgError = ObjMov.MensajePolizaDescuadre - End If + If MsgError = "" AndAlso ObjMov.ValidacionesPrePoliza(CvePrePoliza, UsuarioActual, Opcion:=3) Then + If ObjMov.ValorPolizaDescuadre > 0 Then + MsgError = ObjMov.MensajePolizaDescuadre End If - Else - MsgError = "No se pudo insertar la poliza detalle" End If + Else + MsgError = "No se pudo insertar la poliza detalle" End If - Else + End If + Else MsgError = "venta no identificada" End If Else diff --git a/Bin/MailKit.xml b/Bin/MailKit.xml new file mode 100644 index 000000000..19efde596 --- /dev/null +++ b/Bin/MailKit.xml @@ -0,0 +1,62241 @@ + + + + MailKit + + + + + An IMAP client that can be used to retrieve messages from a server. + + + The class supports both the "imap" and "imaps" + protocols. The "imap" protocol makes a clear-text connection to the IMAP + server and does not use SSL or TLS unless the IMAP server supports the + STARTTLS extension. + The "imaps" protocol, however, connects to the IMAP server using an + SSL-wrapped connection. + + + + + + + + + + + Asynchronously enable compression over the IMAP connection. + + + Asynchronously enables compression over the IMAP connection. + If the IMAP server supports the extension, + it is possible at any point after connecting to enable compression to reduce network + bandwidth usage. Ideally, this method should be called before authenticating. + + An asynchronous task context. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + Compression must be enabled before a folder has been selected. + + + The IMAP server does not support the COMPRESS extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server replied to the COMPRESS command with a NO or BAD response. + + + An IMAP protocol error occurred. + + + + + Asynchronously enable the QRESYNC feature. + + + Enables the QRESYNC feature. + The QRESYNC extension improves resynchronization performance of folders by + querying the IMAP server for a list of changes when the folder is opened using the + + method. + If this feature is enabled, the event is replaced + with the event. + This method needs to be called immediately after calling one of the + Authenticate methods, before + opening any folders. + + An asynchronous task context. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + Quick resynchronization needs to be enabled before selecting a folder. + + + The IMAP server does not support the QRESYNC extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server replied to the ENABLE command with a NO or BAD response. + + + An IMAP protocol error occurred. + + + + + Asynchronously enable the UTF8=ACCEPT extension. + + + Enables the UTF8=ACCEPT extension. + + An asynchronous task context. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + UTF8=ACCEPT needs to be enabled before selecting a folder. + + + The IMAP server does not support the UTF8=ACCEPT extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server replied to the ENABLE command with a NO or BAD response. + + + An IMAP protocol error occurred. + + + + + Asynchronously identify the client implementation to the server and obtain the server implementation details. + + + Passes along the client implementation details to the server while also obtaining implementation + details from the server. + If the is null or no properties have been set, no + identifying information will be sent to the server. + + Security Implications + This command has the danger of violating the privacy of users if misused. Clients should + notify users that they send the ID command. + It is highly desirable that implementations provide a method of disabling ID support, perhaps by + not calling this method at all, or by passing null as the + argument. + Implementors must exercise extreme care in adding properties to the . + Some properties, such as a processor ID number, Ethernet address, or other unique (or mostly unique) identifier + would allow tracking of users in ways that violate user privacy expectations and may also make it easier for + attackers to exploit security holes in the client. + + + The implementation details of the server if available; otherwise, null. + The client implementation. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The IMAP server does not support the ID extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server replied to the ID command with a NO or BAD response. + + + An IMAP protocol error occurred. + + + + + Asynchronously authenticate using the specified SASL mechanism. + + + Authenticates using the specified SASL mechanism. + For a list of available SASL authentication mechanisms supported by the server, + check the property after the service has been + connected. + + An asynchronous task context. + The SASL mechanism. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is already authenticated. + + + The operation was canceled via the cancellation token. + + + Authentication using the supplied credentials has failed. + + + A SASL authentication error occurred. + + + An I/O error occurred. + + + An IMAP command failed. + + + An IMAP protocol error occurred. + + + + + Asynchronously authenticate using the supplied credentials. + + + Asynchronously authenticates using the supplied credentials. + If the IMAP server supports one or more SASL authentication mechanisms, + then the SASL mechanisms that both the client and server support (not including + any OAUTH mechanisms) are tried in order of greatest security to weakest security. + Once a SASL authentication mechanism is found that both client and server support, + the credentials are used to authenticate. + If the server does not support SASL or if no common SASL mechanisms + can be found, then LOGIN command is used as a fallback. + To prevent the usage of certain authentication mechanisms, + simply remove them from the hash set + before calling this method. + + An asynchronous task context. + The text encoding to use for the user's credentials. + The user's credentials. + The cancellation token. + + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected. + + + The is already authenticated. + + + The operation was canceled via the cancellation token. + + + Authentication using the supplied credentials has failed. + + + A SASL authentication error occurred. + + + An I/O error occurred. + + + An IMAP command failed. + + + An IMAP protocol error occurred. + + + + + Asynchronously establish a connection to the specified IMAP server. + + + Establishes a connection to the specified IMAP or IMAP/S server. + If the has a value of 0, then the + parameter is used to determine the default port to + connect to. The default port used with + is 993. All other values will use a default port of 143. + If the has a value of + , then the is used + to determine the default security options. If the has a value + of 993, then the default options used will be + . All other values will use + . + Once a connection is established, properties such as + and will be + populated. + + + + + An asynchronous task context. + The host name to connect to. + The port to connect to. If the specified port is 0, then the default port will be used. + The secure socket options to when connecting. + The cancellation token. + + is null. + + + is not between 0 and 65535. + + + The is a zero-length string. + + + The has been disposed. + + + The is already connected. + + + was set to + + and the IMAP server does not support the STARTTLS extension. + + + The operation was canceled via the cancellation token. + + + A socket error occurred trying to connect to the remote host. + + + An error occurred during the SSL/TLS negotiations. + + + An I/O error occurred. + + + An IMAP command failed. + + + An IMAP protocol error occurred. + + + + + Asynchronously establish a connection to the specified IMAP or IMAP/S server using the provided socket. + + + Establishes a connection to the specified IMAP or IMAP/S server using + the provided socket. + If the has a value of + , then the is used + to determine the default security options. If the has a value + of 993, then the default options used will be + . All other values will use + . + Once a connection is established, properties such as + and will be + populated. + With the exception of using the to determine the + default to use when the value + is , the and + parameters are only used for logging purposes. + + An asynchronous task context. + The socket to use for the connection. + The host name to connect to. + The port to connect to. If the specified port is 0, then the default port will be used. + The secure socket options to when connecting. + The cancellation token. + + is null. + -or- + is null. + + + is not between 0 and 65535. + + + is not connected. + -or- + The is a zero-length string. + + + The has been disposed. + + + The is already connected. + + + was set to + + and the IMAP server does not support the STARTTLS extension. + + + The operation was canceled via the cancellation token. + + + An error occurred during the SSL/TLS negotiations. + + + An I/O error occurred. + + + An IMAP command failed. + + + An IMAP protocol error occurred. + + + + + Asynchronously establish a connection to the specified IMAP or IMAP/S server using the provided stream. + + + Establishes a connection to the specified IMAP or IMAP/S server using + the provided stream. + If the has a value of + , then the is used + to determine the default security options. If the has a value + of 993, then the default options used will be + . All other values will use + . + Once a connection is established, properties such as + and will be + populated. + With the exception of using the to determine the + default to use when the value + is , the and + parameters are only used for logging purposes. + + An asynchronous task context. + The stream to use for the connection. + The host name to connect to. + The port to connect to. If the specified port is 0, then the default port will be used. + The secure socket options to when connecting. + The cancellation token. + + is null. + -or- + is null. + + + is not between 0 and 65535. + + + The is a zero-length string. + + + The has been disposed. + + + The is already connected. + + + was set to + + and the IMAP server does not support the STARTTLS extension. + + + The operation was canceled via the cancellation token. + + + An error occurred during the SSL/TLS negotiations. + + + An I/O error occurred. + + + An IMAP command failed. + + + An IMAP protocol error occurred. + + + + + Asynchronously disconnect the service. + + + If is true, a LOGOUT command will be issued in order to disconnect cleanly. + + + + + An asynchronous task context. + If set to true, a LOGOUT command will be issued in order to disconnect cleanly. + The cancellation token. + + The has been disposed. + + + + + Asynchronously ping the IMAP server to keep the connection alive. + + + The NOOP command is typically used to keep the connection with the IMAP server + alive. When a client goes too long (typically 30 minutes) without sending any commands to the + IMAP server, the IMAP server will close the connection with the client, forcing the client to + reconnect before it can send any more commands. + The NOOP command also provides a great way for a client to check for new + messages. + When the IMAP server receives a NOOP command, it will reply to the client with a + list of pending updates such as EXISTS and RECENT counts on the currently + selected folder. To receive these notifications, subscribe to the + and events, + respectively. + For more information about the NOOP command, see + rfc3501. + + + + + An asynchronous task context. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server replied to the NOOP command with a NO or BAD response. + + + The server responded with an unexpected token. + + + + + Asynchronously toggle the into the IDLE state. + + + When a client enters the IDLE state, the IMAP server will send + events to the client as they occur on the selected folder. These events + may include notifications of new messages arriving, expunge notifications, + flag changes, etc. + Due to the nature of the IDLE command, a folder must be selected + before a client can enter into the IDLE state. This can be done by + opening a folder using + + or any of the other variants. + While the IDLE command is running, no other commands may be issued until the + is cancelled. + It is especially important to cancel the + before cancelling the when using SSL or TLS due to + the fact that cannot be polled. + + An asynchronous task context. + The cancellation token used to return to the non-idle state. + The cancellation token. + + must be cancellable (i.e. cannot be used). + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + A has not been opened. + + + The IMAP server does not support the IDLE extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server replied to the IDLE command with a NO or BAD response. + + + The server responded with an unexpected token. + + + + + Asynchronously request the specified notification events from the IMAP server. + + + The NOTIFY command is used to expand + which notifications the client wishes to be notified about, including status notifications + about folders other than the currently selected folder. It can also be used to automatically + FETCH information about new messages that have arrived in the currently selected folder. + This, combined with , + can be used to get instant notifications for changes to any of the specified folders. + + An asynchronous task context. + true if the server should immediately notify the client of the + selected folder's status; otherwise, false. + The specific event groups that the client would like to receive notifications for. + The cancellation token. + + is null. + + + is empty. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + One or more is invalid. + + + The IMAP server does not support the NOTIFY extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server replied to the NOTIFY command with a NO or BAD response. + + + The server responded with an unexpected token. + + + + + Asynchronously disable any previously requested notification events from the IMAP server. + + + Disables any notification events requested in a prior call to + . + request. + + An asynchronous task context. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The IMAP server does not support the NOTIFY extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server replied to the NOTIFY command with a NO or BAD response. + + + The server responded with an unexpected token. + + + + + Asynchronously get all of the folders within the specified namespace. + + + Gets all of the folders within the specified namespace. + + The folders. + The namespace. + The status items to pre-populate. + If set to true, only subscribed folders will be listed. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + The namespace folder could not be found. + + + An I/O error occurred. + + + The server replied to the LIST or LSUB command with a NO or BAD response. + + + The server responded with an unexpected token. + + + + + Asynchronously get the folder for the specified path. + + + Gets the folder for the specified path. + + The folder. + The folder path. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + The folder could not be found. + + + An I/O error occurred. + + + The server replied to the LIST command with a NO or BAD response. + + + The server responded with an unexpected token. + + + + + Asynchronously gets the specified metadata. + + + Gets the specified metadata. + + The requested metadata value. + The metadata tag. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The IMAP server does not support the METADATA or METADATA-SERVER extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously gets the specified metadata. + + + Gets the specified metadata. + + The requested metadata. + The metadata options. + The metadata tags. + The cancellation token. + + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The IMAP server does not support the METADATA or METADATA-SERVER extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously gets the specified metadata. + + + Sets the specified metadata. + + An asynchronous task context. + The metadata. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The IMAP server does not support the METADATA or METADATA-SERVER extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Initializes a new instance of the class. + + + Before you can retrieve messages with the , you must first + call one of the Connect + methods and then authenticate with the one of the + Authenticate + methods. + + + + + + + + Initializes a new instance of the class. + + + Before you can retrieve messages with the , you must first + call one of the Connect + methods and then authenticate with the one of the + Authenticate + methods. + + + + + The protocol logger. + + is null. + + + + + Gets an object that can be used to synchronize access to the IMAP server. + + + Gets an object that can be used to synchronize access to the IMAP server. + When using the non-Async methods from multiple threads, it is important to lock the + object for thread safety when using the synchronous methods. + + The lock object. + + + + Get the protocol supported by the message service. + + + Gets the protocol supported by the message service. + + The protocol. + + + + Get the capabilities supported by the IMAP server. + + + The capabilities will not be known until a successful connection has been made via one of + the Connect methods and may + change as a side-effect of calling one of the + Authenticate + methods. + + + + + The capabilities. + + Capabilities cannot be enabled, they may only be disabled. + + + + + Get the maximum size of a message that can be appended to a folder. + + + Gets the maximum size of a message, in bytes, that can be appended to a folder. + If the value is not set, then the limit is unspecified. + + The append limit. + + + + Get the internationalization level supported by the IMAP server. + + + Gets the internationalization level supported by the IMAP server. + For more information, see + section 4 of rfc5255. + + The internationalization level. + + + + Get the access rights supported by the IMAP server. + + + These rights are additional rights supported by the IMAP server beyond the standard rights + defined in section 2.1 of rfc4314 + and will not be populated until the client is successfully connected. + + + + + The rights. + + + + Instantiate a new . + + + Creates a new instance. + This method's purpose is to allow subclassing . + + The IMAP folder instance. + The constructior arguments. + + is null. + + + + + Enable compression over the IMAP connection. + + + Enables compression over the IMAP connection. + If the IMAP server supports the extension, + it is possible at any point after connecting to enable compression to reduce network + bandwidth usage. Ideally, this method should be called before authenticating. + + The cancellation token. + + The has been disposed. + + + The is not connected. + + + Compression must be enabled before a folder has been selected. + + + The IMAP server does not support the extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server replied to the COMPRESS command with a NO or BAD response. + + + An IMAP protocol error occurred. + + + + + Enable the QRESYNC feature. + + + Enables the QRESYNC feature. + The QRESYNC extension improves resynchronization performance of folders by + querying the IMAP server for a list of changes when the folder is opened using the + + method. + If this feature is enabled, the event is replaced + with the event. + This method needs to be called immediately after calling one of the + Authenticate methods, before + opening any folders. + + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + Quick resynchronization needs to be enabled before selecting a folder. + + + The IMAP server does not support the QRESYNC extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server replied to the ENABLE command with a NO or BAD response. + + + An IMAP protocol error occurred. + + + + + Enable the UTF8=ACCEPT extension. + + + Enables the UTF8=ACCEPT extension. + + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + UTF8=ACCEPT needs to be enabled before selecting a folder. + + + The IMAP server does not support the UTF8=ACCEPT extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server replied to the ENABLE command with a NO or BAD response. + + + An IMAP protocol error occurred. + + + + + Identify the client implementation to the server and obtain the server implementation details. + + + Passes along the client implementation details to the server while also obtaining implementation + details from the server. + If the is null or no properties have been set, no + identifying information will be sent to the server. + + Security Implications + This command has the danger of violating the privacy of users if misused. Clients should + notify users that they send the ID command. + It is highly desirable that implementations provide a method of disabling ID support, perhaps by + not calling this method at all, or by passing null as the + argument. + Implementors must exercise extreme care in adding properties to the . + Some properties, such as a processor ID number, Ethernet address, or other unique (or mostly unique) identifier + would allow tracking of users in ways that violate user privacy expectations and may also make it easier for + attackers to exploit security holes in the client. + + + + + + The implementation details of the server if available; otherwise, null. + The client implementation. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The IMAP server does not support the ID extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server replied to the ID command with a NO or BAD response. + + + An IMAP protocol error occurred. + + + + + Get the authentication mechanisms supported by the IMAP server. + + + The authentication mechanisms are queried as part of the + Connect + method. + To prevent the usage of certain authentication mechanisms, + simply remove them from the hash set + before authenticating. + + + + + The authentication mechanisms. + + + + Get the threading algorithms supported by the IMAP server. + + + The threading algorithms are queried as part of the + Connect + and Authenticate methods. + + + + + The supported threading algorithms. + + + + Get or set the timeout for network streaming operations, in milliseconds. + + + Gets or sets the underlying socket stream's + and values. + + The timeout in milliseconds. + + + + Get whether or not the client is currently connected to an IMAP server. + + + The state is set to true immediately after + one of the Connect + methods succeeds and is not set back to false until either the client + is disconnected via or until an + is thrown while attempting to read or write to + the underlying network socket. + When an is caught, the connection state of the + should be checked before continuing. + + true if the client is connected; otherwise, false. + + + + Get whether or not the connection is secure (typically via SSL or TLS). + + + Gets whether or not the connection is secure (typically via SSL or TLS). + + true if the connection is secure; otherwise, false. + + + + Get whether or not the connection is encrypted (typically via SSL or TLS). + + + Gets whether or not the connection is encrypted (typically via SSL or TLS). + + true if the connection is encrypted; otherwise, false. + + + + Get whether or not the connection is signed (typically via SSL or TLS). + + + Gets whether or not the connection is signed (typically via SSL or TLS). + + true if the connection is signed; otherwise, false. + + + + Get the negotiated SSL or TLS protocol version. + + + Gets the negotiated SSL or TLS protocol version once an SSL or TLS connection has been made. + + + + + The negotiated SSL or TLS protocol version. + + + + Get the negotiated SSL or TLS cipher algorithm. + + + Gets the negotiated SSL or TLS cipher algorithm once an SSL or TLS connection has been made. + + + + + The negotiated SSL or TLS cipher algorithm. + + + + Get the negotiated SSL or TLS cipher algorithm strength. + + + Gets the negotiated SSL or TLS cipher algorithm strength once an SSL or TLS connection has been made. + + + + + The negotiated SSL or TLS cipher algorithm strength. + + + + Get the negotiated SSL or TLS hash algorithm. + + + Gets the negotiated SSL or TLS hash algorithm once an SSL or TLS connection has been made. + + + + + The negotiated SSL or TLS hash algorithm. + + + + Get the negotiated SSL or TLS hash algorithm strength. + + + Gets the negotiated SSL or TLS hash algorithm strength once an SSL or TLS connection has been made. + + + + + The negotiated SSL or TLS hash algorithm strength. + + + + Get the negotiated SSL or TLS key exchange algorithm. + + + Gets the negotiated SSL or TLS key exchange algorithm once an SSL or TLS connection has been made. + + + + + The negotiated SSL or TLS key exchange algorithm. + + + + Get the negotiated SSL or TLS key exchange algorithm strength. + + + Gets the negotiated SSL or TLS key exchange algorithm strength once an SSL or TLS connection has been made. + + + + + The negotiated SSL or TLS key exchange algorithm strength. + + + + Get whether or not the client is currently authenticated with the IMAP server. + + + Gets whether or not the client is currently authenticated with the IMAP server. + To authenticate with the IMAP server, use one of the + Authenticate + methods. + + true if the client is connected; otherwise, false. + + + + Get whether or not the client is currently in the IDLE state. + + + Gets whether or not the client is currently in the IDLE state. + + true if an IDLE command is active; otherwise, false. + + + + Authenticate using the specified SASL mechanism. + + + Authenticates using the specified SASL mechanism. + For a list of available SASL authentication mechanisms supported by the server, + check the property after the service has been + connected. + + The SASL mechanism. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is already authenticated. + + + The operation was canceled via the cancellation token. + + + Authentication using the supplied credentials has failed. + + + A SASL authentication error occurred. + + + An I/O error occurred. + + + An IMAP command failed. + + + An IMAP protocol error occurred. + + + + + Authenticate using the supplied credentials. + + + Authenticates using the supplied credentials. + If the IMAP server supports one or more SASL authentication mechanisms, + then the SASL mechanisms that both the client and server support (not including + any OAUTH mechanisms) are tried in order of greatest security to weakest security. + Once a SASL authentication mechanism is found that both client and server support, + the credentials are used to authenticate. + If the server does not support SASL or if no common SASL mechanisms + can be found, then LOGIN command is used as a fallback. + To prevent the usage of certain authentication mechanisms, + simply remove them from the hash set + before calling this method. + + The text encoding to use for the user's credentials. + The user's credentials. + The cancellation token. + + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected. + + + The is already authenticated. + + + The operation was canceled via the cancellation token. + + + Authentication using the supplied credentials has failed. + + + A SASL authentication error occurred. + + + An I/O error occurred. + + + An IMAP command failed. + + + An IMAP protocol error occurred. + + + + + Establish a connection to the specified IMAP server. + + + Establishes a connection to the specified IMAP or IMAP/S server. + If the has a value of 0, then the + parameter is used to determine the default port to + connect to. The default port used with + is 993. All other values will use a default port of 143. + If the has a value of + , then the is used + to determine the default security options. If the has a value + of 993, then the default options used will be + . All other values will use + . + Once a connection is established, properties such as + and will be + populated. + + + + + The host name to connect to. + The port to connect to. If the specified port is 0, then the default port will be used. + The secure socket options to when connecting. + The cancellation token. + + is null. + + + is not between 0 and 65535. + + + The is a zero-length string. + + + The has been disposed. + + + The is already connected. + + + was set to + + and the IMAP server does not support the STARTTLS extension. + + + The operation was canceled via the cancellation token. + + + A socket error occurred trying to connect to the remote host. + + + An I/O error occurred. + + + An IMAP command failed. + + + An IMAP protocol error occurred. + + + + + Establish a connection to the specified IMAP or IMAP/S server using the provided socket. + + + Establishes a connection to the specified IMAP or IMAP/S server using + the provided socket. + If the has a value of + , then the is used + to determine the default security options. If the has a value + of 993, then the default options used will be + . All other values will use + . + Once a connection is established, properties such as + and will be + populated. + With the exception of using the to determine the + default to use when the value + is , the and + parameters are only used for logging purposes. + + The socket to use for the connection. + The host name to connect to. + The port to connect to. If the specified port is 0, then the default port will be used. + The secure socket options to when connecting. + The cancellation token. + + is null. + -or- + is null. + + + is not between 0 and 65535. + + + is not connected. + -or- + The is a zero-length string. + + + The has been disposed. + + + The is already connected. + + + was set to + + and the IMAP server does not support the STARTTLS extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + An IMAP command failed. + + + An IMAP protocol error occurred. + + + + + Establish a connection to the specified IMAP or IMAP/S server using the provided stream. + + + Establishes a connection to the specified IMAP or IMAP/S server using + the provided stream. + If the has a value of + , then the is used + to determine the default security options. If the has a value + of 993, then the default options used will be + . All other values will use + . + Once a connection is established, properties such as + and will be + populated. + With the exception of using the to determine the + default to use when the value + is , the and + parameters are only used for logging purposes. + + The stream to use for the connection. + The host name to connect to. + The port to connect to. If the specified port is 0, then the default port will be used. + The secure socket options to when connecting. + The cancellation token. + + is null. + -or- + is null. + + + is not between 0 and 65535. + + + The is a zero-length string. + + + The has been disposed. + + + The is already connected. + + + was set to + + and the IMAP server does not support the STARTTLS extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + An IMAP command failed. + + + An IMAP protocol error occurred. + + + + + Disconnect the service. + + + If is true, a LOGOUT command will be issued in order to disconnect cleanly. + + + + + If set to true, a LOGOUT command will be issued in order to disconnect cleanly. + The cancellation token. + + The has been disposed. + + + + + Ping the IMAP server to keep the connection alive. + + + The NOOP command is typically used to keep the connection with the IMAP server + alive. When a client goes too long (typically 30 minutes) without sending any commands to the + IMAP server, the IMAP server will close the connection with the client, forcing the client to + reconnect before it can send any more commands. + The NOOP command also provides a great way for a client to check for new + messages. + When the IMAP server receives a NOOP command, it will reply to the client with a + list of pending updates such as EXISTS and RECENT counts on the currently + selected folder. To receive these notifications, subscribe to the + and events, + respectively. + For more information about the NOOP command, see + rfc3501. + + + + + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server replied to the NOOP command with a NO or BAD response. + + + The server responded with an unexpected token. + + + + + Toggle the into the IDLE state. + + + When a client enters the IDLE state, the IMAP server will send + events to the client as they occur on the selected folder. These events + may include notifications of new messages arriving, expunge notifications, + flag changes, etc. + Due to the nature of the IDLE command, a folder must be selected + before a client can enter into the IDLE state. This can be done by + opening a folder using + + or any of the other variants. + While the IDLE command is running, no other commands may be issued until the + is cancelled. + It is especially important to cancel the + before cancelling the when using SSL or TLS due to + the fact that cannot be polled. + + + + + The cancellation token used to return to the non-idle state. + The cancellation token. + + must be cancellable (i.e. cannot be used). + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + A has not been opened. + + + The IMAP server does not support the IDLE extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server replied to the IDLE command with a NO or BAD response. + + + The server responded with an unexpected token. + + + + + Request the specified notification events from the IMAP server. + + + The NOTIFY command is used to expand + which notifications the client wishes to be notified about, including status notifications + about folders other than the currently selected folder. It can also be used to automatically + FETCH information about new messages that have arrived in the currently selected folder. + This, combined with , + can be used to get instant notifications for changes to any of the specified folders. + + true if the server should immediately notify the client of the + selected folder's status; otherwise, false. + The specific event groups that the client would like to receive notifications for. + The cancellation token. + + is null. + + + is empty. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + One or more is invalid. + + + The IMAP server does not support the NOTIFY extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server replied to the NOTIFY command with a NO or BAD response. + + + The server responded with an unexpected token. + + + + + Disable any previously requested notification events from the IMAP server. + + + Disables any notification events requested in a prior call to + . + request. + + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The IMAP server does not support the NOTIFY extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server replied to the NOTIFY command with a NO or BAD response. + + + The server responded with an unexpected token. + + + + + Get the personal namespaces. + + + The personal folder namespaces contain a user's personal mailbox folders. + + + + + The personal namespaces. + + + + Get the shared namespaces. + + + The shared folder namespaces contain mailbox folders that are shared with the user. + + + + + The shared namespaces. + + + + Get the other namespaces. + + + The other folder namespaces contain other mailbox folders. + + + + + The other namespaces. + + + + Get whether or not the mail store supports quotas. + + + Gets whether or not the mail store supports quotas. + + true if the mail store supports quotas; otherwise, false. + + + + Get the Inbox folder. + + + The Inbox folder is the default folder and always exists on the server. + This property will only be available after the client has been authenticated. + + + + + The Inbox folder. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + + + Get the specified special folder. + + + Not all IMAP servers support special folders. Only IMAP servers + supporting the or + extensions may have + special folders. + + The folder if available; otherwise null. + The type of special folder. + + is out of range. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The IMAP server does not support the SPECIAL-USE nor XLIST extensions. + + + + + Get the folder for the specified namespace. + + + Gets the folder for the specified namespace. + + + + + The folder. + The namespace. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder could not be found. + + + + + Get all of the folders within the specified namespace. + + + Gets all of the folders within the specified namespace. + + The folders. + The namespace. + The status items to pre-populate. + If set to true, only subscribed folders will be listed. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + The namespace folder could not be found. + + + An I/O error occurred. + + + The server replied to the LIST or LSUB command with a NO or BAD response. + + + The server responded with an unexpected token. + + + + + Get the folder for the specified path. + + + Gets the folder for the specified path. + + The folder. + The folder path. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + The folder could not be found. + + + An I/O error occurred. + + + The server replied to the LIST command with a NO or BAD response. + + + The server responded with an unexpected token. + + + + + Gets the specified metadata. + + + Gets the specified metadata. + + The requested metadata value. + The metadata tag. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The IMAP server does not support the METADATA or METADATA-SERVER extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Gets the specified metadata. + + + Gets the specified metadata. + + The requested metadata. + The metadata options. + The metadata tags. + The cancellation token. + + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The IMAP server does not support the METADATA or METADATA-SERVER extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Sets the specified metadata. + + + Sets the specified metadata. + + The metadata. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The IMAP server does not support the METADATA or METADATA-SERVER extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Occurs when a Google Mail server sends a WEBALERT response code to the client. + + + The event is raised whenever the Google Mail server sends a + WEBALERT message. + + + + + Raise the web alert event. + + + Raises the web alert event. + + The web alert URI. + The web alert message. + + is null. + -or- + is null. + + + + + Releases the unmanaged resources used by the and + optionally releases the managed resources. + + + Releases the unmanaged resources used by the and + optionally releases the managed resources. + + true to release both managed and unmanaged resources; + false to release only the unmanaged resources. + + + + An interface for an IMAP client. + + + Implemented by . + + + + + Get the capabilities supported by the IMAP server. + + + The capabilities will not be known until a successful connection has been made via one of + the Connect methods and may + change as a side-effect of calling one of the + Authenticate + methods. + + + + + The capabilities. + + Capabilities cannot be enabled, they may only be disabled. + + + + + Get the maximum size of a message that can be appended to a folder. + + + Gets the maximum size of a message, in bytes, that can be appended to a folder. + If the value is not set, then the limit is unspecified. + + The append limit. + + + + Get the internationalization level supported by the IMAP server. + + + Gets the internationalization level supported by the IMAP server. + For more information, see + section 4 of rfc5255. + + The internationalization level. + + + + Get the access rights supported by the IMAP server. + + + These rights are additional rights supported by the IMAP server beyond the standard rights + defined in section 2.1 of rfc4314 + and will not be populated until the client is successfully connected. + + + + + The rights. + + + + Get whether or not the client is currently in the IDLE state. + + + Gets whether or not the client is currently in the IDLE state. + + true if an IDLE command is active; otherwise, false. + + + + Enable compression over the IMAP connection. + + + Enables compression over the IMAP connection. + If the IMAP server supports the extension, + it is possible at any point after connecting to enable compression to reduce network + bandwidth usage. Ideally, this method should be called before authenticating. + + The cancellation token. + + The has been disposed. + + + The is not connected. + + + Compression must be enabled before a folder has been selected. + + + The IMAP server does not support the extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server replied to the COMPRESS command with a NO or BAD response. + + + An IMAP protocol error occurred. + + + + + Asynchronously enable compression over the IMAP connection. + + + Asynchronously enables compression over the IMAP connection. + If the IMAP server supports the extension, + it is possible at any point after connecting to enable compression to reduce network + bandwidth usage. Ideally, this method should be called before authenticating. + + An asynchronous task context. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + Compression must be enabled before a folder has been selected. + + + The IMAP server does not support the COMPRESS extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server replied to the COMPRESS command with a NO or BAD response. + + + An IMAP protocol error occurred. + + + + + Enable the UTF8=ACCEPT extension. + + + Enables the UTF8=ACCEPT extension. + + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + UTF8=ACCEPT needs to be enabled before selecting a folder. + + + The IMAP server does not support the UTF8=ACCEPT extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server replied to the ENABLE command with a NO or BAD response. + + + An IMAP protocol error occurred. + + + + + Asynchronously enable the UTF8=ACCEPT extension. + + + Enables the UTF8=ACCEPT extension. + + An asynchronous task context. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + UTF8=ACCEPT needs to be enabled before selecting a folder. + + + The IMAP server does not support the UTF8=ACCEPT extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server replied to the ENABLE command with a NO or BAD response. + + + An IMAP protocol error occurred. + + + + + Identify the client implementation to the server and obtain the server implementation details. + + + Passes along the client implementation details to the server while also obtaining implementation + details from the server. + If the is null or no properties have been set, no + identifying information will be sent to the server. + + Security Implications + This command has the danger of violating the privacy of users if misused. Clients should + notify users that they send the ID command. + It is highly desirable that implementations provide a method of disabling ID support, perhaps by + not calling this method at all, or by passing null as the + argument. + Implementors must exercise extreme care in adding properties to the . + Some properties, such as a processor ID number, Ethernet address, or other unique (or mostly unique) identifier + would allow tracking of users in ways that violate user privacy expectations and may also make it easier for + attackers to exploit security holes in the client. + + + + + + The implementation details of the server if available; otherwise, null. + The client implementation. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The IMAP server does not support the ID extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server replied to the ID command with a NO or BAD response. + + + An IMAP protocol error occurred. + + + + + Asynchronously identify the client implementation to the server and obtain the server implementation details. + + + Passes along the client implementation details to the server while also obtaining implementation + details from the server. + If the is null or no properties have been set, no + identifying information will be sent to the server. + + Security Implications + This command has the danger of violating the privacy of users if misused. Clients should + notify users that they send the ID command. + It is highly desirable that implementations provide a method of disabling ID support, perhaps by + not calling this method at all, or by passing null as the + argument. + Implementors must exercise extreme care in adding properties to the . + Some properties, such as a processor ID number, Ethernet address, or other unique (or mostly unique) identifier + would allow tracking of users in ways that violate user privacy expectations and may also make it easier for + attackers to exploit security holes in the client. + + + The implementation details of the server if available; otherwise, null. + The client implementation. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The IMAP server does not support the ID extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server replied to the ID command with a NO or BAD response. + + + An IMAP protocol error occurred. + + + + + Toggle the into the IDLE state. + + + When a client enters the IDLE state, the IMAP server will send + events to the client as they occur on the selected folder. These events + may include notifications of new messages arriving, expunge notifications, + flag changes, etc. + Due to the nature of the IDLE command, a folder must be selected + before a client can enter into the IDLE state. This can be done by + opening a folder using + + or any of the other variants. + While the IDLE command is running, no other commands may be issued until the + is cancelled. + It is especially important to cancel the + before cancelling the when using SSL or TLS due to + the fact that cannot be polled. + + + + + The cancellation token used to return to the non-idle state. + The cancellation token. + + must be cancellable (i.e. cannot be used). + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + A has not been opened. + + + The IMAP server does not support the IDLE extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server replied to the IDLE command with a NO or BAD response. + + + The server responded with an unexpected token. + + + + + Asynchronously toggle the into the IDLE state. + + + When a client enters the IDLE state, the IMAP server will send + events to the client as they occur on the selected folder. These events + may include notifications of new messages arriving, expunge notifications, + flag changes, etc. + Due to the nature of the IDLE command, a folder must be selected + before a client can enter into the IDLE state. This can be done by + opening a folder using + + or any of the other variants. + While the IDLE command is running, no other commands may be issued until the + is cancelled. + It is especially important to cancel the + before cancelling the when using SSL or TLS due to + the fact that cannot be polled. + + An asynchronous task context. + The cancellation token used to return to the non-idle state. + The cancellation token. + + must be cancellable (i.e. cannot be used). + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + A has not been opened. + + + The IMAP server does not support the IDLE extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server replied to the IDLE command with a NO or BAD response. + + + The server responded with an unexpected token. + + + + + Request the specified notification events from the IMAP server. + + + The NOTIFY command is used to expand + which notifications the client wishes to be notified about, including status notifications + about folders other than the currently selected folder. It can also be used to automatically + FETCH information about new messages that have arrived in the currently selected folder. + This, combined with , + can be used to get instant notifications for changes to any of the specified folders. + + true if the server should immediately notify the client of the + selected folder's status; otherwise, false. + The specific event groups that the client would like to receive notifications for. + The cancellation token. + + is null. + + + is empty. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + One or more is invalid. + + + The IMAP server does not support the NOTIFY extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server replied to the NOTIFY command with a NO or BAD response. + + + The server responded with an unexpected token. + + + + + Asynchronously request the specified notification events from the IMAP server. + + + The NOTIFY command is used to expand + which notifications the client wishes to be notified about, including status notifications + about folders other than the currently selected folder. It can also be used to automatically + FETCH information about new messages that have arrived in the currently selected folder. + This, combined with , + can be used to get instant notifications for changes to any of the specified folders. + + An asynchronous task context. + true if the server should immediately notify the client of the + selected folder's status; otherwise, false. + The specific event groups that the client would like to receive notifications for. + The cancellation token. + + is null. + + + is empty. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + One or more is invalid. + + + The IMAP server does not support the NOTIFY extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server replied to the NOTIFY command with a NO or BAD response. + + + The server responded with an unexpected token. + + + + + Disable any previously requested notification events from the IMAP server. + + + Disables any notification events requested in a prior call to + . + request. + + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The IMAP server does not support the NOTIFY extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server replied to the NOTIFY command with a NO or BAD response. + + + The server responded with an unexpected token. + + + + + Asynchronously disable any previously requested notification events from the IMAP server. + + + Disables any notification events requested in a prior call to + . + request. + + An asynchronous task context. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The IMAP server does not support the NOTIFY extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server replied to the NOTIFY command with a NO or BAD response. + + + The server responded with an unexpected token. + + + + + An interface for an IMAP folder. + + + Implemented by . + + + + + + + + + + + Get the specified body part headers. + + + Gets the specified body part headers. + + The body part headers. + The UID of the message. + The body part specifier. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested body part headers. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously get the specified body part headers. + + + Gets the specified body part headers. + + The body part headers. + The UID of the message. + The body part specifier. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested body part headers. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Get the specified body part headers. + + + Gets the specified body part headers. + + The body part headers. + The index of the message. + The body part specifier. + The cancellation token. + The progress reporting mechanism. + + is out of range. + + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested body part headers. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously get the specified body part headers. + + + Gets the specified body part headers. + + The body part headers. + The index of the message. + The body part specifier. + The cancellation token. + The progress reporting mechanism. + + is out of range. + + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested body part headers. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Get the specified body part. + + + Gets the specified body part. + + The body part. + The UID of the message. + The body part specifier. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested message body. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously get the specified body part. + + + Gets the specified body part. + + The body part. + The UID of the message. + The body part specifier. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested message body. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Get the specified body part. + + + Gets the specified body part. + + The body part. + The index of the message. + The body part specifier. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is out of range. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested message. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously get the specified body part. + + + Gets the specified body part. + + The body part. + The index of the message. + The body part specifier. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is out of range. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested message. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Get the streams for the specified messages. + + + Gets the streams for the specified messages. + + The uids of the messages. + + The cancellation token. + The progress reporting mechanism. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously get the streams for the specified messages. + + + Asynchronously gets the streams for the specified messages. + + An awaitable task. + The uids of the messages. + + The cancellation token. + The progress reporting mechanism. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Get the streams for the specified messages. + + + Gets the streams for the specified messages. + + The indexes of the messages. + + The cancellation token. + The progress reporting mechanism. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously get the streams for the specified messages. + + + Asynchronously gets the streams for the specified messages. + + An awaitable task. + The indexes of the messages. + + The cancellation token. + The progress reporting mechanism. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Get the streams for the specified messages. + + + Gets the streams for the specified messages. + + The minimum index. + The maximum index, or -1 to specify no upper bound. + + The cancellation token. + The progress reporting mechanism. + + is out of range. + -or- + is out of range. + + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously get the streams for the specified messages. + + + Asynchronously gets the streams for the specified messages. + + An awaitable task. + The minimum index. + The maximum index, or -1 to specify no upper bound. + + The cancellation token. + The progress reporting mechanism. + + is out of range. + -or- + is out of range. + + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Search the folder for messages matching the specified query. + + + Sends a UID SEARCH command with the specified query passed directly to the IMAP server + with no interpretation by MailKit. This means that the query may contain any arguments that a + UID SEARCH command is allowed to have according to the IMAP specifications and any + extensions that are supported, including RETURN parameters. + + An array of matching UIDs. + The search query. + The cancellation token. + + is null. + + + is an empty string. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously search the folder for messages matching the specified query. + + + Sends a UID SEARCH command with the specified query passed directly to the IMAP server + with no interpretation by MailKit. This means that the query may contain any arguments that a + UID SEARCH command is allowed to have according to the IMAP specifications and any + extensions that are supported, including RETURN parameters. + + An array of matching UIDs. + The search query. + The cancellation token. + + is null. + + + is an empty string. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Sort messages matching the specified query. + + + Sends a UID SORT command with the specified query passed directly to the IMAP server + with no interpretation by MailKit. This means that the query may contain any arguments that a + UID SORT command is allowed to have according to the IMAP specifications and any + extensions that are supported, including RETURN parameters. + + An array of matching UIDs. + The search query. + The cancellation token. + + is null. + + + is an empty string. + + + The IMAP server does not support the SORT extension. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously sort messages matching the specified query. + + + Sends a UID SORT command with the specified query passed directly to the IMAP server + with no interpretation by MailKit. This means that the query may contain any arguments that a + UID SORT command is allowed to have according to the IMAP specifications and any + extensions that are supported, including RETURN parameters. + + An array of matching UIDs. + The search query. + The cancellation token. + + is null. + + + is an empty string. + + + The IMAP server does not support the SORT extension. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + A callback used when fetching message streams. + + + This callback is meant to be used with the various + GetStreams + methods. + Once this callback returns, the stream argument will be disposed, so + it is important to consume the stream right away and not add it to a queue + for later processing. + + The IMAP folder that the message belongs to. + The index of the message in the folder. + The UID of the message in the folder. + The raw message (or part) stream. + + + + An asynchronous callback used when fetching message streams. + + + This callback is meant to be used with the various + GetStreamsAsync + methods. + Once this callback returns, the stream argument will be disposed, so + it is important to consume the stream right away and not add it to a queue + for later processing. + + An awaitable task context. + The IMAP folder that the message belongs to. + The index of the message in the folder. + The UID of the message in the folder. + The raw message (or part) stream. + The cancellation token. + + + + Capabilities supported by an IMAP server. + + + Capabilities are read as part of the response to the CAPABILITY command that + is issued during the connection and authentication phases of the + . + + + + + + + + The server does not support any additional extensions. + + + + + The server implements the core IMAP4 commands. + + + + + The server implements the core IMAP4rev1 commands. + + + + + The server implements the core IMAP4rev2 commands described in rfc9051. + + + + + The server supports the STATUS command. + + + + + The server supports the ACL extension defined in rfc2086 + and rfc4314. + + + + + The server supports the QUOTA extension. + + + + + The server supports the LITERAL+ extension. + + + + + The server supports the IDLE extension. + + + + + The server supports the MAILBOX-REFERRALS extension. + + + + + the server supports the LOGIN-REFERRALS extension. + + + + + The server supports the NAMESPACE extension. + + + + + The server supports the ID extension. + + + + + The server supports the CHILDREN extension. + + + + + The server supports the LOGINDISABLED extension. + + + + + The server supports the STARTTLS extension. + + + + + The server supports the MULTIAPPEND extension. + + + + + The server supports the BINARY content extension. + + + + + The server supports the UNSELECT extension. + + + + + The server supports the UIDPLUS extension. + + + + + The server supports the CATENATE extension. + + + + + The server supports the CONDSTORE extension. + + + + + The server supports the ESEARCH extension. + + + + + The server supports the SASL-IR extension. + + + + + The server supports the COMPRESS extension. + + + + + The server supports the WITHIN extension. + + + + + The server supports the ENABLE extension. + + + + + The server supports the QRESYNC extension. + + + + + The server supports the SEARCHRES extension. + + + + + The server supports the SORT extension. + + + + + The server supports the THREAD extension. + + + + + The server supports the ANNOTATE extension. + + + + + The server supports the LIST-EXTENDED extension. + + + + + The server supports the CONVERT extension. + + + + + The server supports the LANGUAGE extension. + + + + + The server supports the I18NLEVEL extension. + + + + + The server supports the ESORT extension. + + + + + The server supports the CONTEXT extension. + + + + + The server supports the METADATA extension. + + + + + The server supports the METADATA-SERVER extension. + + + + + The server supports the NOTIFY extension. + + + + + The server supports the FILTERS extension. + + + + + The server supports the LIST-STATUS extension. + + + + + The server supports the SORT=DISPLAY extension. + + + + + The server supports the CREATE-SPECIAL-USE extension. + + + + + The server supports the SPECIAL-USE extension. + + + + + The server supports the SEARCH=FUZZY extension. + + + + + The server supports the MULTISEARCH extension. + + + + + The server supports the MOVE extension. + + + + + The server supports the UTF8=ACCEPT extension. + + + + + The server supports the UTF8=ONLY extension. + + + + + The server supports the LITERAL- extension. + + + + + The server supports the APPENDLIMIT extension. + + + + + The server supports the UNAUTHENTICATE extension. + + + + + The server supports the STATUS=SIZE extension. + + + + + The server supports the LIST-MYRIGHTS extension. + + + + + The server supports the OBJECTID extension. + + + + + The server supports the REPLACE extension. + + + + + The server supports the SAVEDATE extension. + + + + + The server supports the PREVIEW extension. + + + + + The server supports the XLIST extension (GMail). + + + + + The server supports the X-GM-EXT1 extension (GMail). + + + + + An IMAP continuation handler. + + + All exceptions thrown by the handler are considered fatal and will + force-disconnect the connection. If a non-fatal error occurs, set + it on the property. + + + + + An IMAP untagged response handler. + + + Most IMAP commands return their results in untagged responses. + + + + + IMAP command status. + + + + + An IMAP IDLE context. + + + An IMAP IDLE command does not work like normal commands. Unlike most commands, + the IDLE command does not end until the client sends a separate "DONE" command. + In order to facilitate this, the way this works is that the consumer of MailKit's + IMAP APIs provides a 'doneToken' which signals to the command-processing loop to + send the "DONE" command. Since, like every other IMAP command, it is also necessary to + provide a means of cancelling the IDLE command, it becomes necessary to link the + 'doneToken' and the 'cancellationToken' together. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The IMAP engine. + The done token. + The cancellation token. + + + + Get the engine. + + + Gets the engine. + + The engine. + + + + Get the cancellation token. + + + Get the cancellation token. + + The cancellation token. + + + + Get the done token. + + + Gets the done token. + + The done token. + + + + Callback method to be used as the ImapCommand's ContinuationHandler. + + + Callback method to be used as the ImapCommand's ContinuationHandler. + + The ImapEngine. + The ImapCommand. + The text. + true if the command is being run asynchronously; otherwise, false. + + + + + Releases all resource used by the object. + + Call when you are finished using the . The + method leaves the in an unusable state. After + calling , you must release all references to the + so the garbage collector can reclaim the memory that the + was occupying. + + + + An IMAP literal object. + + + The literal can be a string, byte[], Stream, or a MimeMessage. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The formatting options. + The message. + The progress update action. + + + + Initializes a new instance of the class. + + + Creates a new . + + The formatting options. + The literal. + + + + Get the length of the literal, in bytes. + + + Gets the length of the literal, in bytes. + + The length. + + + + Write the literal to the specified stream. + + + Writes the literal to the specified stream. + + The stream. + The cancellation token. + + + + Asynchronously write the literal to the specified stream. + + + Asynchronously writes the literal to the specified stream. + + The stream. + The cancellation token. + + + + A partial IMAP command. + + + IMAP commands that contain literal strings are broken up into multiple parts + in case the IMAP server does not support the LITERAL+ extension. These parts + are then sent individually as we receive "+" responses from the server. + + + + + An IMAP command. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The IMAP engine that will be sending the command. + The cancellation token. + The IMAP folder that the command operates on. + The formatting options. + The command format. + The command arguments. + + is null. + -or- + is null. + -or- + is null. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The IMAP engine that will be sending the command. + The cancellation token. + The IMAP folder that the command operates on. + The command format. + The command arguments. + + is null. + -or- + is null. + + + + + Registers the untagged handler for the specified atom token. + + The atom token. + The handler. + + is null. + -or- + is null. + + + Untagged handlers must be registered before the command has been queued. + + + + + Sends the next part of the command to the server. + + true if there are more command parts to send; otherwise, false. + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + An IMAP protocol error occurred. + + + + + Sends the next part of the command to the server. + + true if there are more command parts to send; otherwise, false. + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + An IMAP protocol error occurred. + + + + + Get the first response-code of the specified type. + + + Gets the first response-code of the specified type. + + The type of response-code. + The response-code if it exists; otherwise, null. + + + + Throw an if the response was not OK. + + + Throws an if the response was not OK. + + + + + An exception that is thrown when an IMAP command returns NO or BAD. + + + The exception that is thrown when an IMAP command fails. Unlike a , + a does not require the to be reconnected. + + + + + Initializes a new instance of the class. + + + Creates a new from the serialized data. + + The serialization info. + The streaming context. + + is null. + + + + + Create a new based on the specified command name and state. + + + Create a new based on the specified command name and state. + + A new command exception. + The command name. + The command state. + + + + Initializes a new instance of the class. + + + Creates a new . + + The IMAP command response. + The error message. + The human-readable response text. + The inner exception. + + + + Initializes a new instance of the class. + + + Creates a new . + + The IMAP command response. + The human-readable response text. + The error message. + + + + Initializes a new instance of the class. + + + Creates a new . + + The IMAP command response. + The human-readable response text. + + + + Gets the IMAP command response. + + + Gets the IMAP command response. + + The IMAP command response. + + + + Gets the human-readable IMAP command response text. + + + Gets the human-readable IMAP command response text. + + The response text. + + + + When overridden in a derived class, sets the + with information about the exception. + + + Serializes the state of the . + + The serialization info. + The streaming context. + + is null. + + + + + An enumeration of possible IMAP command responses. + + + An enumeration of possible IMAP command responses. + + + + + No IMAP command response yet. + + + + + The command resulted in an "OK" response. + + + + + The command resulted in a "NO" response. + + + + + The command resulted in a "BAD" response. + + + + + The state of the . + + + + + The ImapEngine is in the disconnected state. + + + + + The ImapEngine is in the process of connecting. + + + + + The ImapEngine is connected but not yet authenticated. + + + + + The ImapEngine is in the authenticated state. + + + + + The ImapEngine is in the selected state. + + + + + The ImapEngine is in the IDLE state. + + + + + An IMAP command engine. + + + + + Get the authentication mechanisms supported by the IMAP server. + + + The authentication mechanisms are queried durring the + or methods. + + The authentication mechanisms. + + + + Get the compression algorithms supported by the IMAP server. + + + The compression algorithms are populated by the + and + methods. + + The compression algorithms. + + + + Get the threading algorithms supported by the IMAP server. + + + The threading algorithms are populated by the + and + methods. + + The threading algorithms. + + + + Gets the append limit supported by the IMAP server. + + + Gets the append limit supported by the IMAP server. + + The append limit. + + + + Gets the I18NLEVEL supported by the IMAP server. + + + Gets the I18NLEVEL supported by the IMAP server. + + The internationalization level. + + + + Get the capabilities supported by the IMAP server. + + + The capabilities will not be known until a successful connection has been + made via the or method. + + The capabilities. + + + + Indicates whether or not the engine is busy processing commands. + + + Indicates whether or not the engine is busy processing commands. + + true if th e engine is busy processing commands; otherwise, false. + + + + Get the capabilities version. + + + Every time the engine receives an untagged CAPABILITIES + response from the server, it increments this value. + + The capabilities version. + + + + Get the IMAP protocol version. + + + Gets the IMAP protocol version. + + The IMAP protocol version. + + + + Get the rights specified in the capabilities. + + + Gets the rights specified in the capabilities. + + The rights. + + + + Get the supported charsets. + + + Gets the supported charsets. + + The supported charsets. + + + + Get the supported contexts. + + + Gets the supported contexts. + + The supported contexts. + + + + Get whether or not the QRESYNC feature has been enabled. + + + Gets whether or not the QRESYNC feature has been enabled. + + true if the QRESYNC feature has been enabled; otherwise, false. + + + + Get whether or not the UTF8=ACCEPT feature has been enabled. + + + Gets whether or not the UTF8=ACCEPT feature has been enabled. + + true if the UTF8=ACCEPT feature has been enabled; otherwise, false. + + + + Get the URI of the IMAP server. + + + Gets the URI of the IMAP server. + + The URI of the IMAP server. + + + + Get the underlying IMAP stream. + + + Gets the underlying IMAP stream. + + The IMAP stream. + + + + Get or sets the state of the engine. + + + Gets or sets the state of the engine. + + The engine state. + + + + Get whether or not the engine is currently connected to a IMAP server. + + + Gets whether or not the engine is currently connected to a IMAP server. + + true if the engine is connected; otherwise, false. + + + + Gets the personal folder namespaces. + + + Gets the personal folder namespaces. + + The personal folder namespaces. + + + + Gets the shared folder namespaces. + + + Gets the shared folder namespaces. + + The shared folder namespaces. + + + + Gets the other folder namespaces. + + + Gets the other folder namespaces. + + The other folder namespaces. + + + + Gets the selected folder. + + + Gets the selected folder. + + The selected folder. + + + + Gets a value indicating whether the engine is disposed. + + + Gets a value indicating whether the engine is disposed. + + true if the engine is disposed; otherwise, false. + + + + Gets whether the current NOTIFY status prevents using indexes and * for referencing messages. + + + Gets whether the current NOTIFY status prevents using indexes and * for referencing messages. This is the case when the client has asked for MessageNew or MessageExpunge events on the SELECTED mailbox. + + true if the use of indexes and * is prevented; otherwise, false. + + + + Gets the Inbox folder. + + The Inbox folder. + + + + Gets the special folder containing an aggregate of all messages. + + The folder containing all messages. + + + + Gets the special archive folder. + + The archive folder. + + + + Gets the special folder containing drafts. + + The drafts folder. + + + + Gets the special folder containing flagged messages. + + The flagged folder. + + + + Gets the special folder containing important messages. + + The important folder. + + + + Gets the special folder containing junk messages. + + The junk folder. + + + + Gets the special folder containing sent messages. + + The sent. + + + + Gets the folder containing deleted messages. + + The trash folder. + + + + Sets the stream - this is only here to be used by the unit tests. + + The IMAP stream. + + + + Takes posession of the and reads the greeting. + + The IMAP stream. + The cancellation token. + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + An IMAP protocol error occurred. + + + + + Takes posession of the and reads the greeting. + + The IMAP stream. + The cancellation token. + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + An IMAP protocol error occurred. + + + + + Disconnects the . + + + Disconnects the . + + The exception that is causing the disconnection. + + + + Reads a single line from the . + + The line. + The cancellation token. + + The engine is not connected. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + An IMAP protocol error occurred. + + + + + Asynchronously reads a single line from the . + + The line. + The cancellation token. + + The engine is not connected. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + An IMAP protocol error occurred. + + + + + Reads the next token. + + The token. + The cancellation token. + + The engine is not connected. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + An IMAP protocol error occurred. + + + + + Asynchronously reads the next token. + + The token. + The cancellation token. + + The engine is not connected. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + An IMAP protocol error occurred. + + + + + Reads the next token. + + The token. + A list of characters that are not legal in bare string tokens. + The cancellation token. + + The engine is not connected. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + An IMAP protocol error occurred. + + + + + Asynchronously reads the next token. + + The token. + A list of characters that are not legal in bare string tokens. + The cancellation token. + + The engine is not connected. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + An IMAP protocol error occurred. + + + + + Peeks at the next token. + + The next token. + A list of characters that are not legal in bare string tokens. + The cancellation token. + + The engine is not connected. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + An IMAP protocol error occurred. + + + + + Asynchronously peeks at the next token. + + The next token. + A list of characters that are not legal in bare string tokens. + The cancellation token. + + The engine is not connected. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + An IMAP protocol error occurred. + + + + + Peeks at the next token. + + The next token. + The cancellation token. + + The engine is not connected. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + An IMAP protocol error occurred. + + + + + Asynchronously peeks at the next token. + + The next token. + The cancellation token. + + The engine is not connected. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + An IMAP protocol error occurred. + + + + + Reads the literal as a string. + + The literal. + The cancellation token. + + The is not in literal mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + + + Asynchronously reads the literal as a string. + + The literal. + The cancellation token. + + The is not in literal mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + + + Parses the response code. + + The response code. + Whether or not the resp-code is tagged vs untagged. + The cancellation token. + + + + Parses the response code. + + The response code. + Whether or not the resp-code is tagged vs untagged. + The cancellation token. + + + + Processes an untagged response. + + The untagged response. + The cancellation token. + + + + Processes an untagged response. + + The untagged response. + The cancellation token. + + + + Iterate the command pipeline. + + + + + Asynchronously iterate the command pipeline. + + + + + Wait for the specified command to finish. + + The IMAP command. + + is null. + + + + + Wait for the specified command to finish. + + The IMAP command. + + is null. + + + + + Queues the command. + + The command. + The cancellation token. + The folder that the command operates on. + The formatting options. + The command format. + The command arguments. + + + + Queues the command. + + The command. + The cancellation token. + The folder that the command operates on. + The command format. + The command arguments. + + + + Queues the command. + + The IMAP command. + + + + Queries the capabilities. + + The command result. + The cancellation token. + + + + Queries the capabilities. + + The command result. + The cancellation token. + + + + Cache the specified folder. + + The folder. + + + + Gets the cached folder. + + true if the folder was retreived from the cache; otherwise, false. + The encoded folder name. + The cached folder. + + + + Looks up and sets the property of each of the folders. + + The IMAP folders. + The cancellation token. + + + + Looks up and sets the property of each of the folders. + + The IMAP folders. + The cancellation token. + + + + Queries the namespaces. + + The command result. + The cancellation token. + + + + Asynchronously queries the namespaces. + + The command result. + The cancellation token. + + + + Assigns a folder as a special folder. + + The special folder. + + + + Assigns the special folders. + + The list of folders. + + + + Queries the special folders. + + The cancellation token. + + + + Queries the special folders. + + The cancellation token. + + + + Gets the folder representing the specified quota root. + + The folder. + The name of the quota root. + The cancellation token. + + + + Gets the folder representing the specified quota root. + + The folder. + The name of the quota root. + The cancellation token. + + + + Gets the folder for the specified path. + + The folder. + The folder path. + The cancellation token. + + + + Gets the folder for the specified path. + + The folder. + The folder path. + The cancellation token. + + + + Get all of the folders within the specified namespace. + + + Gets all of the folders within the specified namespace. + + The list of folders. + The namespace. + The status items to pre-populate. + If set to true, only subscribed folders will be listed. + The cancellation token. + + + + Get all of the folders within the specified namespace. + + + Gets all of the folders within the specified namespace. + + The list of folders. + The namespace. + The status items to pre-populate. + If set to true, only subscribed folders will be listed. + The cancellation token. + + + + Decodes the name of the mailbox. + + The mailbox name. + The encoded name. + + + + Encodes the name of the mailbox. + + The mailbox name. + The encoded mailbox name. + + + + Determines whether the mailbox name is valid or not. + + true if the mailbox name is valid; otherwise, false. + The mailbox name. + The path delimeter. + + + + Occurs when the engine receives an alert message from the server. + + + + + Occurs when the engine receives a webalert message from the server. + + + + + Occurs when the engine receives a notification that a folder has been created. + + + + + Occurs when the engine receives a notification that metadata has changed. + + + + + Occurs when the engine receives a notification overflow message from the server. + + + + + Releases all resource used by the object. + + Call when you are finished using the . The + method leaves the in an unusable state. After + calling , you must release all references to the so + the garbage collector can reclaim the memory that the was occupying. + + + + An IMAP event group used with the NOTIFY command. + + + An IMAP event group used with the NOTIFY command. + + + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + + The mailbox filter. + The list of IMAP events. + + is null. + -or- + is null. + + + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + + The mailbox filter. + The list of IMAP events. + + is null. + -or- + is null. + + + + + Get the mailbox filter. + + + Gets the mailbox filter. + + The mailbox filter. + + + + Get the list of IMAP events. + + + Gets the list of IMAP events. + + The events. + + + + Format the IMAP NOTIFY command for this particular IMAP event group. + + + Formats the IMAP NOTIFY command for this particular IMAP event group. + + The IMAP engine. + The IMAP command builder. + The IMAP command argument builder. + Gets set to true if the NOTIFY command requests the MessageNew or + MessageExpunged events for a SELECTED or SELECTED-DELAYED mailbox filter; otherwise it is left unchanged. + + + + An IMAP mailbox filter for use with the NOTIFY command. + + + An IMAP mailbox filter for use with the NOTIFY command. + + + + + An IMAP mailbox filter specifying that the client wants immediate notifications for + the currently selected folder. + + + The SELECTED mailbox specifier requires the server to send immediate + notifications for the currently selected mailbox about all specified + message events. + + + + + An IMAP mailbox filter specifying the currently selected folder but delays notifications + until a command has been issued. + + + The SELECTED-DELAYED mailbox specifier requires the server to delay a + event until the client issues a command that allows + returning information about expunged messages (see + Section 7.4.1 of RFC3501] + for more details), for example, till a NOOP or an IDLE command has been issued. + When SELECTED-DELAYED is specified, the server MAY also delay returning other message + events until the client issues one of the commands specified above, or it MAY return them + immediately. + + + + + An IMAP mailbox filter specifying the currently selected folder. + + + The INBOXES mailbox specifier refers to all selectable mailboxes in the user's + personal namespace(s) to which messages may be delivered by a Message Delivery Agent (MDA). + + If the IMAP server cannot easily compute this set, it MUST treat + as equivalent to . + + + + + An IMAP mailbox filter specifying all selectable folders within the user's personal namespace. + + + The PERSONAL mailbox specifier refers to all selectable folders within the user's personal namespace. + + + + + An IMAP mailbox filter that refers to all subscribed folders. + + + The SUBSCRIBED mailbox specifier refers to all folders subscribed to by the user. + If the subscription list changes, the server MUST reevaluate the list. + + + + + An IMAP mailbox filter that specifies a list of folders to receive notifications about. + + + An IMAP mailbox filter that specifies a list of folders to receive notifications about. + + + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + + The list of folders to watch for events. + + is null. + + + The list of is empty. + -or- + The list of contains folders that are not of + type . + + + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + + The list of folders to watch for events. + + is null. + + + The list of is empty. + -or- + The list of contains folders that are not of + type . + + + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + + The name of the mailbox filter. + The list of folders to watch for events. + + is null. + + + The list of is empty. + -or- + The list of contains folders that are not of + type . + + + + + Format the IMAP NOTIFY command for this particular IMAP mailbox filter. + + + Formats the IMAP NOTIFY command for this particular IMAP mailbox filter. + + The IMAP engine. + The IMAP command builder. + The IMAP command argument builder. + + + + An IMAP mailbox filter that specifies a list of folder subtrees to get notifications about. + + + The client will receive notifications for each specified folder plus all selectable + folders that are subordinate to any of the specified folders. + + + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + + The list of folders to watch for events. + + is null. + + + The list of is empty. + -or- + The list of contains folders that are not of + type . + + + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + + The list of folders to watch for events. + + is null. + + + The list of is empty. + -or- + The list of contains folders that are not of + type . + + + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + + The name of the mailbox filter. + + + + Get the name of the mailbox filter. + + + Gets the name of the mailbox filter. + + The name. + + + + Format the IMAP NOTIFY command for this particular IMAP mailbox filter. + + + Formats the IMAP NOTIFY command for this particular IMAP mailbox filter. + + The IMAP engine. + The IMAP command builder. + The IMAP command argument builder. + + + + An IMAP notification event. + + + An IMAP notification event. + + + + + An IMAP event notification for expunged messages. + + + If the expunged message or messages are in the selected mailbox, the server notifies the client + using (or if + the QRESYNC extension has been enabled via + or + ). + If the expunged message or messages are in another mailbox, the + and properties will be updated and the appropriate + and events will be + emitted for the relevant folder. If the QRESYNC + extension is enabled, the property will also be updated and + the event will be emitted. + if a client requests with the + mailbox specifier, the meaning of a message index can change at any time, so the client cannot use + message indexes in commands anymore. The client MUST use API variants that take or + a . The meaning of ** can also change when messages are added or expunged. + A client wishing to keep using message indexes can either use the + mailbox specifier or can avoid using the event entirely. + + + + + An IMAP event notification for message flag changes. + + + If the notification arrives for a message located in the currently selected + folder, then that folder will emit a event as well as a + event with an appropriately populated + . + On the other hand, if the notification arrives for a message that is not + located in the currently selected folder, then the events that are emitted will depend on the + of the IMAP server. + If the server supports the capability (or the + capability and the client has enabled it via + ), then the + event will be emitted as well as the + event (if the latter has changed). If the number of + seen messages has changed, then the event may also be emitted. + If the server does not support either the capability nor + the capability and the client has not enabled the later capability + via , then the server may choose + only to notify the client of changes by emitting the + event. + + + + + An IMAP event notification for message annotation changes. + + + If the notification arrives for a message located in the currently selected + folder, then that folder will emit a event as well as a + event with an appropriately populated + . + On the other hand, if the notification arrives for a message that is not + located in the currently selected folder, then the events that are emitted will depend on the + of the IMAP server. + If the server supports the capability (or the + capability and the client has enabled it via + ), then the + event will be emitted as well as the + event (if the latter has changed). If the number of + seen messages has changed, then the event may also be emitted. + If the server does not support either the capability nor + the capability and the client has not enabled the later capability + via , then the server may choose + only to notify the client of changes by emitting the + event. + + + + + AN IMAP event notification for folders that have been created, deleted, or renamed. + + + These notifications are sent if an affected mailbox name was created, deleted, or renamed. + As these notifications are received by the client, the apropriate will be emitted: + , , or + , respectively. + If the server supports , granting or revocation of the + right to the current user on the affected folder will also be + considered folder creation or deletion, respectively. If a folder is created or deleted, the folder itself + and its direct parent (whether it is an existing folder or not) are considered to be affected. + + + + + An IMAP event notification for folders who have had their subscription status changed. + + + This event requests that the server notifies the client of any subscription changes, + causing the or + events to be emitted accordingly on the affected . + + + + + An IMAP event notification for changes to folder metadata. + + + Support for this event type is OPTIONAL unless is supported + by the server, in which case support for this event type is REQUIRED. + If the server does support this event, then the event + will be emitted whenever metadata changes for any folder included in the . + + + + + An IMAP event notification for changes to server metadata. + + + Support for this event type is OPTIONAL unless is supported + by the server, in which case support for this event type is REQUIRED. + If the server does support this event, then the event + will be emitted whenever metadata changes. + + + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + + The name of the IMAP event. + true if the event is a message event; otherwise, false. + + + + Get whether or not this is a message event. + + + Gets whether or not this is a message event. + + true if is message event; otherwise, false. + + + + Get the name of the IMAP event. + + + Gets the name of the IMAP event. + + The name of the IMAP event. + + + + Format the IMAP NOTIFY command for this particular IMAP mailbox filter. + + + Formats the IMAP NOTIFY command for this particular IMAP mailbox filter. + + The IMAP engine. + The IMAP command builder. + The IMAP command argument builder. + true if the event is being registered for a + or + mailbox filter. + + + + An IMAP event notification for new or appended messages. + + + An IMAP event notification for new or appended messages. + If the new or appended message is in the selected folder, the folder will emit the + event, followed by a + event containing the information requested by the client. + These events will not be emitted for any message created by the client on this particular folder + as a result of, for example, a call to + + or . + + + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + + The fetch request to use when new messages arrive. + + is null. + + + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + + The message summary items to automatically retrieve for new messages. + + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + + The message summary items to automatically retrieve for new messages. + Additional message headers to retrieve for new messages. + + is null. + + + One or more of the specified is invalid. + + + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + + The message summary items to automatically retrieve for new messages. + Additional message headers to retrieve for new messages. + + is null. + + + One or more of the specified is invalid. + + + + + Format the IMAP NOTIFY command for this particular IMAP mailbox filter. + + + Formats the IMAP NOTIFY command for this particular IMAP mailbox filter. + + The IMAP engine. + The IMAP command builder. + The IMAP command argument builder. + true if the event is being registered for a + or + mailbox filter. + + + + An IMAP folder. + + + An IMAP folder. + + + + + + + + + + + Initializes a new instance of the class. + + + Creates a new . + If you subclass , you will also need to subclass + and override the + + method in order to return a new instance of your ImapFolder subclass. + + The constructor arguments. + + is null. + + + + + Get the IMAP command engine. + + + Gets the IMAP command engine. + + The engine. + + + + Get the encoded name of the folder. + + + Gets the encoded name of the folder. + + The encoded name. + + + + Gets an object that can be used to synchronize access to the IMAP server. + + + Gets an object that can be used to synchronize access to the IMAP server. + When using the non-Async methods from multiple threads, it is important to lock the + object for thread safety when using the synchronous methods. + + The lock object. + + + + Get the threading algorithms supported by the folder. + + + Get the threading algorithms supported by the folder. + + The supported threading algorithms. + + + + Determine whether or not an supports a feature. + + + Determines whether or not an supports a feature. + + The desired feature. + true if the feature is supported; otherwise, false. + + + + Notifies the folder that a parent folder has been renamed. + + + Updates the property. + + + + + Gets a value indicating whether the folder is currently open. + + + Gets a value indicating whether the folder is currently open. + + true if the folder is currently open; otherwise, false. + + + + Open the folder using the requested folder access. + + + This variant of the + method is meant for quick resynchronization of the folder. Before calling this method, + the method MUST be called. + You should also make sure to add listeners to the and + events to get notifications of changes since + the last time the folder was opened. + + The state of the folder. + The requested folder access. + The last known value. + The last known value. + The last known list of unique message identifiers. + The cancellation token. + + is not a valid value. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The does not exist. + + + The QRESYNC feature has not been enabled. + + + The IMAP server does not support the QRESYNC extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously open the folder using the requested folder access. + + + This variant of the + method is meant for quick resynchronization of the folder. Before calling this method, + the method MUST be called. + You should also make sure to add listeners to the and + events to get notifications of changes since + the last time the folder was opened. + + The state of the folder. + The requested folder access. + The last known value. + The last known value. + The last known list of unique message identifiers. + The cancellation token. + + is not a valid value. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The does not exist. + + + The QRESYNC feature has not been enabled. + + + The IMAP server does not support the QRESYNC extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Open the folder using the requested folder access. + + + Opens the folder using the requested folder access. + + The state of the folder. + The requested folder access. + The cancellation token. + + is not a valid value. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The does not exist. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously open the folder using the requested folder access. + + + Opens the folder using the requested folder access. + + The state of the folder. + The requested folder access. + The cancellation token. + + is not a valid value. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The does not exist. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Close the folder, optionally expunging the messages marked for deletion. + + + Closes the folder, optionally expunging the messages marked for deletion. + + If set to true, expunge. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously close the folder, optionally expunging the messages marked for deletion. + + + Closes the folder, optionally expunging the messages marked for deletion. + + An asynchronous task context. + If set to true, expunge. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Create a new subfolder with the given name. + + + Creates a new subfolder with the given name. + + The created folder. + The name of the folder to create. + true if the folder will be used to contain messages; otherwise, false. + The cancellation token. + + is null. + + + is empty. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is nil, and thus child folders cannot be created. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously create a new subfolder with the given name. + + + Creates a new subfolder with the given name. + + The created folder. + The name of the folder to create. + true if the folder will be used to contain messages; otherwise, false. + The cancellation token. + + is null. + + + is empty. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is nil, and thus child folders cannot be created. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Create a new subfolder with the given name. + + + Creates a new subfolder with the given name. + + The created folder. + The name of the folder to create. + A list of special uses for the folder being created. + The cancellation token. + + is null. + -or- + is null. + + + is empty. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is nil, and thus child folders cannot be created. + + + The IMAP server does not support the CREATE-SPECIAL-USE extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously create a new subfolder with the given name. + + + Creates a new subfolder with the given name. + + The created folder. + The name of the folder to create. + A list of special uses for the folder being created. + The cancellation token. + + is null. + -or- + is null. + + + is empty. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is nil, and thus child folders cannot be created. + + + The IMAP server does not support the CREATE-SPECIAL-USE extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Rename the folder to exist with a new name under a new parent folder. + + + Renames the folder to exist with a new name under a new parent folder. + + The new parent folder. + The new name of the folder. + The cancellation token. + + is null. + -or- + is null. + + + does not belong to the . + -or- + is not a legal folder name. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The does not exist. + + + The folder cannot be renamed (it is either a namespace or the Inbox). + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously rename the folder to exist with a new name under a new parent folder. + + + Renames the folder to exist with a new name under a new parent folder. + + An awaitable task. + The new parent folder. + The new name of the folder. + The cancellation token. + + is null. + -or- + is null. + + + does not belong to the . + -or- + is not a legal folder name. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The does not exist. + + + The folder cannot be renamed (it is either a namespace or the Inbox). + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Delete the folder on the IMAP server. + + + Deletes the folder on the IMAP server. + This method will not delete any child folders. + + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder cannot be deleted (it is either a namespace or the Inbox). + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously delete the folder on the IMAP server. + + + Deletes the folder on the IMAP server. + This method will not delete any child folders. + + An awaitable task. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder cannot be deleted (it is either a namespace or the Inbox). + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Subscribe the folder. + + + Subscribes the folder. + + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously subscribe the folder. + + + Subscribes the folder. + + An awaitable task. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Unsubscribe the folder. + + + Unsubscribes the folder. + + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously unsubscribe the folder. + + + Unsubscribes the folder. + + An awaitable task. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Get the subfolders. + + + Gets the subfolders. + + The subfolders. + The status items to pre-populate. + If set to true, only subscribed folders will be listed. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously get the subfolders. + + + Gets the subfolders. + + The subfolders. + The status items to pre-populate. + If set to true, only subscribed folders will be listed. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Get the specified subfolder. + + + Gets the specified subfolder. + + The subfolder. + The name of the subfolder. + The cancellation token. + + is null. + + + is either an empty string or contains the . + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The requested folder could not be found. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously get the specified subfolder. + + + Gets the specified subfolder. + + The subfolder. + The name of the subfolder. + The cancellation token. + + is null. + + + is either an empty string or contains the . + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The requested folder could not be found. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Force the server to sync its in-memory state with its disk state. + + + The CHECK command forces the IMAP server to sync its + in-memory state with its disk state. + For more information about the CHECK command, see + rfc350101. + + The cancellation token. + + The has been disposed. + + + The is not currently open. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously force the server to sync its in-memory state with its disk state. + + + The CHECK command forces the IMAP server to sync its + in-memory state with its disk state. + For more information about the CHECK command, see + rfc350101. + + An awaitable task. + The cancellation token. + + The has been disposed. + + + The is not currently open. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Update the values of the specified items. + + + Updates the values of the specified items. + The method + MUST NOT be used on a folder that is already in the opened state. Instead, other ways + of getting the desired information should be used. + For example, a common use for the + method is to get the number of unread messages in the folder. When the folder is open, however, it is + possible to use the + method to query for the list of unread messages. + For more information about the STATUS command, see + rfc3501. + + The items to update. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The does not exist. + + + The IMAP server does not support the STATUS command. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously update the values of the specified items. + + + Updates the values of the specified items. + The method + MUST NOT be used on a folder that is already in the opened state. Instead, other ways + of getting the desired information should be used. + For example, a common use for the + method is to get the number of unread messages in the folder. When the folder is open, however, it is + possible to use the + method to query for the list of unread messages. + For more information about the STATUS command, see + rfc3501. + + An awaitable task. + The items to update. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The does not exist. + + + The IMAP server does not support the STATUS command. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Get the complete access control list for the folder. + + + Gets the complete access control list for the folder. + + The access control list. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The IMAP server does not support the ACL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously get the complete access control list for the folder. + + + Gets the complete access control list for the folder. + + The access control list. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The IMAP server does not support the ACL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Get the access rights for a particular identifier. + + + Gets the access rights for a particular identifier. + + The access rights. + The identifier name. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The IMAP server does not support the ACL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously get the access rights for a particular identifier. + + + Gets the access rights for a particular identifier. + + The access rights. + The identifier name. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The IMAP server does not support the ACL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Get the access rights for the current authenticated user. + + + Gets the access rights for the current authenticated user. + + The access rights. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The IMAP server does not support the ACL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously get the access rights for the current authenticated user. + + + Gets the access rights for the current authenticated user. + + The access rights. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The IMAP server does not support the ACL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Add access rights for the specified identity. + + + Adds the given access rights for the specified identity. + + The identity name. + The access rights. + The cancellation token. + + is null. + -or- + is null. + + + No rights were specified. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The IMAP server does not support the ACL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously add access rights for the specified identity. + + + Adds the given access rights for the specified identity. + + An asynchronous task context. + The identity name. + The access rights. + The cancellation token. + + is null. + -or- + is null. + + + No rights were specified. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The IMAP server does not support the ACL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Remove access rights for the specified identity. + + + Removes the given access rights for the specified identity. + + The identity name. + The access rights. + The cancellation token. + + is null. + -or- + is null. + + + No rights were specified. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The IMAP server does not support the ACL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously remove access rights for the specified identity. + + + Removes the given access rights for the specified identity. + + An asynchronous task context. + The identity name. + The access rights. + The cancellation token. + + is null. + -or- + is null. + + + No rights were specified. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The IMAP server does not support the ACL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Set the access rights for the specified identity. + + + Sets the access rights for the specified identity. + + The identity name. + The access rights. + The cancellation token. + + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The IMAP server does not support the ACL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously get the access rights for the specified identity. + + + Sets the access rights for the specified identity. + + An awaitable task. + The identity name. + The access rights. + The cancellation token. + + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The IMAP server does not support the ACL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Remove all access rights for the given identity. + + + Removes all access rights for the given identity. + + The identity name. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The IMAP server does not support the ACL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously remove all access rights for the given identity. + + + Removes all access rights for the given identity. + + An awaitable task. + The identity name. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The IMAP server does not support the ACL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Get the specified metadata. + + + Gets the specified metadata. + + The requested metadata value. + The metadata tag. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The IMAP server does not support the METADATA extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously get the specified metadata. + + + Gets the specified metadata. + + The requested metadata value. + The metadata tag. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The IMAP server does not support the METADATA extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Get the specified metadata. + + + Gets the specified metadata. + + The requested metadata. + The metadata options. + The metadata tags. + The cancellation token. + + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The IMAP server does not support the METADATA extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously get the specified metadata. + + + Gets the specified metadata. + + The requested metadata. + The metadata options. + The metadata tags. + The cancellation token. + + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The IMAP server does not support the METADATA extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Set the specified metadata. + + + Sets the specified metadata. + + The metadata. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The IMAP server does not support the METADATA extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously set the specified metadata. + + + Sets the specified metadata. + + An asynchronous task context. + The metadata. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The IMAP server does not support the METADATA extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Handles an untagged QUOTAROOT response. + + An asynchronous task. + The IMAP engine. + The IMAP command. + The index. + Whether or not asynchronous IO methods should be used. + + + + Handles an untagged QUOTA response. + + An asynchronous task. + The IMAP engine. + The IMAP command. + The index. + Whether or not asynchronous IO methods should be used. + + + + Get the quota information for the folder. + + + Gets the quota information for the folder. + To determine if a quotas are supported, check the + property. + + The folder quota. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The IMAP server does not support the QUOTA extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously get the quota information for the folder. + + + Gets the quota information for the folder. + To determine if a quotas are supported, check the + property. + + The folder quota. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The IMAP server does not support the QUOTA extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Set the quota limits for the folder. + + + Sets the quota limits for the folder. + To determine if a quotas are supported, check the + property. + + The folder quota. + If not null, sets the maximum number of messages to allow. + If not null, sets the maximum storage size (in kilobytes). + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The IMAP server does not support the QUOTA extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously set the quota limits for the folder. + + + Sets the quota limits for the folder. + To determine if a quotas are supported, check the + property. + + The folder quota. + If not null, sets the maximum number of messages to allow. + If not null, sets the maximum storage size (in kilobytes). + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The IMAP server does not support the QUOTA extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Expunge the folder, permanently removing all messages marked for deletion. + + + The EXPUNGE command permanently removes all messages in the folder + that have the flag set. + For more information about the EXPUNGE command, see + rfc3501. + Normally, a event will be emitted + for each message that is expunged. However, if the IMAP server supports the QRESYNC extension + and it has been enabled via the + method, then the event will be emitted rather than + the event. + + The cancellation token. + + The has been disposed. + + + The is not currently open in read-write mode. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously expunge the folder, permanently removing all messages marked for deletion. + + + The EXPUNGE command permanently removes all messages in the folder + that have the flag set. + For more information about the EXPUNGE command, see + rfc3501. + Normally, a event will be emitted + for each message that is expunged. However, if the IMAP server supports the QRESYNC extension + and it has been enabled via the + method, then the event will be emitted rather than + the event. + + An asynchronous task context. + The cancellation token. + + The has been disposed. + + + The is not currently open in read-write mode. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Expunge the specified uids, permanently removing them from the folder. + + + Expunges the specified uids, permanently removing them from the folder. + If the IMAP server supports the UIDPLUS extension (check the + for the + flag), then this operation is atomic. Otherwise, MailKit implements this operation + by first searching for the full list of message uids in the folder that are marked for + deletion, unmarking the set of message uids that are not within the specified list of + uids to be be expunged, expunging the folder (thus expunging the requested uids), and + finally restoring the deleted flag on the collection of message uids that were originally + marked for deletion that were not included in the list of uids provided. For this reason, + it is advisable for clients that wish to maintain state to implement this themselves when + the IMAP server does not support the UIDPLUS extension. + For more information about the UID EXPUNGE command, see + rfc4315. + Normally, a event will be emitted + for each message that is expunged. However, if the IMAP server supports the QRESYNC extension + and it has been enabled via the + method, then the event will be emitted rather than + the event. + + The message uids. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously expunge the specified uids, permanently removing them from the folder. + + + Expunges the specified uids, permanently removing them from the folder. + If the IMAP server supports the UIDPLUS extension (check the + for the + flag), then this operation is atomic. Otherwise, MailKit implements this operation + by first searching for the full list of message uids in the folder that are marked for + deletion, unmarking the set of message uids that are not within the specified list of + uids to be be expunged, expunging the folder (thus expunging the requested uids), and + finally restoring the deleted flag on the collection of message uids that were originally + marked for deletion that were not included in the list of uids provided. For this reason, + it is advisable for clients that wish to maintain state to implement this themselves when + the IMAP server does not support the UIDPLUS extension. + For more information about the UID EXPUNGE command, see + rfc4315. + Normally, a event will be emitted + for each message that is expunged. However, if the IMAP server supports the QRESYNC extension + and it has been enabled via the + method, then the event will be emitted rather than + the event. + + An asynchronous task context. + The message uids. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Append a message to the folder. + + + Appends a message to the folder and returns the UniqueId assigned to the message. + + The UID of the appended message, if available; otherwise, null. + The formatting options. + The append request. + The cancellation token. + + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + Internationalized formatting was requested but has not been enabled. + + + The does not exist. + + + The operation was canceled via the cancellation token. + + + Internationalized formatting was requested but is not supported by the server. + -or- + The request included annotations but the folder does not support annotations. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously append a message to the folder. + + + Asynchronously appends a message to the folder and returns the UniqueId assigned to the message. + + The UID of the appended message, if available; otherwise, null. + The formatting options. + The append request. + The cancellation token. + + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + Internationalized formatting was requested but has not been enabled. + + + The does not exist. + + + The operation was canceled via the cancellation token. + + + Internationalized formatting was requested but is not supported by the server. + -or- + The request included annotations but the folder does not support annotations. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Append multiple messages to the folder. + + + Appends multiple messages to the folder and returns the UniqueIds assigned to the messages. + + The UIDs of the appended messages, if available; otherwise an empty array. + The formatting options. + The append requests. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + Internationalized formatting was requested but has not been enabled. + + + The does not exist. + + + The operation was canceled via the cancellation token. + + + Internationalized formatting was requested but is not supported by the server. + -or- + One ore more requests included annotations but the folder does not support annotations. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously append multiple messages to the folder. + + + Asynchronously appends multiple messages to the folder and returns the UniqueIds assigned to the messages. + + The UIDs of the appended messages, if available; otherwise an empty array. + The formatting options. + The append requests. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + Internationalized formatting was requested but has not been enabled. + + + The does not exist. + + + The operation was canceled via the cancellation token. + + + Internationalized formatting was requested but is not supported by the server. + -or- + One ore more requests included annotations but the folder does not support annotations. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Replace a message in the folder. + + + Replaces a message in the folder and returns the UniqueId assigned to the new message. + + The UID of the new message, if available; otherwise, null. + The formatting options. + The UID of the message to be replaced. + The replace request. + The cancellation token. + + is null. + -or- + is null. + + + is invalid. + -or- + The destination folder does not belong to this . + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + Internationalized formatting was requested but has not been enabled. + + + The does not exist. + + + The is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + Internationalized formatting was requested but is not supported by the server. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously replace a message in the folder. + + + Asynchronously replaces a message in the folder and returns the UniqueId assigned to the new message. + + The UID of the new message, if available; otherwise, null. + The formatting options. + The UID of the message to be replaced. + The replace request. + The cancellation token. + + is null. + -or- + is null. + + + is invalid. + -or- + The destination folder does not belong to this . + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + Internationalized formatting was requested but has not been enabled. + + + The does not exist. + + + The is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + Internationalized formatting was requested but is not supported by the server. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Replace a message in the folder. + + + Replaces a message in the folder and returns the UniqueId assigned to the new message. + + The UID of the new message, if available; otherwise, null. + The formatting options. + The index of the message to be replaced. + The replace request. + The cancellation token. + + is null. + -or- + is null. + + + is out of range. + + + The destination folder does not belong to this . + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + Internationalized formatting was requested but has not been enabled. + + + The does not exist. + + + The is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + Internationalized formatting was requested but is not supported by the server. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously replace a message in the folder. + + + Asynchronously replaces a message in the folder and returns the UniqueId assigned to the new message. + + The UID of the new message, if available; otherwise, null. + The formatting options. + The index of the message to be replaced. + The replace request. + The cancellation token. + + is null. + -or- + is null. + + + is out of range. + + + The destination folder does not belong to this . + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + Internationalized formatting was requested but has not been enabled. + + + The does not exist. + + + The is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + Internationalized formatting was requested but is not supported by the server. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Copy the specified messages to the destination folder. + + + Copies the specified messages to the destination folder. + + The UID mapping of the messages in the destination folder, if available; otherwise an empty mapping. + The UIDs of the messages to copy. + The destination folder. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + -or- + The destination folder does not belong to the . + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + does not exist. + + + The is not currently open. + + + The IMAP server does not support the UIDPLUS extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously copy the specified messages to the destination folder. + + + Copies the specified messages to the destination folder. + + The UID mapping of the messages in the destination folder, if available; otherwise an empty mapping. + The UIDs of the messages to copy. + The destination folder. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + -or- + The destination folder does not belong to the . + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + does not exist. + + + The is not currently open. + + + The IMAP server does not support the UIDPLUS extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Move the specified messages to the destination folder. + + + Moves the specified messages to the destination folder. + If the IMAP server supports the MOVE extension (check the + property for the flag), then this operation will be atomic. + Otherwise, MailKit implements this by first copying the messages to the destination folder, then + marking them for deletion in the originating folder, and finally expunging them (see + for more information about how a + subset of messages are expunged). Since the server could disconnect at any point between those 3 + (or more) commands, it is advisable for clients to implement their own logic for moving messages when + the IMAP server does not support the MOVE command in order to better handle spontanious server + disconnects and other error conditions. + + The UID mapping of the messages in the destination folder, if available; otherwise an empty mapping. + The UIDs of the messages to move. + The destination folder. + The cancellation token. + + is null. + -or- + is null. + + + is empty. + -or- + One or more of the is invalid. + -or- + The destination folder does not belong to the . + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + does not exist. + + + The is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously move the specified messages to the destination folder. + + + Moves the specified messages to the destination folder. + If the IMAP server supports the MOVE extension (check the + property for the flag), then this operation will be atomic. + Otherwise, MailKit implements this by first copying the messages to the destination folder, then + marking them for deletion in the originating folder, and finally expunging them (see + for more information about how a + subset of messages are expunged). Since the server could disconnect at any point between those 3 + (or more) commands, it is advisable for clients to implement their own logic for moving messages when + the IMAP server does not support the MOVE command in order to better handle spontanious server + disconnects and other error conditions. + + The UID mapping of the messages in the destination folder, if available; otherwise an empty mapping. + The UIDs of the messages to move. + The destination folder. + The cancellation token. + + is null. + -or- + is null. + + + is empty. + -or- + One or more of the is invalid. + -or- + The destination folder does not belong to the . + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + does not exist. + + + The is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Copy the specified messages to the destination folder. + + + Copies the specified messages to the destination folder. + + The indexes of the messages to copy. + The destination folder. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + -or- + The destination folder does not belong to the . + + + The has been disposed. + + + The is not currently open. + + + The is not connected. + + + The is not authenticated. + + + does not exist. + + + The is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously copy the specified messages to the destination folder. + + + Copies the specified messages to the destination folder. + + An awaitable task. + The indexes of the messages to copy. + The destination folder. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + -or- + The destination folder does not belong to the . + + + The has been disposed. + + + The is not currently open. + + + The is not connected. + + + The is not authenticated. + + + does not exist. + + + The is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Move the specified messages to the destination folder. + + + If the IMAP server supports the MOVE command, then the MOVE command will be used. Otherwise, + the messages will first be copied to the destination folder and then marked as \Deleted in the + originating folder. Since the server could disconnect at any point between those 2 operations, it + may be advisable to implement your own logic for moving messages in this case in order to better + handle spontanious server disconnects and other error conditions. + + The indexes of the messages to move. + The destination folder. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + -or- + The destination folder does not belong to the . + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + does not exist. + + + The is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously move the specified messages to the destination folder. + + + If the IMAP server supports the MOVE command, then the MOVE command will be used. Otherwise, + the messages will first be copied to the destination folder and then marked as \Deleted in the + originating folder. Since the server could disconnect at any point between those 2 operations, it + may be advisable to implement your own logic for moving messages in this case in order to better + handle spontanious server disconnects and other error conditions. + + An awaitable task. + The indexes of the messages to move. + The destination folder. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + -or- + The destination folder does not belong to the . + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + does not exist. + + + The is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Get an enumerator for the messages in the folder. + + + Gets an enumerator for the messages in the folder. + + The enumerator. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + + + Store the annotations for the specified messages. + + + Stores the annotations for the specified messages. + + The UIDs of the messages. + The annotations to store. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open in read-write mode. + + + Cannot store annotations without any properties defined. + + + The does not support annotations. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously store the annotations for the specified messages. + + + Asynchronously stores the annotations for the specified messages. + + An asynchronous task context. + The UIDs of the messages. + The annotations to store. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open in read-write mode. + + + Cannot store annotations without any properties defined. + + + The does not support annotations. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Store the annotations for the specified messages only if their mod-sequence value is less than the specified value. + + + Stores the annotations for the specified messages only if their mod-sequence value is less than the specified value. + + The unique IDs of the messages that were not updated. + The UIDs of the messages. + The mod-sequence value. + The annotations to store. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open in read-write mode. + + + Cannot store annotations without any properties defined. + + + The does not support annotations. + -or- + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously store the annotations for the specified messages only if their mod-sequence value is less than the specified value. + + + Asynchronously stores the annotations for the specified messages only if their mod-sequence value is less than the specified value. + + The unique IDs of the messages that were not updated. + The UIDs of the messages. + The mod-sequence value. + The annotations to store. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open in read-write mode. + + + Cannot store annotations without any properties defined. + + + The does not support annotations. + -or- + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Store the annotations for the specified messages. + + + Stores the annotations for the specified messages. + + The indexes of the messages. + The annotations to store. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open in read-write mode. + + + Cannot store annotations without any properties defined. + + + The does not support annotations. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously store the annotations for the specified messages. + + + Asynchronously stores the annotations for the specified messages. + + An asynchronous task context. + The indexes of the messages. + The annotations to store. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open in read-write mode. + + + Cannot store annotations without any properties defined. + + + The does not support annotations. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Store the annotations for the specified messages only if their mod-sequence value is less than the specified value. + + + Stores the annotations for the specified messages only if their mod-sequence value is less than the specified value. + + The indexes of the messages that were not updated. + The indexes of the messages. + The mod-sequence value. + The annotations to store. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open in read-write mode. + + + Cannot store annotations without any properties defined. + + + The does not support annotations. + -or- + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously store the annotations for the specified messages only if their mod-sequence value is less than the specified value. + + + Asynchronously stores the annotations for the specified messages only if their mod-sequence value is less than the specified value.s + + The indexes of the messages that were not updated. + The indexes of the messages. + The mod-sequence value. + The annotations to store. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open in read-write mode. + + + Cannot store annotations without any properties defined. + + + The does not support annotations. + -or- + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Fetches the message summaries for the specified message UIDs. + + + Fetches the message summaries for the specified message UIDs. + It should be noted that if another client has modified any message + in the folder, the IMAP server may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + + + + An enumeration of summaries for the requested messages. + The UIDs. + The fetch request. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not currently open. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + The does not support mod-sequences. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously fetches the message summaries for the specified message UIDs. + + + Fetches the message summaries for the specified message UIDs. + It should be noted that if another client has modified any message + in the folder, the IMAP server may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + + + + An enumeration of summaries for the requested messages. + The UIDs. + The fetch request. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not currently open. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + The does not support mod-sequences. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Fetches the message summaries for the specified message indexes. + + + Fetches the message summaries for the specified message indexes. + It should be noted that if another client has modified any message + in the folder, the IMAP server may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The indexes. + The fetch request. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not currently open. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + The does not support mod-sequences. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously fetches the message summaries for the specified message indexes. + + + Fetches the message summaries for the specified message indexes. + It should be noted that if another client has modified any message + in the folder, the IMAP server may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The indexes. + The fetch request. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not currently open. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + The does not support mod-sequences. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Fetches the message summaries for the messages between the two indexes, inclusive. + + + Fetches the message summaries for the messages between the two + indexes, inclusive. + It should be noted that if another client has modified any message + in the folder, the IMAP server may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The minimum index. + The maximum index, or -1 to specify no upper bound. + The fetch request. + The cancellation token. + + is out of range. + -or- + is out of range. + + + is null. + + + The has been disposed. + + + The is not currently open. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + The does not support mod-sequences. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously fetches the message summaries for the messages between the two indexes, inclusive. + + + Fetches the message summaries for the messages between the two + indexes, inclusive. + It should be noted that if another client has modified any message + in the folder, the IMAP server may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The minimum index. + The maximum index, or -1 to specify no upper bound. + The fetch request. + The cancellation token. + + is out of range. + -or- + is out of range. + + + is null. + + + The has been disposed. + + + The is not currently open. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + The does not support mod-sequences. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Create a backing stream for use with the GetMessage, GetBodyPart, and GetStream methods. + + + Allows subclass implementations to override the type of stream + created for use with the GetMessage, GetBodyPart and GetStream methods. + This could be useful for subclass implementations that intend to implement + support for caching and/or for subclass implementations that want to use + temporary file streams instead of memory-based streams for larger amounts of + message data. + Subclasses that implement caching using this API should wait for + before adding the stream to their cache. + Streams returned by this method SHOULD clean up any allocated resources + such as deleting temporary files from the file system. + The will not be available for the various + GetMessage(), GetBodyPart() and GetStream() methods that take a message index rather + than a . It may also not be available if the IMAP server + response does not specify the UID value prior to sending the literal-string + token containing the message stream. + + + The stream. + The unique identifier of the message, if available. + The section of the message that is being fetched. + The starting offset of the message section being fetched. + The length of the stream being fetched, measured in bytes. + + + + Commit a stream returned by . + + + Commits a stream returned by . + This method is called only after both the message data has successfully + been written to the stream returned by and a + has been obtained for the associated message. + For subclasses implementing caching, this method should be used for + committing the stream to their cache. + Subclass implementations may take advantage of the fact that + allows returning a new + reference if they move a file on the file system and wish to return a new + based on the new path, for example. + + + The stream. + The stream. + The unique identifier of the message. + The section of the message that the stream represents. + The starting offset of the message section. + The length of the stream, measured in bytes. + + + + Get the specified message headers. + + + Gets the specified message headers. + + The message headers. + The UID of the message. + The cancellation token. + The progress reporting mechanism. + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested message headers. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously get the specified message headers. + + + Gets the specified message headers. + + The message headers. + The UID of the message. + The cancellation token. + The progress reporting mechanism. + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested message headers. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Get the specified body part headers. + + + Gets the specified body part headers. + + The body part headers. + The UID of the message. + The body part specifier. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested body part headers. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously get the specified body part headers. + + + Gets the specified body part headers. + + The body part headers. + The UID of the message. + The body part specifier. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested body part headers. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Get the specified body part headers. + + + Gets the specified body part headers. + + The body part headers. + The UID of the message. + The body part. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested body part headers. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously get the specified body part headers. + + + Gets the specified body part headers. + + The body part headers. + The UID of the message. + The body part. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested body part headers. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Get the specified message headers. + + + Gets the specified message headers. + + The message headers. + The index of the message. + The cancellation token. + The progress reporting mechanism. + + is out of range. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested message headers. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously get the specified message headers. + + + Gets the specified message headers. + + The message headers. + The index of the message. + The cancellation token. + The progress reporting mechanism. + + is out of range. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested message headers. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Get the specified body part headers. + + + Gets the specified body part headers. + + The body part headers. + The index of the message. + The body part specifier. + The cancellation token. + The progress reporting mechanism. + + is out of range. + + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested body part headers. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously get the specified body part headers. + + + Gets the specified body part headers. + + The body part headers. + The index of the message. + The body part specifier. + The cancellation token. + The progress reporting mechanism. + + is out of range. + + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested body part headers. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Get the specified body part headers. + + + Gets the specified body part headers. + + The body part headers. + The index of the message. + The body part. + The cancellation token. + The progress reporting mechanism. + + is out of range. + + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested body part headers. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously get the specified body part headers. + + + Gets the specified body part headers. + + The body part headers. + The index of the message. + The body part. + The cancellation token. + The progress reporting mechanism. + + is out of range. + + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested body part headers. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Get the specified message. + + + Gets the specified message. + + The message. + The UID of the message. + The cancellation token. + The progress reporting mechanism. + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested message. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously get the specified message. + + + Gets the specified message. + + The message. + The UID of the message. + The cancellation token. + The progress reporting mechanism. + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested message. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Get the specified message. + + + Gets the specified message. + + The message. + The index of the message. + The cancellation token. + The progress reporting mechanism. + + is out of range. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested message. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously get the specified message. + + + Gets the specified message. + + The message. + The index of the message. + The cancellation token. + The progress reporting mechanism. + + is out of range. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested message. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Get the specified body part. + + + Gets the specified body part. + + + + + The body part. + The UID of the message. + The body part specifier. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested message body. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously get the specified body part. + + + Gets the specified body part. + + + + + The body part. + The UID of the message. + The body part specifier. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested message body. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Get the specified body part. + + + Gets the specified body part. + + + + + The body part. + The UID of the message. + The body part. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested message body. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously get the specified body part. + + + Gets the specified body part. + + + + + The body part. + The UID of the message. + The body part. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested message body. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Get the specified body part. + + + Gets the specified body part. + + The body part. + The index of the message. + The body part specifier. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is out of range. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested message. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously get the specified body part. + + + Gets the specified body part. + + The body part. + The index of the message. + The body part specifier. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is out of range. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested message. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Get the specified body part. + + + Gets the specified body part. + + The body part. + The index of the message. + The body part. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is out of range. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested message. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously get the specified body part. + + + Gets the specified body part. + + The body part. + The index of the message. + The body part. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is out of range. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested message. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Get a substream of the specified message. + + + Fetches a substream of the message. If the starting offset is beyond + the end of the message, an empty stream is returned. If the number of + bytes desired extends beyond the end of the message, the stream will + end where the message ends. + + The stream. + The UID of the message. + The starting offset of the first desired byte. + The number of bytes desired. + The cancellation token. + The progress reporting mechanism. + + is invalid. + + + is negative. + -or- + is negative. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested message stream. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously gets a substream of the specified message. + + + Fetches a substream of the message. If the starting offset is beyond + the end of the message, an empty stream is returned. If the number of + bytes desired extends beyond the end of the message, the stream will + end where the message ends. + + The stream. + The UID of the message. + The starting offset of the first desired byte. + The number of bytes desired. + The cancellation token. + The progress reporting mechanism. + + is invalid. + + + is negative. + -or- + is negative. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested message stream. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Get a substream of the specified message. + + + Fetches a substream of the message. If the starting offset is beyond + the end of the message, an empty stream is returned. If the number of + bytes desired extends beyond the end of the message, a truncated stream + will be returned. + + The stream. + The index of the message. + The starting offset of the first desired byte. + The number of bytes desired. + The cancellation token. + The progress reporting mechanism. + + is out of range. + -or- + is negative. + -or- + is negative. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested message stream. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously gets a substream of the specified message. + + + Fetches a substream of the message. If the starting offset is beyond + the end of the message, an empty stream is returned. If the number of + bytes desired extends beyond the end of the message, a truncated stream + will be returned. + + The stream. + The index of the message. + The starting offset of the first desired byte. + The number of bytes desired. + The cancellation token. + The progress reporting mechanism. + + is out of range. + -or- + is negative. + -or- + is negative. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested message stream. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Get a substream of the specified body part. + + + Gets a substream of the specified message. + For more information about how to construct the , + see Section 6.4.5 of RFC3501. + + + + + The stream. + The UID of the message. + The desired section of the message. + The cancellation token. + The progress reporting mechanism. + + is invalid. + + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested message stream. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously gets a substream of the specified body part. + + + Gets a substream of the specified message. + For more information about how to construct the , + see Section 6.4.5 of RFC3501. + + + + + The stream. + The UID of the message. + The desired section of the message. + The cancellation token. + The progress reporting mechanism. + + is invalid. + + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested message stream. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Get a substream of the specified message. + + + Gets a substream of the specified message. If the starting offset is beyond + the end of the specified section of the message, an empty stream is returned. If + the number of bytes desired extends beyond the end of the section, a truncated + stream will be returned. + For more information about how to construct the , + see Section 6.4.5 of RFC3501. + + The stream. + The UID of the message. + The desired section of the message. + The starting offset of the first desired byte. + The number of bytes desired. + The cancellation token. + The progress reporting mechanism. + + is invalid. + + + is null. + + + is negative. + -or- + is negative. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested message stream. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously gets a substream of the specified message. + + + Gets a substream of the specified message. If the starting offset is beyond + the end of the specified section of the message, an empty stream is returned. If + the number of bytes desired extends beyond the end of the section, a truncated + stream will be returned. + For more information about how to construct the , + see Section 6.4.5 of RFC3501. + + The stream. + The UID of the message. + The desired section of the message. + The starting offset of the first desired byte. + The number of bytes desired. + The cancellation token. + The progress reporting mechanism. + + is invalid. + + + is null. + + + is negative. + -or- + is negative. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested message stream. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Get a substream of the specified message. + + + Gets a substream of the specified message. + For more information about how to construct the , + see Section 6.4.5 of RFC3501. + + The stream. + The index of the message. + The desired section of the message. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is out of range. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested message stream. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously gets a substream of the specified message. + + + Gets a substream of the specified message. + For more information about how to construct the , + see Section 6.4.5 of RFC3501. + + The stream. + The index of the message. + The desired section of the message. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is out of range. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested message stream. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Get a substream of the specified message. + + + Gets a substream of the specified message. If the starting offset is beyond + the end of the specified section of the message, an empty stream is returned. If + the number of bytes desired extends beyond the end of the section, a truncated + stream will be returned. + For more information about how to construct the , + see Section 6.4.5 of RFC3501. + + The stream. + The index of the message. + The desired section of the message. + The starting offset of the first desired byte. + The number of bytes desired. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is out of range. + -or- + is negative. + -or- + is negative. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested message stream. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously gets a substream of the specified message. + + + Gets a substream of the specified message. If the starting offset is beyond + the end of the specified section of the message, an empty stream is returned. If + the number of bytes desired extends beyond the end of the section, a truncated + stream will be returned. + For more information about how to construct the , + see Section 6.4.5 of RFC3501. + + The stream. + The index of the message. + The desired section of the message. + The starting offset of the first desired byte. + The number of bytes desired. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is out of range. + -or- + is negative. + -or- + is negative. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The IMAP server did not return the requested message stream. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Get the streams for the specified messages. + + + Gets the streams for the specified messages. + + The uids of the messages. + + The cancellation token. + The progress reporting mechanism. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously get the streams for the specified messages. + + + Asynchronously gets the streams for the specified messages. + + An awaitable task. + The uids of the messages. + + The cancellation token. + The progress reporting mechanism. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Get the streams for the specified messages. + + + Gets the streams for the specified messages. + + The indexes of the messages. + + The cancellation token. + The progress reporting mechanism. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously get the streams for the specified messages. + + + Asynchronously gets the streams for the specified messages. + + An awaitable task. + The indexes of the messages. + + The cancellation token. + The progress reporting mechanism. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Get the streams for the specified messages. + + + Gets the streams for the specified messages. + + The minimum index. + The maximum index, or -1 to specify no upper bound. + + The cancellation token. + The progress reporting mechanism. + + is out of range. + -or- + is out of range. + + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously get the streams for the specified messages. + + + Asynchronously gets the streams for the specified messages. + + An awaitable task. + The minimum index. + The maximum index, or -1 to specify no upper bound. + + The cancellation token. + The progress reporting mechanism. + + is out of range. + -or- + is out of range. + + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Store message flags and keywords for a set of messages. + + + Updates the message flags and keywords for a set of messages. + + The UIDs of the messages that were not updated. + The message UIDs. + The message flags and keywords to store. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open in read-write mode. + + + The specified an value + but the does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously store message flags and keywords for a set of messages. + + + Asynchronously updates the message flags and keywords for a set of messages. + + The UIDs of the messages that were not updated. + The message UIDs. + The message flags and keywords to store. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open in read-write mode. + + + The specified an value + but the does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Store message flags and keywords for a set of messages. + + + Updates the message flags and keywords for a set of message. + + The indexes of the messages that were not updated. + The message indexes. + The message flags and keywords to store. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open in read-write mode. + + + The specified an value + but the does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously store message flags and keywords for a set of messages. + + + Asynchronously updates the message flags and keywords for a set of messages. + + The indexes of the messages that were not updated. + The message indexes. + The message flags and keywords to store. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open in read-write mode. + + + The specified an value + but the does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Store GMail-style labels for a set of messages. + + + Updates the GMail-style labels for a set of messages. + + The UIDs of the messages that were not updated. + The message UIDs. + The GMail-style labels to store. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open in read-write mode. + + + The specified an value + but the does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously store GMail-style labels for a set of messages. + + + Asynchronously updates the GMail-style labels for a set of messages. + + The UIDs of the messages that were not updated. + The message UIDs. + The GMail-style labels to store. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open in read-write mode. + + + The specified an value + but the does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Store GMail-style labels for a set of messages. + + + Updates the GMail-style labels for a set of message. + + The indexes of the messages that were not updated. + The message indexes. + The GMail-style labels to store. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open in read-write mode. + + + The specified an value + but the does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously store GMail-style labels for a set of messages. + + + Asynchronously updates the GMail-style labels for a set of messages. + + The indexes of the messages that were not updated. + The message indexes. + The GMail-style labels to store. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open in read-write mode. + + + The specified an value + but the does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Search the folder for messages matching the specified query. + + + Sends a UID SEARCH command with the specified query passed directly to the IMAP server + with no interpretation by MailKit. This means that the query may contain any arguments that a + UID SEARCH command is allowed to have according to the IMAP specifications and any + extensions that are supported, including RETURN parameters. + + An array of matching UIDs. + The search query. + The cancellation token. + + is null. + + + is an empty string. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously search the folder for messages matching the specified query. + + + Sends a UID SEARCH command with the specified query passed directly to the IMAP server + with no interpretation by MailKit. This means that the query may contain any arguments that a + UID SEARCH command is allowed to have according to the IMAP specifications and any + extensions that are supported, including RETURN parameters. + + An array of matching UIDs. + The search query. + The cancellation token. + + is null. + + + is an empty string. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Search the folder for messages matching the specified query. + + + Searches the folder for messages matching the specified query, + returning only the specified search results. + + The search results. + The search options. + The search query. + The cancellation token. + + is null. + + + One or more search terms in the are not supported by the IMAP server. + -or- + The IMAP server does not support the ESEARCH extension. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously search the folder for messages matching the specified query. + + + Searches the folder for messages matching the specified query, + returning only the specified search results. + + The search results. + The search options. + The search query. + The cancellation token. + + is null. + + + One or more search terms in the are not supported by the IMAP server. + -or- + The IMAP server does not support the ESEARCH extension. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Sort messages matching the specified query. + + + Sends a UID SORT command with the specified query passed directly to the IMAP server + with no interpretation by MailKit. This means that the query may contain any arguments that a + UID SORT command is allowed to have according to the IMAP specifications and any + extensions that are supported, including RETURN parameters. + + An array of matching UIDs. + The search query. + The cancellation token. + + is null. + + + is an empty string. + + + The IMAP server does not support the SORT extension. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously sort messages matching the specified query. + + + Sends a UID SORT command with the specified query passed directly to the IMAP server + with no interpretation by MailKit. This means that the query may contain any arguments that a + UID SORT command is allowed to have according to the IMAP specifications and any + extensions that are supported, including RETURN parameters. + + An array of matching UIDs. + The search query. + The cancellation token. + + is null. + + + is an empty string. + + + The IMAP server does not support the SORT extension. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Sort messages matching the specified query. + + + The returned array of unique identifiers will be sorted in the preferred order and + can be used with . + + An array of matching UIDs in the specified sort order. + The search query. + The sort order. + The cancellation token. + + is null. + -or- + is null. + + + is empty. + + + One or more search terms in the are not supported by the IMAP server. + -or- + The server does not support the SORT extension. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously sort messages matching the specified query. + + + The returned array of unique identifiers will be sorted in the preferred order and + can be used with . + + An array of matching UIDs in the specified sort order. + The search query. + The sort order. + The cancellation token. + + is null. + -or- + is null. + + + is empty. + + + One or more search terms in the are not supported by the IMAP server. + -or- + The server does not support the SORT extension. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Sort messages matching the specified query. + + + Searches the folder for messages matching the specified query, returning the search results in the specified sort order. + + The search results. + The search options. + The search query. + The sort order. + The cancellation token. + + is null. + -or- + is null. + + + is empty. + + + One or more search terms in the are not supported by the IMAP server. + -or- + The IMAP server does not support the ESORT extension. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously sort messages matching the specified query. + + + Searches the folder for messages matching the specified query, returning the search results in the specified sort order. + + The search results. + The search options. + The search query. + The sort order. + The cancellation token. + + is null. + -or- + is null. + + + is empty. + + + One or more search terms in the are not supported by the IMAP server. + -or- + The IMAP server does not support the ESORT extension. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Thread the messages in the folder that match the search query using the specified threading algorithm. + + + The can be used with methods such as + . + + An array of message threads. + The threading algorithm to use. + The search query. + The cancellation token. + + is not supported. + + + is null. + + + One or more search terms in the are not supported by the IMAP server. + -or- + The server does not support the THREAD extension. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously thread the messages in the folder that match the search query using the specified threading algorithm. + + + The can be used with methods such as + . + + An array of message threads. + The threading algorithm to use. + The search query. + The cancellation token. + + is not supported. + + + is null. + + + One or more search terms in the are not supported by the IMAP server. + -or- + The server does not support the THREAD extension. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Thread the messages in the folder that match the search query using the specified threading algorithm. + + + The can be used with methods such as + . + + An array of message threads. + The subset of UIDs + The threading algorithm to use. + The search query. + The cancellation token. + + is not supported. + + + is null. + -or- + is null. + + + is empty. + -or- + One or more of the is invalid. + + + One or more search terms in the are not supported by the IMAP server. + -or- + The server does not support the THREAD extension. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously thread the messages in the folder that match the search query using the specified threading algorithm. + + + The can be used with methods such as + . + + An array of message threads. + The subset of UIDs + The threading algorithm to use. + The search query. + The cancellation token. + + is not supported. + + + is null. + -or- + is null. + + + is empty. + -or- + One or more of the is invalid. + + + One or more search terms in the are not supported by the IMAP server. + -or- + The server does not support the THREAD extension. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Constructor arguments for . + + + Constructor arguments for . + The are meant only to allow subclassing of + by overriding the method. + + + + + Initializes a new instance of the class. + + The IMAP command engine. + The encoded name. + The attributes. + The directory separator. + + + + Get the folder attributes. + + + Gets the folder attributes. + + The folder attributes. + + + + Get the directory separator. + + + Gets the directory separator. + + The directory separator. + + + + Get the full name of the folder. + + + This is the equivalent of the full path of a file on a file system. + + The full name of the folder. + + + + Get the name of the folder. + + + This is the equivalent of the file name of a file on the file system. + + The name of the folder. + + + + The details of an IMAP client or server implementation. + + + Allows an IMAP client and server to share their implementation details + with each other for the purposes of debugging. + + + + + + + + Initializes a new instance of the class. + + + Creates a new . + + + + + + + + Get the identification properties. + + + Gets the dictionary of raw identification properties. + + + + + The properties. + + + + Get or set the name of the program. + + + Gets or sets the name of the program. + + + + + The program name. + + + + Get or set the version of the program. + + + Gets or sets the version of the program. + + + + + The program version. + + + + Get or set the name of the operating system. + + + Gets or sets the name of the operating system. + + The name of the operation system. + + + + Get or set the version of the operating system. + + + Gets or sets the version of the operating system. + + The version of the operation system. + + + + Get or set the name of the vendor. + + + Gets or sets the name of the vendor. + + The name of the vendor. + + + + Get or set the support URL. + + + Gets or sets the support URL. + + The support URL. + + + + Get or set the postal address of the vendor. + + + Gets or sets the postal address of the vendor. + + The postal address. + + + + Get or set the release date of the program. + + + Gets or sets the release date of the program. + + The release date. + + + + Get or set the command used to start the program. + + + Gets or sets the command used to start the program. + + The command used to start the program. + + + + Get or set the command-line arguments used to start the program. + + + Gets or sets the command-line arguments used to start the program. + + The command-line arguments used to start the program. + + + + Get or set the environment variables available to the program. + + + Get or set the environment variables available to the program. + + The environment variables. + + + + An IMAP protocol exception. + + + The exception that is thrown when there is an error communicating with an IMAP server. An + is typically fatal and requires the + to be reconnected. + + + + + Initializes a new instance of the class. + + + Creates a new from the serialized data. + + The serialization info. + The streaming context. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The error message. + An inner exception. + + + + Initializes a new instance of the class. + + + Creates a new . + + The error message. + + + + Initializes a new instance of the class. + + + Creates a new . + + + + + Gets or sets whether or not this exception was thrown due to an unexpected token. + + + Gets or sets whether or not this exception was thrown due to an unexpected token. + + true if an unexpected token was encountered; otherwise, false. + + + + An enumeration of the possible IMAP streaming modes. + + + Normal operation is done in the mode, + but when reading literal string data, the + mode should be used. + + + + + Reads 1 token at a time. + + + + + Reads literal string data. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The underlying network stream. + The protocol logger. + + + + Get or sets the underlying network stream. + + + Gets or sets the underlying network stream. + + The underlying network stream. + + + + Get or sets the mode used for reading. + + + Gets or sets the mode used for reading. + + The mode. + + + + Get the length of the literal. + + + Gets the length of the literal. + + The length of the literal. + + + + Get whether or not the stream is connected. + + + Gets whether or not the stream is connected. + + true if the stream is connected; otherwise, false. + + + + Get whether the stream supports reading. + + + Gets whether the stream supports reading. + + true if the stream supports reading; otherwise, false. + + + + Get whether the stream supports writing. + + + Gets whether the stream supports writing. + + true if the stream supports writing; otherwise, false. + + + + Get whether the stream supports seeking. + + + Gets whether the stream supports seeking. + + true if the stream supports seeking; otherwise, false. + + + + Get whether the stream supports I/O timeouts. + + + Gets whether the stream supports I/O timeouts. + + true if the stream supports I/O timeouts; otherwise, false. + + + + Get or set a value, in milliseconds, that determines how long the stream will attempt to read before timing out. + + + Gets or sets a value, in milliseconds, that determines how long the stream will attempt to read before timing out. + + A value, in milliseconds, that determines how long the stream will attempt to read before timing out. + The read timeout. + + + + Get or set a value, in milliseconds, that determines how long the stream will attempt to write before timing out. + + + Gets or sets a value, in milliseconds, that determines how long the stream will attempt to write before timing out. + + A value, in milliseconds, that determines how long the stream will attempt to write before timing out. + The write timeout. + + + + Get or set the position within the current stream. + + + Gets or sets the position within the current stream. + + The current position within the stream. + The position of the stream. + + An I/O error occurred. + + + The stream does not support seeking. + + + The stream has been disposed. + + + + + Get the length of the stream, in bytes. + + + Gets the length of the stream, in bytes. + + A long value representing the length of the stream in bytes. + The length of the stream. + + The stream does not support seeking. + + + The stream has been disposed. + + + + + Reads a sequence of bytes from the stream and advances the position + within the stream by the number of bytes read. + + The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many + bytes are not currently available, or zero (0) if the end of the stream has been reached. + The buffer. + The buffer offset. + The number of bytes to read. + The cancellation token. + + is null. + + + is less than zero or greater than the length of . + -or- + The is not large enough to contain bytes strting + at the specified . + + + The stream has been disposed. + + + The stream is in token mode (see ). + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + + + Reads a sequence of bytes from the stream and advances the position + within the stream by the number of bytes read. + + The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many + bytes are not currently available, or zero (0) if the end of the stream has been reached. + The buffer. + The buffer offset. + The number of bytes to read. + + is null. + + + is less than zero or greater than the length of . + -or- + The is not large enough to contain bytes strting + at the specified . + + + The stream has been disposed. + + + The stream is in token mode (see ). + + + An I/O error occurred. + + + + + Reads a sequence of bytes from the stream and advances the position + within the stream by the number of bytes read. + + + Reads a sequence of bytes from the stream and advances the position + within the stream by the number of bytes read. + + The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many + bytes are not currently available, or zero (0) if the end of the stream has been reached. + The buffer. + The buffer offset. + The number of bytes to read. + The cancellation token. + + is null. + + + is less than zero or greater than the length of . + -or- + The is not large enough to contain bytes strting + at the specified . + + + The stream has been disposed. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + + + Reads the next available token from the stream. + + The token. + The special characters that are not allowed in an atom token. + The cancellation token. + + The stream has been disposed. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + + + Asynchronously reads the next available token from the stream. + + The token. + The special characters that are not allowed in an atom token. + The cancellation token. + + The stream has been disposed. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + + + Reads the next available token from the stream. + + The token. + The cancellation token. + + The stream has been disposed. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + + + Asynchronously reads the next available token from the stream. + + The token. + The cancellation token. + + The stream has been disposed. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + + + Ungets a token. + + The token. + + + + Reads a single line of input from the stream. + + + This method should be called in a loop until it returns true. + + true, if reading the line is complete, false otherwise. + The output buffer write the line data into. + The cancellation token. + + The stream has been disposed. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + + + Asynchronously reads a single line of input from the stream. + + + This method should be called in a loop until it returns true. + + true, if reading the line is complete, false otherwise. + The output buffer write the line data into. + The cancellation token. + + The stream has been disposed. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + + + Writes a sequence of bytes to the stream and advances the current + position within this stream by the number of bytes written. + + + Writes a sequence of bytes to the stream and advances the current + position within this stream by the number of bytes written. + + The buffer to write. + The offset of the first byte to write. + The number of bytes to write. + The cancellation token. + + is null. + + + is less than zero or greater than the length of . + -or- + The is not large enough to contain bytes strting + at the specified . + + + The stream has been disposed. + + + The stream does not support writing. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + + + Writes a sequence of bytes to the stream and advances the current + position within this stream by the number of bytes written. + + + Writes a sequence of bytes to the stream and advances the current + position within this stream by the number of bytes written. + + The buffer to write. + The offset of the first byte to write. + The number of bytes to write. + + is null. + + + is less than zero or greater than the length of . + -or- + The is not large enough to contain bytes strting + at the specified . + + + The stream has been disposed. + + + The stream does not support writing. + + + An I/O error occurred. + + + + + Writes a sequence of bytes to the stream and advances the current + position within this stream by the number of bytes written. + + + Writes a sequence of bytes to the stream and advances the current + position within this stream by the number of bytes written. + + A task that represents the asynchronous write operation. + The buffer to write. + The offset of the first byte to write. + The number of bytes to write. + The cancellation token. + + is null. + + + is less than zero or greater than the length of . + -or- + The is not large enough to contain bytes strting + at the specified . + + + The stream has been disposed. + + + The stream does not support writing. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + + + Clears all output buffers for this stream and causes any buffered data to be written + to the underlying device. + + + Clears all output buffers for this stream and causes any buffered data to be written + to the underlying device. + + The cancellation token. + + The stream has been disposed. + + + The stream does not support writing. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + + + Clears all output buffers for this stream and causes any buffered data to be written + to the underlying device. + + + Clears all output buffers for this stream and causes any buffered data to be written + to the underlying device. + + + The stream has been disposed. + + + The stream does not support writing. + + + An I/O error occurred. + + + + + Clears all buffers for this stream and causes any buffered data to be written + to the underlying device. + + + Clears all buffers for this stream and causes any buffered data to be written + to the underlying device. + + A task that represents the asynchronous flush operation. + The cancellation token. + + The stream has been disposed. + + + The stream does not support writing. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + + + Sets the position within the current stream. + + + It is not possible to seek within a . + + The new position within the stream. + The offset into the stream relative to the . + The origin to seek from. + + The stream does not support seeking. + + + + + Sets the length of the stream. + + + It is not possible to set the length of a . + + The desired length of the stream in bytes. + + The stream does not support setting the length. + + + + + Releases the unmanaged resources used by the and + optionally releases the managed resources. + + + Releases the unmanaged resources used by the and + optionally releases the managed resources. + + true to release both managed and unmanaged resources; + false to release only the unmanaged resources. + + + + IMAP utility functions. + + + + + Formats a date in a format suitable for use with the APPEND command. + + The formatted date string. + The date. + + + + Parses the internal date string. + + The date. + The text to parse. + + + + Formats a list of annotations for a STORE or APPEND command. + + The command builder. + The annotations. + the argument list. + Throw an exception if there are any annotations without properties. + + + + Formats the array of indexes as a string suitable for use with IMAP commands. + + The IMAP engine. + The string builder. + The indexes. + + is null. + -or- + is null. + -or- + is null. + + + One or more of the indexes has a negative value. + + + + + Formats the array of indexes as a string suitable for use with IMAP commands. + + The index set. + The IMAP engine. + The indexes. + + is null. + -or- + is null. + + + One or more of the indexes has a negative value. + + + + + Parses an untagged ID response. + + The IMAP engine. + The IMAP command. + + + + Asynchronously parses an untagged ID response. + + The IMAP engine. + The IMAP command. + + + + Handles an untagged ID response. + + An asynchronous task. + The IMAP engine. + The IMAP command. + The index. + Whether or not asynchronous IO methods should be used. + + + + Canonicalize the name of the mailbox. + + + Canonicalizes the name of the mailbox by replacing various + capitalizations of "INBOX" with the literal "INBOX" string. + + The mailbox name. + The encoded mailbox name. + The directory separator. + + + + Determines whether the specified mailbox is the Inbox. + + true if the specified mailbox name is the Inbox; otherwise, false. + The mailbox name. + + + + Parses an untagged LIST or LSUB response. + + The IMAP engine. + The list of folders to be populated. + true if it is an LSUB response; otherwise, false. + true if the LIST response is expected to return \Subscribed flags; otherwise, false. + The cancellation token. + + + + Asynchronously parses an untagged LIST or LSUB response. + + The IMAP engine. + The list of folders to be populated. + true if it is an LSUB response; otherwise, false. + true if the LIST response is expected to return \Subscribed flags; otherwise, false. + The cancellation token. + + + + Handles an untagged LIST or LSUB response. + + The IMAP engine. + The IMAP command. + The index. + Whether or not asynchronous IO methods should be used. + + + + Parses an untagged METADATA response. + + The encoded name of the folder that the metadata belongs to. + The IMAP engine. + The metadata collection to be populated. + The cancellation token. + + + + Asynchronously parses an untagged METADATA response. + + The encoded name of the folder that the metadata belongs to. + The IMAP engine. + The metadata collection to be populated. + The cancellation token. + + + + Handles an untagged METADATA response. + + The IMAP engine. + The IMAP command. + The index. + Whether or not asynchronous IO methods should be used. + + + + Parses the ENVELOPE parenthesized list. + + The envelope. + The IMAP engine. + The cancellation token. + + + + Parses the ENVELOPE parenthesized list. + + The envelope. + The IMAP engine. + The cancellation token. + + + + Formats a flags list suitable for use with the APPEND command. + + The message flags. + The string builder. + The number of keywords. + + + + Formats a flags list suitable for use with the APPEND command. + + The flags list string. + The message flags. + The number of keywords. + + + + Parses the flags list. + + The message flags. + The IMAP engine. + The name of the flags being parsed. + A hash set of user-defined message flags that will be populated if non-null. + The cancellation token. + + + + Parses the flags list. + + The message flags. + The IMAP engine. + The name of the flags being parsed. + A hash set of user-defined message flags that will be populated if non-null. + The cancellation token. + + + + Parses the ANNOTATION list. + + The list of annotations. + The IMAP engine. + The cancellation token. + + + + Parses the ANNOTATION list. + + The list of annotations. + The IMAP engine. + The cancellation token. + + + + Parses the X-GM-LABELS list. + + The message labels. + The IMAP engine. + The cancellation token. + + + + Parses the X-GM-LABELS list. + + The message labels. + The IMAP engine. + The cancellation token. + + + + Parses an untagged THREAD response. + + The task. + The IMAP engine. + The UIDVALIDITY of the folder. + The list of message threads that this method will append to. + The cancellation token. + + + + Parses the threads. + + The task. + The IMAP engine. + The UIDVALIDITY of the folder. + THe list of message threads that will be appended to. + The cancellation token. + + + + Handles an untagged THREAD response. + + The task. + The IMAP engine. + The IMAP command. + THe index. + Whether or not asynchronous IO methods should be used. + + + + A POP3 client that can be used to retrieve messages from a server. + + + The class supports both the "pop" and "pops" protocols. The "pop" protocol + makes a clear-text connection to the POP3 server and does not use SSL or TLS unless the POP3 server + supports the STLS extension. The "pops" protocol, + however, connects to the POP3 server using an SSL-wrapped connection. + + + + + + + + Asynchronously authenticate using the specified SASL mechanism. + + + Authenticates using the specified SASL mechanism. + For a list of available SASL authentication mechanisms supported by the server, + check the property after the service has been + connected. + + An asynchronous task context. + The SASL mechanism. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is already authenticated. + + + The operation was canceled via the cancellation token. + + + Authentication using the supplied credentials has failed. + + + A SASL authentication error occurred. + + + An I/O error occurred. + + + A POP3 command failed. + + + An POP3 protocol error occurred. + + + + + Asynchronously authenticates using the supplied credentials. + + + Asynchronously authenticates using the supplied credentials. + If the POP3 server supports the APOP authentication mechanism, + then APOP is used. + If the APOP authentication mechanism is not supported and the + server supports one or more SASL authentication mechanisms, then + the SASL mechanisms that both the client and server support (not including + any OAUTH mechanisms) are tried in order of greatest security to weakest + security. Once a SASL authentication mechanism is found that both client + and server support, the credentials are used to authenticate. + If the server does not support SASL or if no common SASL mechanisms + can be found, then the USER and PASS commands are used as a + fallback. + To prevent the usage of certain authentication mechanisms, + simply remove them from the hash set + before calling this method. + In the case of the APOP authentication mechanism, remove it from the + property instead. + + An asynchronous task context. + The text encoding to use for the user's credentials. + The user's credentials. + The cancellation token. + + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected. + + + The is already authenticated. + + + The operation was canceled via the cancellation token. + + + Authentication using the supplied credentials has failed. + + + A SASL authentication error occurred. + + + An I/O error occurred. + + + A POP3 command failed. + + + An POP3 protocol error occurred. + + + + + Asynchronously establish a connection to the specified POP3 or POP3/S server. + + + Establishes a connection to the specified POP3 or POP3/S server. + If the has a value of 0, then the + parameter is used to determine the default port to + connect to. The default port used with + is 995. All other values will use a default port of 110. + If the has a value of + , then the is used + to determine the default security options. If the has a value + of 995, then the default options used will be + . All other values will use + . + Once a connection is established, properties such as + and will be + populated. + + + + + An asynchronous task context. + The host name to connect to. + The port to connect to. If the specified port is 0, then the default port will be used. + The secure socket options to when connecting. + The cancellation token. + + is null. + + + is not between 0 and 65535. + + + The is a zero-length string. + + + The has been disposed. + + + The is already connected. + + + The operation was canceled via the cancellation token. + + + was set to + + and the POP3 server does not support the STLS extension. + + + A socket error occurred trying to connect to the remote host. + + + An error occurred during the SSL/TLS negotiations. + + + An I/O error occurred. + + + A POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Asynchronously establish a connection to the specified POP3 or POP3/S server using the provided socket. + + + Establishes a connection to the specified POP3 or POP3/S server using + the provided socket. + If the has a value of + , then the is used + to determine the default security options. If the has a value + of 995, then the default options used will be + . All other values will use + . + Once a connection is established, properties such as + and will be + populated. + With the exception of using the to determine the + default to use when the value + is , the and + parameters are only used for logging purposes. + + An asynchronous task context. + The socket to use for the connection. + The host name to connect to. + The port to connect to. If the specified port is 0, then the default port will be used. + The secure socket options to when connecting. + The cancellation token. + + is null. + -or- + is null. + + + is not between 0 and 65535. + + + is not connected. + -or- + The is a zero-length string. + + + The has been disposed. + + + The is already connected. + + + was set to + + and the POP3 server does not support the STLS extension. + + + The operation was canceled via the cancellation token. + + + An error occurred during the SSL/TLS negotiations. + + + An I/O error occurred. + + + A POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Asynchronously establish a connection to the specified POP3 or POP3/S server using the provided stream. + + + Establishes a connection to the specified POP3 or POP3/S server using + the provided stream. + If the has a value of + , then the is used + to determine the default security options. If the has a value + of 995, then the default options used will be + . All other values will use + . + Once a connection is established, properties such as + and will be + populated. + With the exception of using the to determine the + default to use when the value + is , the and + parameters are only used for logging purposes. + + An asynchronous task context. + The socket to use for the connection. + The host name to connect to. + The port to connect to. If the specified port is 0, then the default port will be used. + The secure socket options to when connecting. + The cancellation token. + + is null. + -or- + is null. + + + is not between 0 and 65535. + + + The is a zero-length string. + + + The has been disposed. + + + The is already connected. + + + was set to + + and the POP3 server does not support the STLS extension. + + + The operation was canceled via the cancellation token. + + + An error occurred during the SSL/TLS negotiations. + + + An I/O error occurred. + + + A POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Asynchronously disconnect the service. + + + If is true, a QUIT command will be issued in order to disconnect cleanly. + + + + + An asynchronous task context. + If set to true, a QUIT command will be issued in order to disconnect cleanly. + The cancellation token. + + The has been disposed. + + + + + Asynchronously get the message count. + + + Asynchronously gets the message count. + + The message count. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Ping the POP3 server to keep the connection alive. + + Mail servers, if left idle for too long, will automatically drop the connection. + An asynchronous task context. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Asynchronously enable UTF8 mode. + + + The POP3 UTF8 extension allows the client to retrieve messages in the UTF-8 encoding and + may also allow the user to authenticate using a UTF-8 encoded username or password. + + An asynchronous task context. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The has already been authenticated. + + + The operation was canceled via the cancellation token. + + + The POP3 server does not support the UTF8 extension. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Asynchronously get the list of languages supported by the POP3 server. + + + If the POP3 server supports the LANG extension, it is possible to + query the list of languages supported by the POP3 server that can + be used for error messages. + + The supported languages. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The operation was canceled via the cancellation token. + + + The POP3 server does not support the LANG extension. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Asynchronously set the language used by the POP3 server for error messages. + + + If the POP3 server supports the LANG extension, it is possible to + set the language used by the POP3 server for error messages. + + An asynchronous task context. + The language code. + The cancellation token. + + is null. + + + is empty. + + + The has been disposed. + + + The is not connected. + + + The operation was canceled via the cancellation token. + + + The POP3 server does not support the LANG extension. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Asynchronously get the UID of the message at the specified index. + + + Gets the UID of the message at the specified index. + Not all servers support UIDs, so you should first check the + property for the flag or + the convenience property. + + The message UID. + The message index. + The cancellation token. + + is not a valid message index. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The POP3 server does not support the UIDL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Asynchronously get the full list of available message UIDs. + + + Gets the full list of available message UIDs. + Not all servers support UIDs, so you should first check the + property for the flag or + the convenience property. + + + + + The message uids. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The POP3 server does not support the UIDL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Asynchronously get the size of the specified message, in bytes. + + + Gets the size of the specified message, in bytes. + + The message size, in bytes. + The index of the message. + The cancellation token. + + is not a valid message index. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Asynchronously get the sizes for all available messages, in bytes. + + + Gets the sizes for all available messages, in bytes. + + The message sizes, in bytes. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Asynchronously get the headers for the message at the specified index. + + + Gets the headers for the message at the specified index. + + The message headers. + The index of the message. + The cancellation token. + + is not a valid message index. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Asynchronously get the headers for the messages at the specified indexes. + + + Gets the headers for the messages at the specified indexes. + When the POP3 server supports the + extension, this method will likely be more efficient than using + for each message because + it will batch the commands to reduce latency. + + The headers for the specified messages. + The indexes of the messages. + The cancellation token. + + is null. + + + One or more of the are invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The POP3 server does not support the UIDL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Asynchronously get the headers of the messages within the specified range. + + + Gets the headers of the messages within the specified range. + When the POP3 server supports the + extension, this method will likely be more efficient than using + for each message because + it will batch the commands to reduce latency. + + The headers of the messages within the specified range. + The index of the first message to get. + The number of messages to get. + The cancellation token. + + and do not specify + a valid range of messages. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The POP3 server does not support the UIDL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Asynchronously get the message at the specified index. + + + Gets the message at the specified index. + + + + + The message. + The index of the message. + The cancellation token. + The progress reporting mechanism. + + is not a valid message index. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Asynchronously get the messages at the specified indexes. + + + Gets the messages at the specified indexes. + When the POP3 server supports the + extension, this method will likely be more efficient than using + for each message + because it will batch the commands to reduce latency. + + The messages. + The indexes of the messages. + The cancellation token. + The progress reporting mechanism. + + is null. + + + One or more of the are invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The POP3 server does not support the UIDL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Asynchronously get the messages within the specified range. + + + Gets the messages within the specified range. + When the POP3 server supports the + extension, this method will likely be more efficient than using + for each message + because it will batch the commands to reduce latency. + + + + + The messages. + The index of the first message to get. + The number of messages to get. + The cancellation token. + The progress reporting mechanism. + + and do not specify + a valid range of messages. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The POP3 server does not support the UIDL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Asynchronously get the message or header stream at the specified index. + + + Gets the message or header stream at the specified index. + + The message or header stream. + The index of the message. + true if only the headers should be retrieved; otherwise, false. + The cancellation token. + The progress reporting mechanism. + + is not a valid message index. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Asynchronously get the message or header streams at the specified indexes. + + + Get the message or header streams at the specified indexes. + If the POP3 server supports the + extension, this method will likely be more efficient than using + for each message + because it will batch the commands to reduce latency. + + The message or header streams. + The indexes of the messages. + true if only the headers should be retrieved; otherwise, false. + The cancellation token. + The progress reporting mechanism. + + is null. + + + One or more of the are invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The POP3 server does not support the UIDL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Asynchronously get the message or header streams within the specified range. + + + Gets the message or header streams within the specified range. + If the POP3 server supports the + extension, this method will likely be more efficient than using + for each message + because it will batch the commands to reduce latency. + + The message or header streams. + The index of the first stream to get. + The number of streams to get. + true if only the headers should be retrieved; otherwise, false. + The cancellation token. + The progress reporting mechanism. + + and do not specify + a valid range of messages. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The POP3 server does not support the UIDL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Asynchronously mark the specified message for deletion. + + + Messages marked for deletion are not actually deleted until the session + is cleanly disconnected + (see ). + + + + + An asynchronous task context. + The index of the message. + The cancellation token. + + is not a valid message index. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Asynchronously mark the specified messages for deletion. + + + Messages marked for deletion are not actually deleted until the session + is cleanly disconnected + (see ). + + An asynchronous task context. + The indexes of the messages. + The cancellation token. + + is null. + + + One or more of the are invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Asynchronously mark the specified range of messages for deletion. + + + Messages marked for deletion are not actually deleted until the session + is cleanly disconnected + (see ). + + + + + An asynchronous task context. + The index of the first message to mark for deletion. + The number of messages to mark for deletion. + The cancellation token. + + and do not specify + a valid range of messages. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Asynchronously mark all messages for deletion. + + + Messages marked for deletion are not actually deleted until the session + is cleanly disconnected + (see ). + + An asynchronous task context. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Asynchronously reset the state of all messages marked for deletion. + + + Messages marked for deletion are not actually deleted until the session + is cleanly disconnected + (see ). + + An awaitable task. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Initializes a new instance of the class. + + + Before you can retrieve messages with the , you must first call + one of the Connect methods + and authenticate using one of the + Authenticate methods. + + + + + The protocol logger. + + is null. + + + + + Initializes a new instance of the class. + + + Before you can retrieve messages with the , you must first call + one of the Connect methods + and authenticate using one of the + Authenticate methods. + + + + + Gets an object that can be used to synchronize access to the POP3 server. + + + Gets an object that can be used to synchronize access to the POP3 server. + When using the non-Async methods from multiple threads, it is important to lock the + object for thread safety when using the synchronous methods. + + The lock object. + + + + Gets the protocol supported by the message service. + + + Gets the protocol supported by the message service. + + The protocol. + + + + Gets the capabilities supported by the POP3 server. + + + The capabilities will not be known until a successful connection has been made + and may change once the client is authenticated. + + + + + The capabilities. + + Capabilities cannot be enabled, they may only be disabled. + + + + + Gets the expiration policy. + + + If the server supports the EXPIRE capability (), the value + of the property will reflect the value advertized by the server. + A value of -1 indicates that messages will never expire. + A value of 0 indicates that messages that have been retrieved during the current session + will be purged immediately after the connection is closed via the QUIT command. + Values larger than 0 indicate the minimum number of days that the server will retain + messages which have been retrieved. + + + + + The expiration policy. + + + + Gets the implementation details of the server. + + + If the server advertizes its implementation details, this value will be set to a string containing the + information details provided by the server. + + The implementation details. + + + + Gets the minimum delay, in milliseconds, between logins. + + + If the server supports the LOGIN-DELAY capability (), this value + will be set to the minimum number of milliseconds that the client must wait between logins. + + + + + The login delay. + + + + Get the size of the POP3 mailbox, in bytes. + + + Gets the size of the POP3 mailbox, in bytes. + This value is updated as a side-effect of calling or . + + The size of the mailbox if available. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + + + Gets the authentication mechanisms supported by the POP3 server. + + + The authentication mechanisms are queried as part of the + connection process. + Servers that do not support the SASL capability will typically + support either the APOP authentication mechanism + () or the ability to login using the + USER and PASS commands (). + + To prevent the usage of certain authentication mechanisms, + simply remove them from the hash set + before authenticating. + In the case of the APOP authentication mechanism, remove it from the + property instead. + + + + + The authentication mechanisms. + + + + Gets or sets the timeout for network streaming operations, in milliseconds. + + + Gets or sets the underlying socket stream's + and values. + + The timeout in milliseconds. + + + + Gets whether or not the client is currently connected to an POP3 server. + + + The state is set to true immediately after + one of the Connect + methods succeeds and is not set back to false until either the client + is disconnected via or until a + is thrown while attempting to read or write to + the underlying network socket. + When an is caught, the connection state of the + should be checked before continuing. + + + + + true if the client is connected; otherwise, false. + + + + Get whether or not the connection is secure (typically via SSL or TLS). + + + Gets whether or not the connection is secure (typically via SSL or TLS). + + true if the connection is secure; otherwise, false. + + + + Get whether or not the connection is encrypted (typically via SSL or TLS). + + + Gets whether or not the connection is encrypted (typically via SSL or TLS). + + true if the connection is encrypted; otherwise, false. + + + + Get whether or not the connection is signed (typically via SSL or TLS). + + + Gets whether or not the connection is signed (typically via SSL or TLS). + + true if the connection is signed; otherwise, false. + + + + Get the negotiated SSL or TLS protocol version. + + + Gets the negotiated SSL or TLS protocol version once an SSL or TLS connection has been made. + + + + + The negotiated SSL or TLS protocol version. + + + + Get the negotiated SSL or TLS cipher algorithm. + + + Gets the negotiated SSL or TLS cipher algorithm once an SSL or TLS connection has been made. + + + + + The negotiated SSL or TLS cipher algorithm. + + + + Get the negotiated SSL or TLS cipher algorithm strength. + + + Gets the negotiated SSL or TLS cipher algorithm strength once an SSL or TLS connection has been made. + + + + + The negotiated SSL or TLS cipher algorithm strength. + + + + Get the negotiated SSL or TLS hash algorithm. + + + Gets the negotiated SSL or TLS hash algorithm once an SSL or TLS connection has been made. + + + + + The negotiated SSL or TLS hash algorithm. + + + + Get the negotiated SSL or TLS hash algorithm strength. + + + Gets the negotiated SSL or TLS hash algorithm strength once an SSL or TLS connection has been made. + + + + + The negotiated SSL or TLS hash algorithm strength. + + + + Get the negotiated SSL or TLS key exchange algorithm. + + + Gets the negotiated SSL or TLS key exchange algorithm once an SSL or TLS connection has been made. + + + + + The negotiated SSL or TLS key exchange algorithm. + + + + Get the negotiated SSL or TLS key exchange algorithm strength. + + + Gets the negotiated SSL or TLS key exchange algorithm strength once an SSL or TLS connection has been made. + + + + + The negotiated SSL or TLS key exchange algorithm strength. + + + + Get whether or not the client is currently authenticated with the POP3 server. + + + Gets whether or not the client is currently authenticated with the POP3 server. + To authenticate with the POP3 server, use one of the + Authenticate methods. + + true if the client is connected; otherwise, false. + + + + Authenticate using the specified SASL mechanism. + + + Authenticates using the specified SASL mechanism. + For a list of available SASL authentication mechanisms supported by the server, + check the property after the service has been + connected. + + The SASL mechanism. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is already authenticated. + + + The operation was canceled via the cancellation token. + + + Authentication using the supplied credentials has failed. + + + A SASL authentication error occurred. + + + An I/O error occurred. + + + A POP3 command failed. + + + An POP3 protocol error occurred. + + + + + Authenticate using the supplied credentials. + + + Authenticates using the supplied credentials. + If the POP3 server supports the APOP authentication mechanism, + then APOP is used. + If the APOP authentication mechanism is not supported and the + server supports one or more SASL authentication mechanisms, then + the SASL mechanisms that both the client and server support (not including + any OAUTH mechanisms) are tried in order of greatest security to weakest + security. Once a SASL authentication mechanism is found that both client + and server support, the credentials are used to authenticate. + If the server does not support SASL or if no common SASL mechanisms + can be found, then the USER and PASS commands are used as a + fallback. + To prevent the usage of certain authentication mechanisms, + simply remove them from the hash set + before calling this method. + In the case of the APOP authentication mechanism, remove it from the + property instead. + + The text encoding to use for the user's credentials. + The user's credentials. + The cancellation token. + + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected. + + + The is already authenticated. + + + The operation was canceled via the cancellation token. + + + Authentication using the supplied credentials has failed. + + + A SASL authentication error occurred. + + + An I/O error occurred. + + + A POP3 command failed. + + + An POP3 protocol error occurred. + + + + + Establish a connection to the specified POP3 or POP3/S server. + + + Establishes a connection to the specified POP3 or POP3/S server. + If the has a value of 0, then the + parameter is used to determine the default port to + connect to. The default port used with + is 995. All other values will use a default port of 110. + If the has a value of + , then the is used + to determine the default security options. If the has a value + of 995, then the default options used will be + . All other values will use + . + Once a connection is established, properties such as + and will be + populated. + + + + + The host name to connect to. + The port to connect to. If the specified port is 0, then the default port will be used. + The secure socket options to when connecting. + The cancellation token. + + is null. + + + is not between 0 and 65535. + + + The is a zero-length string. + + + The has been disposed. + + + The is already connected. + + + The operation was canceled via the cancellation token. + + + was set to + + and the POP3 server does not support the STLS extension. + + + A socket error occurred trying to connect to the remote host. + + + An error occurred during the SSL/TLS negotiations. + + + An I/O error occurred. + + + A POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Establish a connection to the specified POP3 or POP3/S server using the provided socket. + + + Establishes a connection to the specified POP3 or POP3/S server using + the provided socket. + If the has a value of + , then the is used + to determine the default security options. If the has a value + of 995, then the default options used will be + . All other values will use + . + Once a connection is established, properties such as + and will be + populated. + With the exception of using the to determine the + default to use when the value + is , the and + parameters are only used for logging purposes. + + The socket to use for the connection. + The host name to connect to. + The port to connect to. If the specified port is 0, then the default port will be used. + The secure socket options to when connecting. + The cancellation token. + + is null. + -or- + is null. + + + is not between 0 and 65535. + + + is not connected. + -or- + The is a zero-length string. + + + The has been disposed. + + + The is already connected. + + + was set to + + and the POP3 server does not support the STLS extension. + + + The operation was canceled via the cancellation token. + + + An error occurred during the SSL/TLS negotiations. + + + An I/O error occurred. + + + A POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Establish a connection to the specified POP3 or POP3/S server using the provided stream. + + + Establishes a connection to the specified POP3 or POP3/S server using + the provided stream. + If the has a value of + , then the is used + to determine the default security options. If the has a value + of 995, then the default options used will be + . All other values will use + . + Once a connection is established, properties such as + and will be + populated. + With the exception of using the to determine the + default to use when the value + is , the and + parameters are only used for logging purposes. + + The stream to use for the connection. + The host name to connect to. + The port to connect to. If the specified port is 0, then the default port will be used. + The secure socket options to when connecting. + The cancellation token. + + is null. + -or- + is null. + + + is not between 0 and 65535. + + + The is a zero-length string. + + + The has been disposed. + + + The is already connected. + + + was set to + + and the POP3 server does not support the STLS extension. + + + The operation was canceled via the cancellation token. + + + An error occurred during the SSL/TLS negotiations. + + + An I/O error occurred. + + + A POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Disconnect the service. + + + If is true, a QUIT command will be issued in order to disconnect cleanly. + + + + + If set to true, a QUIT command will be issued in order to disconnect cleanly. + The cancellation token. + + The has been disposed. + + + + + Get the message count. + + + Gets the message count. + + The message count. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Ping the POP3 server to keep the connection alive. + + Mail servers, if left idle for too long, will automatically drop the connection. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Enable UTF8 mode. + + + The POP3 UTF8 extension allows the client to retrieve messages in the UTF-8 encoding and + may also allow the user to authenticate using a UTF-8 encoded username or password. + + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The has already been authenticated. + + + The operation was canceled via the cancellation token. + + + The POP3 server does not support the UTF8 extension. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Get the list of languages supported by the POP3 server. + + + If the POP3 server supports the LANG extension, it is possible to + query the list of languages supported by the POP3 server that can + be used for error messages. + + The supported languages. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The operation was canceled via the cancellation token. + + + The POP3 server does not support the LANG extension. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Set the language used by the POP3 server for error messages. + + + If the POP3 server supports the LANG extension, it is possible to + set the language used by the POP3 server for error messages. + + The language code. + The cancellation token. + + is null. + + + is empty. + + + The has been disposed. + + + The is not connected. + + + The operation was canceled via the cancellation token. + + + The POP3 server does not support the LANG extension. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Get the number of messages available in the message spool. + + + Gets the number of messages available on the POP3 server. + Once authenticated, the property will be set + to the number of available messages on the POP3 server. + + + + + The message count. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + + + Gets whether or not the supports referencing messages by UIDs. + + + Not all servers support referencing messages by UID, so this property should + be checked before using + and . + If the server does not support UIDs, then all methods that take UID arguments + along with and + will fail. + + true if supports UIDs; otherwise, false. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + + + Get the UID of the message at the specified index. + + + Gets the UID of the message at the specified index. + Not all servers support UIDs, so you should first check the + property for the flag or + the convenience property. + + The message UID. + The message index. + The cancellation token. + + is not a valid message index. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The POP3 server does not support the UIDL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Get the full list of available message UIDs. + + + Gets the full list of available message UIDs. + Not all servers support UIDs, so you should first check the + property for the flag or + the convenience property. + + + + + The message uids. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The POP3 server does not support the UIDL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Get the size of the specified message, in bytes. + + + Gets the size of the specified message, in bytes. + + The message size, in bytes. + The index of the message. + The cancellation token. + + is not a valid message index. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Get the sizes for all available messages, in bytes. + + + Gets the sizes for all available messages, in bytes. + + The message sizes, in bytes. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Get the headers for the message at the specified index. + + + Gets the headers for the message at the specified index. + + The message headers. + The index of the message. + The cancellation token. + + is not a valid message index. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Get the headers for the messages at the specified indexes. + + + Gets the headers for the messages at the specified indexes. + When the POP3 server supports the + extension, this method will likely be more efficient than using + for each message because + it will batch the commands to reduce latency. + + The headers for the specified messages. + The indexes of the messages. + The cancellation token. + + is null. + + + One or more of the are invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The POP3 server does not support the UIDL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Get the headers of the messages within the specified range. + + + Gets the headers of the messages within the specified range. + When the POP3 server supports the + extension, this method will likely be more efficient than using + for each message because + it will batch the commands to reduce latency. + + The headers of the messages within the specified range. + The index of the first message to get. + The number of messages to get. + The cancellation token. + + and do not specify + a valid range of messages. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The POP3 server does not support the UIDL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Get the message at the specified index. + + + Gets the message at the specified index. + + + + + The message. + The index of the message. + The cancellation token. + The progress reporting mechanism. + + is not a valid message index. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Get the messages at the specified indexes. + + + Gets the messages at the specified indexes. + When the POP3 server supports the + extension, this method will likely be more efficient than using + for each message + because it will batch the commands to reduce latency. + + The messages. + The indexes of the messages. + The cancellation token. + The progress reporting mechanism. + + is null. + + + One or more of the are invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The POP3 server does not support the UIDL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Get the messages within the specified range. + + + Gets the messages within the specified range. + When the POP3 server supports the + extension, this method will likely be more efficient than using + for each message + because it will batch the commands to reduce latency. + + + + + The messages. + The index of the first message to get. + The number of messages to get. + The cancellation token. + The progress reporting mechanism. + + and do not specify + a valid range of messages. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The POP3 server does not support the UIDL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Get the message or header stream at the specified index. + + + Gets the message or header stream at the specified index. + + The message or header stream. + The index of the message. + true if only the headers should be retrieved; otherwise, false. + The cancellation token. + The progress reporting mechanism. + + is not a valid message index. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Get the message or header streams at the specified indexes. + + + Get the message or header streams at the specified indexes. + If the POP3 server supports the + extension, this method will likely be more efficient than using + for each message + because it will batch the commands to reduce latency. + + The message or header streams. + The indexes of the messages. + true if only the headers should be retrieved; otherwise, false. + The cancellation token. + The progress reporting mechanism. + + is null. + + + One or more of the are invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The POP3 server does not support the UIDL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Get the message or header streams within the specified range. + + + Gets the message or header streams within the specified range. + If the POP3 server supports the + extension, this method will likely be more efficient than using + for each message + because it will batch the commands to reduce latency. + + The message or header streams. + The index of the first stream to get. + The number of streams to get. + true if only the headers should be retrieved; otherwise, false. + The cancellation token. + The progress reporting mechanism. + + and do not specify + a valid range of messages. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The POP3 server does not support the UIDL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Mark the specified message for deletion. + + + Messages marked for deletion are not actually deleted until the session + is cleanly disconnected + (see ). + + + + + The index of the message. + The cancellation token. + + is not a valid message index. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Mark the specified messages for deletion. + + + Messages marked for deletion are not actually deleted until the session + is cleanly disconnected + (see ). + + The indexes of the messages. + The cancellation token. + + is null. + + + One or more of the are invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Mark the specified range of messages for deletion. + + + Messages marked for deletion are not actually deleted until the session + is cleanly disconnected + (see ). + + + + + The index of the first message to mark for deletion. + The number of messages to mark for deletion. + The cancellation token. + + and do not specify + a valid range of messages. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Mark all messages for deletion. + + + Messages marked for deletion are not actually deleted until the session + is cleanly disconnected + (see ). + + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Reset the state of all messages marked for deletion. + + + Messages marked for deletion are not actually deleted until the session + is cleanly disconnected + (see ). + + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Get an enumerator for the messages in the folder. + + + Gets an enumerator for the messages in the folder. + + The enumerator. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + A POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Releases the unmanaged resources used by the and + optionally releases the managed resources. + + + Releases the unmanaged resources used by the and + optionally releases the managed resources. + + true to release both managed and unmanaged resources; + false to release only the unmanaged resources. + + + + An interface for a POP3 client. + + + Implemented by . + + + + + Gets the capabilities supported by the POP3 server. + + + The capabilities will not be known until a successful connection has been made + and may change once the client is authenticated. + + + + + The capabilities. + + Capabilities cannot be enabled, they may only be disabled. + + + + + Gets the expiration policy. + + + If the server supports the EXPIRE capability (), the value + of the property will reflect the value advertized by the server. + A value of -1 indicates that messages will never expire. + A value of 0 indicates that messages that have been retrieved during the current session + will be purged immediately after the connection is closed via the QUIT command. + Values larger than 0 indicate the minimum number of days that the server will retain + messages which have been retrieved. + + + + + The expiration policy. + + + + Gets the implementation details of the server. + + + If the server advertizes its implementation details, this value will be set to a string containing the + information details provided by the server. + + The implementation details. + + + + Gets the minimum delay, in milliseconds, between logins. + + + If the server supports the LOGIN-DELAY capability (), this value + will be set to the minimum number of milliseconds that the client must wait between logins. + + + + + The login delay. + + + + Enable UTF8 mode. + + + The POP3 UTF8 extension allows the client to retrieve messages in the UTF-8 encoding and + may also allow the user to authenticate using a UTF-8 encoded username or password. + + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The has already been authenticated. + + + The operation was canceled via the cancellation token. + + + The POP3 server does not support the UTF8 extension. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Asynchronously enable UTF8 mode. + + + The POP3 UTF8 extension allows the client to retrieve messages in the UTF-8 encoding and + may also allow the user to authenticate using a UTF-8 encoded username or password. + + An asynchronous task context. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The has already been authenticated. + + + The operation was canceled via the cancellation token. + + + The POP3 server does not support the UTF8 extension. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Get the list of languages supported by the POP3 server. + + + If the POP3 server supports the LANG extension, it is possible to + query the list of languages supported by the POP3 server that can + be used for error messages. + + The supported languages. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The operation was canceled via the cancellation token. + + + The POP3 server does not support the LANG extension. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Asynchronously get the list of languages supported by the POP3 server. + + + If the POP3 server supports the LANG extension, it is possible to + query the list of languages supported by the POP3 server that can + be used for error messages. + + The supported languages. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The operation was canceled via the cancellation token. + + + The POP3 server does not support the LANG extension. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Set the language used by the POP3 server for error messages. + + + If the POP3 server supports the LANG extension, it is possible to + set the language used by the POP3 server for error messages. + + The language code. + The cancellation token. + + is null. + + + is empty. + + + The has been disposed. + + + The is not connected. + + + The operation was canceled via the cancellation token. + + + The POP3 server does not support the LANG extension. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Asynchronously set the language used by the POP3 server for error messages. + + + If the POP3 server supports the LANG extension, it is possible to + set the language used by the POP3 server for error messages. + + An asynchronous task context. + The language code. + The cancellation token. + + is null. + + + is empty. + + + The has been disposed. + + + The is not connected. + + + The operation was canceled via the cancellation token. + + + The POP3 server does not support the LANG extension. + + + An I/O error occurred. + + + The POP3 command failed. + + + A POP3 protocol error occurred. + + + + + Capabilities supported by a POP3 server. + + + Capabilities are read as part of the response to the CAPA command that + is issued during the connection and authentication phases of the + . + + + + + + + + The server does not support any additional extensions. + + + + + The server supports APOP + authentication. + + + + + The server supports the EXPIRE extension + and defines the expiration policy for messages (see ). + + + + + The server supports the LOGIN-DELAY extension, + allowing the server to specify to the client a minimum number of seconds between login attempts + (see ). + + + + + The server supports the PIPELINING extension, + allowing the client to batch multiple requests to the server at at time. + + + + + The server supports the RESP-CODES extension, + allowing the server to provide clients with extended information in error responses. + + + + + The server supports the SASL authentication + extension, allowing the client to authenticate using the advertized authentication mechanisms + (see ). + + + + + The server supports the STLS extension, + allowing clients to switch to an encrypted SSL/TLS connection after connecting. + + + + + The server supports the TOP command, + allowing clients to fetch the headers plus an arbitrary number of lines. + + + + + The server supports the UIDL command, + allowing the client to refer to messages via a UID as opposed to a sequence ID. + + + + + The server supports the USER + authentication command, allowing the client to authenticate via a plain-text username + and password command (not recommended unless no other authentication mechanisms exist). + + + + + The server supports the UTF8 extension, + allowing clients to retrieve messages in the UTF-8 encoding. + + + + + The server supports the UTF8=USER extension, + allowing clients to authenticate using UTF-8 encoded usernames and passwords. + + + + + The server supports the LANG extension, + allowing clients to specify which language the server should use for error strings. + + + + + POP3 command handler. + + + All exceptions thrown by the handler are considered fatal and will + force-disconnect the connection. If a non-fatal error occurs, set + it on the property. + + + + + A POP3 command exception. + + + The exception that is thrown when a POP3 command fails. Unlike a , + a does not require the to be reconnected. + + + + + + + + Initializes a new instance of the class. + + + Creates a new from the serialized data. + + The serialization info. + The streaming context. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The error message. + An inner exception. + + + + Initializes a new instance of the class. + + + Creates a new . + + The error message. + The response status text. + An inner exception. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The error message. + + + + Initializes a new instance of the class. + + + Creates a new . + + The error message. + The response status text. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new . + + + + + Get the response status text. + + + Gets the response status text. + + + + + The response status text. + + + + When overridden in a derived class, sets the + with information about the exception. + + + Serializes the state of the . + + The serialization info. + The streaming context. + + is null. + + + + + The state of the . + + + + + The Pop3Engine is in the disconnected state. + + + + + The Pop3Engine is in the connected state. + + + + + The Pop3Engine is in the transaction state, indicating that it is + authenticated and may retrieve messages from the server. + + + + + A POP3 command engine. + + + + + Initializes a new instance of the class. + + + + + Gets the URI of the POP3 server. + + + Gets the URI of the POP3 server. + + The URI of the POP3 server. + + + + Gets the authentication mechanisms supported by the POP3 server. + + + The authentication mechanisms are queried durring the + method. + + The authentication mechanisms. + + + + Gets the capabilities supported by the POP3 server. + + + The capabilities will not be known until a successful connection + has been made via the method. + + The capabilities. + + + + Gets the underlying POP3 stream. + + + Gets the underlying POP3 stream. + + The pop3 stream. + + + + Gets or sets the state of the engine. + + + Gets or sets the state of the engine. + + The engine state. + + + + Gets whether or not the engine is currently connected to a POP3 server. + + + Gets whether or not the engine is currently connected to a POP3 server. + + true if the engine is connected; otherwise, false. + + + + Gets the APOP authentication token. + + + Gets the APOP authentication token. + + The APOP authentication token. + + + + Gets the EXPIRE extension policy value. + + + Gets the EXPIRE extension policy value. + + The EXPIRE policy. + + + + Gets the implementation details of the server. + + + Gets the implementation details of the server. + + The implementation details. + + + + Gets the login delay. + + + Gets the login delay. + + The login delay. + + + + Takes posession of the and reads the greeting. + + + Takes posession of the and reads the greeting. + + The pop3 stream. + The cancellation token + + + + Takes posession of the and reads the greeting. + + + Takes posession of the and reads the greeting. + + The pop3 stream. + The cancellation token + + + + Disconnects the . + + + Disconnects the . + + The exception that is causing the disconnection. + + + + Reads a single line from the . + + The line. + The cancellation token. + + The engine is not connected. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + + + Reads a single line from the . + + The line. + The cancellation token. + + The engine is not connected. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + + + Run the command pipeline. + + true if exceptions should be thrown for failed commands; otherwise, false. + The cancellation token. + + The engine is not connected. + + + + + Asynchronously run the command pipeline. + + true if exceptions should be thrown for failed commands; otherwise, false. + The cancellation token. + + The engine is not connected. + + + + + A POP3 language. + + + A POP3 language. + + + + + Initializes a new instance of the class. + + + Creates a new . + + + + + Get the language code. + + + Gets the language code. This is the value that should be given to + . + + The language. + + + + Get the description. + + + Gets the description. + + The description. + + + + A POP3 protocol exception. + + + The exception that is thrown when there is an error communicating with a POP3 server. A + is typically fatal and requires the + to be reconnected. + + + + + + + + Initializes a new instance of the class. + + + Creates a new from the serialized data. + + The serialization info. + The streaming context. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The error message. + An inner exception. + + + + Initializes a new instance of the class. + + + Creates a new . + + The error message. + + + + Initializes a new instance of the class. + + + Creates a new . + + + + + An enumeration of the possible POP3 streaming modes. + + + Normal operation is done in the mode, + but when retrieving messages (via RETR) or headers (via TOP), the + mode should be used. + + + + + Reads 1 line at a time. + + + + + Reads data in chunks, ignoring line state. + + + + + A stream for communicating with a POP3 server. + + + A stream capable of reading data line-by-line () + or by raw byte streams (). + + + + + Initializes a new instance of the class. + + + Creates a new . + + The underlying network stream. + The protocol logger. + + + + Get or sets the underlying network stream. + + + Gets or sets the underlying network stream. + + The underlying network stream. + + + + Gets or sets the mode used for reading. + + The mode. + + + + Get whether or not the stream is connected. + + + Gets whether or not the stream is connected. + + true if the stream is connected; otherwise, false. + + + + Get whether or not the end of the raw data has been reached in mode. + + + When reading the resonse to a command such as RETR, the end of the data is marked by line matching ".\r\n". + + true if the end of the data has been reached; otherwise, false. + + + + Get whether the stream supports reading. + + + Gets whether the stream supports reading. + + true if the stream supports reading; otherwise, false. + + + + Get whether the stream supports writing. + + + Gets whether the stream supports writing. + + true if the stream supports writing; otherwise, false. + + + + Get whether the stream supports seeking. + + + Gets whether the stream supports seeking. + + true if the stream supports seeking; otherwise, false. + + + + Get whether the stream supports I/O timeouts. + + + Gets whether the stream supports I/O timeouts. + + true if the stream supports I/O timeouts; otherwise, false. + + + + Get or set a value, in milliseconds, that determines how long the stream will attempt to read before timing out. + + + Gets or sets a value, in milliseconds, that determines how long the stream will attempt to read before timing out. + + A value, in milliseconds, that determines how long the stream will attempt to read before timing out. + The read timeout. + + + + Get or set a value, in milliseconds, that determines how long the stream will attempt to write before timing out. + + + Gets or sets a value, in milliseconds, that determines how long the stream will attempt to write before timing out. + + A value, in milliseconds, that determines how long the stream will attempt to write before timing out. + The write timeout. + + + + Get or set the position within the current stream. + + + Gets or sets the position within the current stream. + + The current position within the stream. + The position of the stream. + + An I/O error occurred. + + + The stream does not support seeking. + + + The stream has been disposed. + + + + + Get the length of the stream, in bytes. + + + Gets the length of the stream, in bytes. + + A long value representing the length of the stream in bytes. + The length of the stream. + + The stream does not support seeking. + + + The stream has been disposed. + + + + + Reads a sequence of bytes from the stream and advances the position + within the stream by the number of bytes read. + + + Reads a sequence of bytes from the stream and advances the position + within the stream by the number of bytes read. + + The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many + bytes are not currently available, or zero (0) if the end of the stream has been reached. + The buffer. + The buffer offset. + The number of bytes to read. + The cancellation token. + + is null. + + + is less than zero or greater than the length of . + -or- + The is not large enough to contain bytes strting + at the specified . + + + The stream has been disposed. + + + The stream is in line mode (see ). + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + + + Reads a sequence of bytes from the stream and advances the position + within the stream by the number of bytes read. + + + Reads a sequence of bytes from the stream and advances the position + within the stream by the number of bytes read. + + The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many + bytes are not currently available, or zero (0) if the end of the stream has been reached. + The buffer. + The buffer offset. + The number of bytes to read. + + is null. + + + is less than zero or greater than the length of . + -or- + The is not large enough to contain bytes strting + at the specified . + + + The stream has been disposed. + + + The stream is in line mode (see ). + + + An I/O error occurred. + + + + + Reads a sequence of bytes from the stream and advances the position + within the stream by the number of bytes read. + + + Reads a sequence of bytes from the stream and advances the position + within the stream by the number of bytes read. + + The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many + bytes are not currently available, or zero (0) if the end of the stream has been reached. + The buffer. + The buffer offset. + The number of bytes to read. + The cancellation token. + + is null. + + + is less than zero or greater than the length of . + -or- + The is not large enough to contain bytes strting + at the specified . + + + The stream has been disposed. + + + The stream is in line mode (see ). + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + + + Reads a single line of input from the stream. + + + This method should be called in a loop until it returns true. + + true, if reading the line is complete, false otherwise. + The output buffer to write the line data into. + The cancellation token. + + The stream has been disposed. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + + + Asynchronously reads a single line of input from the stream. + + + This method should be called in a loop until it returns true. + + true, if reading the line is complete, false otherwise. + The output buffer to write the line data into. + The cancellation token. + + The stream has been disposed. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + + + Queue a command to the POP3 server. + + + Queues a command to the POP3 server. + + The character encoding. + The command. + The cancellation token. + + The stream has been disposed. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + + + Asynchronously queue a command to the POP3 server. + + + Asynchronously queues a command to the POP3 server. + + The character encoding. + The command. + The cancellation token. + + The stream has been disposed. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + + + Writes a sequence of bytes to the stream and advances the current + position within this stream by the number of bytes written. + + + Writes a sequence of bytes to the stream and advances the current + position within this stream by the number of bytes written. + + The buffer to write. + The offset of the first byte to write. + The number of bytes to write. + The cancellation token. + + is null. + + + is less than zero or greater than the length of . + -or- + The is not large enough to contain bytes strting + at the specified . + + + The stream has been disposed. + + + The stream does not support writing. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + + + Writes a sequence of bytes to the stream and advances the current + position within this stream by the number of bytes written. + + + Writes a sequence of bytes to the stream and advances the current + position within this stream by the number of bytes written. + + The buffer to write. + The offset of the first byte to write. + The number of bytes to write. + + is null. + + + is less than zero or greater than the length of . + -or- + The is not large enough to contain bytes strting + at the specified . + + + The stream has been disposed. + + + The stream does not support writing. + + + An I/O error occurred. + + + + + Writes a sequence of bytes to the stream and advances the current + position within this stream by the number of bytes written. + + + Writes a sequence of bytes to the stream and advances the current + position within this stream by the number of bytes written. + + A task that represents the asynchronous write operation. + The buffer to write. + The offset of the first byte to write. + The number of bytes to write. + The cancellation token. + + is null. + + + is less than zero or greater than the length of . + -or- + The is not large enough to contain bytes strting + at the specified . + + + The stream has been disposed. + + + The stream does not support writing. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + + + Clears all buffers for this stream and causes any buffered data to be written + to the underlying device. + + + Clears all buffers for this stream and causes any buffered data to be written + to the underlying device. + + The cancellation token. + + The stream has been disposed. + + + The stream does not support writing. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + + + Clears all buffers for this stream and causes any buffered data to be written + to the underlying device. + + + Clears all buffers for this stream and causes any buffered data to be written + to the underlying device. + + + The stream has been disposed. + + + The stream does not support writing. + + + An I/O error occurred. + + + + + Clears all buffers for this stream and causes any buffered data to be written + to the underlying device. + + + Clears all buffers for this stream and causes any buffered data to be written + to the underlying device. + + A task that represents the asynchronous flush operation. + The cancellation token. + + The stream has been disposed. + + + The stream does not support writing. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + + + Sets the position within the current stream. + + The new position within the stream. + The offset into the stream relative to the . + The origin to seek from. + + The stream does not support seeking. + + + + + Sets the length of the stream. + + The desired length of the stream in bytes. + + The stream does not support setting the length. + + + + + Releases the unmanaged resources used by the and + optionally releases the managed resources. + + true to release both managed and unmanaged resources; + false to release only the unmanaged resources. + + + + An HTTP proxy client. + + + An HTTP proxy client. + + + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + + The host name of the proxy server. + The proxy server port. + + is null. + + + is not between 1 and 65535. + + + The is a zero-length string. + -or- + The length of is greater than 255 characters. + + + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + + The host name of the proxy server. + The proxy server port. + The credentials to use to authenticate with the proxy server. + + is null. + -or- + is null. + + + is not between 1 and 65535. + + + The is a zero-length string. + -or- + The length of is greater than 255 characters. + + + + + Connect to the target host. + + + Connects to the target host and port through the proxy server. + + The connected network stream. + The host name of the proxy server. + The proxy server port. + The cancellation token. + + is null. + + + is not between 0 and 65535. + + + The is a zero-length string. + + + The operation was canceled via the cancellation token. + + + A socket error occurred trying to connect to the remote host. + + + An I/O error occurred. + + + + + Asynchronously connect to the target host. + + + Asynchronously connects to the target host and port through the proxy server. + + The connected network stream. + The host name of the proxy server. + The proxy server port. + The cancellation token. + + is null. + + + is not between 0 and 65535. + + + The is a zero-length string. + + + The operation was canceled via the cancellation token. + + + A socket error occurred trying to connect to the remote host. + + + An I/O error occurred. + + + + + An HTTPS proxy client. + + + An HTTPS proxy client. + + + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + + The host name of the proxy server. + The proxy server port. + + is null. + + + is not between 1 and 65535. + + + The is a zero-length string. + -or- + The length of is greater than 255 characters. + + + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + + The host name of the proxy server. + The proxy server port. + The credentials to use to authenticate with the proxy server. + + is null. + -or- + is null. + + + is not between 1 and 65535. + + + The is a zero-length string. + -or- + The length of is greater than 255 characters. + + + + + Gets or sets the set of enabled SSL and/or TLS protocol versions that the client is allowed to use. + + + Gets or sets the enabled SSL and/or TLS protocol versions that the client is allowed to use. + By default, MailKit initializes this value to enable only TLS v1.2 and greater. + TLS v1.1, TLS v1.0 and all versions of SSL are not enabled by default due to them all being + susceptible to security vulnerabilities such as POODLE. + This property should be set before calling any of the + Connect methods. + + The SSL and TLS protocol versions that are enabled. + + + + Gets or sets the client SSL certificates. + + + Some servers may require the client SSL certificates in order + to allow the user to connect. + This property should be set before calling any of the + Connect methods. + + The client SSL certificates. + + + + Get or set whether connecting via SSL/TLS should check certificate revocation. + + + Gets or sets whether connecting via SSL/TLS should check certificate revocation. + Normally, the value of this property should be set to true (the default) for security + reasons, but there are times when it may be necessary to set it to false. + For example, most Certificate Authorities are probably pretty good at keeping their CRL and/or + OCSP servers up 24/7, but occasionally they do go down or are otherwise unreachable due to other + network problems between the client and the Certificate Authority. When this happens, it becomes + impossible to check the revocation status of one or more of the certificates in the chain + resulting in an being thrown in the + Connect method. If this becomes a problem, + it may become desirable to set to false. + + true if certificate revocation should be checked; otherwise, false. + + + + Get or sets a callback function to validate the server certificate. + + + Gets or sets a callback function to validate the server certificate. + This property should be set before calling any of the + Connect methods. + + The server certificate validation callback function. + + + + Connect to the target host. + + + Connects to the target host and port through the proxy server. + + The connected network stream. + The host name of the proxy server. + The proxy server port. + The cancellation token. + + is null. + + + is not between 0 and 65535. + + + The is a zero-length string. + + + The operation was canceled via the cancellation token. + + + A socket error occurred trying to connect to the remote host. + + + An I/O error occurred. + + + + + Asynchronously connect to the target host. + + + Asynchronously connects to the target host and port through the proxy server. + + The connected network stream. + The host name of the proxy server. + The proxy server port. + The cancellation token. + + is null. + + + is not between 0 and 65535. + + + The is a zero-length string. + + + The operation was canceled via the cancellation token. + + + A socket error occurred trying to connect to the remote host. + + + An I/O error occurred. + + + + + An interface for connecting to services via a proxy. + + + Implemented by , , + , and . + + + + + + + + Gets the proxy credentials. + + + Gets the credentials to use when authenticating with the proxy server. + + The proxy credentials. + + + + Get the proxy host. + + + Gets the host name of the proxy server. + + The host name of the proxy server. + + + + Get the proxy port. + + + Gets the port to use when connecting to the proxy server. + + The proxy port. + + + + Get or set the local IP end point to use when connecting to a remote host. + + + Gets or sets the local IP end point to use when connecting to a remote host. + + The local IP end point or null to use the default end point. + + + + Connect to the target host. + + + Connects to the target host and port through the proxy server. + + The connected network stream. + The host name of the proxy server. + The proxy server port. + The cancellation token. + + is null. + + + is not between 0 and 65535. + + + The is a zero-length string. + + + The operation was canceled via the cancellation token. + + + A socket error occurred trying to connect to the remote host. + + + An I/O error occurred. + + + + + Asynchronously connect to the target host. + + + Asynchronously connects to the target host and port through the proxy server. + + The connected network stream. + The host name of the proxy server. + The proxy server port. + The cancellation token. + + is null. + + + is not between 0 and 65535. + + + The is a zero-length string. + + + The operation was canceled via the cancellation token. + + + A socket error occurred trying to connect to the remote host. + + + An I/O error occurred. + + + + + Connect to the target host. + + + Connects to the target host and port through the proxy server. + + The connected network stream. + The host name of the proxy server. + The proxy server port. + The timeout, in milliseconds. + The cancellation token. + + is null. + + + is not between 0 and 65535. + + + The is a zero-length string. + + + The operation was canceled via the cancellation token. + + + The operation timed out. + + + A socket error occurred trying to connect to the remote host. + + + An I/O error occurred. + + + + + Asynchronously connect to the target host. + + + Asynchronously connects to the target host and port through the proxy server. + + The connected network stream. + The host name of the proxy server. + The proxy server port. + The timeout, in milliseconds. + The cancellation token. + + is null. + + + is not between 0 and 65535. + + + The is a zero-length string. + + + The operation was canceled via the cancellation token. + + + The operation timed out. + + + A socket error occurred trying to connect to the remote host. + + + An I/O error occurred. + + + + + An abstract proxy client base class. + + + A proxy client can be used to connect to a service through a firewall that + would otherwise be blocked. + + + + + + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + + The host name of the proxy server. + The proxy server port. + + is null. + + + is not between 0 and 65535. + + + The is a zero-length string. + -or- + The length of is greater than 255 characters. + + + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + + The host name of the proxy server. + The proxy server port. + The credentials to use to authenticate with the proxy server. + + is null. + -or- + is null. + + + is not between 0 and 65535. + + + The is a zero-length string. + -or- + The length of is greater than 255 characters. + + + + + Gets the proxy credentials. + + + Gets the credentials to use when authenticating with the proxy server. + + The proxy credentials. + + + + Get the proxy host. + + + Gets the host name of the proxy server. + + The host name of the proxy server. + + + + Get the proxy port. + + + Gets the port to use when connecting to the proxy server. + + The proxy port. + + + + Get or set the local IP end point to use when connecting to a remote host. + + + Gets or sets the local IP end point to use when connecting to a remote host. + + The local IP end point or null to use the default end point. + + + + Connect to the target host. + + + Connects to the target host and port through the proxy server. + + The connected network stream. + The host name of the proxy server. + The proxy server port. + The cancellation token. + + is null. + + + is not between 1 and 65535. + + + The is a zero-length string. + + + The operation was canceled via the cancellation token. + + + A socket error occurred trying to connect to the remote host. + + + An I/O error occurred. + + + + + Asynchronously connect to the target host. + + + Asynchronously connects to the target host and port through the proxy server. + + The connected network stream. + The host name of the proxy server. + The proxy server port. + The cancellation token. + + is null. + + + is not between 1 and 65535. + + + The is a zero-length string. + + + The operation was canceled via the cancellation token. + + + A socket error occurred trying to connect to the remote host. + + + An I/O error occurred. + + + + + Connect to the target host. + + + Connects to the target host and port through the proxy server. + + The connected network stream. + The host name of the proxy server. + The proxy server port. + The timeout, in milliseconds. + The cancellation token. + + is null. + + + is not between 1 and 65535. + -or- + is less than -1. + + + The is a zero-length string. + + + The operation was canceled via the cancellation token. + + + The operation timed out. + + + A socket error occurred trying to connect to the remote host. + + + An I/O error occurred. + + + + + Asynchronously connect to the target host. + + + Asynchronously connects to the target host and port through the proxy server. + + The connected network stream. + The host name of the proxy server. + The proxy server port. + The timeout, in milliseconds. + The cancellation token. + + is null. + + + is not between 1 and 65535. + -or- + is less than -1. + + + The is a zero-length string. + + + The operation was canceled via the cancellation token. + + + The operation timed out. + + + A socket error occurred trying to connect to the remote host. + + + An I/O error occurred. + + + + + A proxy protocol exception. + + + The exception that is thrown when there is an error communicating with a proxy server. + + + + + Initializes a new instance of the class. + + + Creates a new from the serialized data. + + The serialization info. + The streaming context. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The error message. + An inner exception. + + + + Initializes a new instance of the class. + + + Creates a new . + + The error message. + + + + Initializes a new instance of the class. + + + Creates a new . + + + + + A SOCKS4a proxy client. + + + A SOCKS4a proxy client. + + + + + + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + + The host name of the proxy server. + The proxy server port. + + is null. + + + is not between 1 and 65535. + + + The is a zero-length string. + -or- + The length of is greater than 255 characters. + + + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + + The host name of the proxy server. + The proxy server port. + The credentials to use to authenticate with the proxy server. + + is null. + -or- + is null. + + + is not between 1 and 65535. + + + The is a zero-length string. + + + + + A SOCKS4 proxy client. + + + A SOCKS4 proxy client. + + + + + + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + + The host name of the proxy server. + The proxy server port. + + is null. + + + is not between 1 and 65535. + + + The is a zero-length string. + -or- + The length of is greater than 255 characters. + + + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + + The host name of the proxy server. + The proxy server port. + The credentials to use to authenticate with the proxy server. + + is null. + -or- + is null. + + + is not between 1 and 65535. + + + The is a zero-length string. + + + + + Get or set whether this is a Socks4a client. + + + Gets or sets whether this is a Socks4a client. + + true if is is a Socks4a client; otherwise, false. + + + + Connect to the target host. + + + Connects to the target host and port through the proxy server. + + The connected network stream. + The host name of the proxy server. + The proxy server port. + The cancellation token. + + is null. + + + is not between 0 and 65535. + + + The is a zero-length string. + + + The operation was canceled via the cancellation token. + + + A socket error occurred trying to connect to the remote host. + + + An I/O error occurred. + + + + + Asynchronously connect to the target host. + + + Asynchronously connects to the target host and port through the proxy server. + + The connected network stream. + The host name of the proxy server. + The proxy server port. + The cancellation token. + + is null. + + + is not between 0 and 65535. + + + The is a zero-length string. + + + The operation was canceled via the cancellation token. + + + A socket error occurred trying to connect to the remote host. + + + An I/O error occurred. + + + + + A SOCKS5 proxy client. + + + A SOCKS5 proxy client. + + + + + + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + + + + + The host name of the proxy server. + The proxy server port. + + is null. + + + is not between 1 and 65535. + + + The is a zero-length string. + -or- + The length of is greater than 255 characters. + + + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + + + + + The host name of the proxy server. + The proxy server port. + The credentials to use to authenticate with the proxy server. + + is null. + -or- + is null. + + + is not between 1 and 65535. + + + The is a zero-length string. + -or- + The length of is greater than 255 characters. + + + + + Connect to the target host. + + + Connects to the target host and port through the proxy server. + + The connected network stream. + The host name of the proxy server. + The proxy server port. + The cancellation token. + + is null. + + + is not between 0 and 65535. + + + The is a zero-length string. + + + The operation was canceled via the cancellation token. + + + A socket error occurred trying to connect to the remote host. + + + An I/O error occurred. + + + + + Asynchronously connect to the target host. + + + Asynchronously connects to the target host and port through the proxy server. + + The connected network stream. + The host name of the proxy server. + The proxy server port. + The cancellation token. + + is null. + + + is not between 0 and 65535. + + + The is a zero-length string. + + + The operation was canceled via the cancellation token. + + + A socket error occurred trying to connect to the remote host. + + + An I/O error occurred. + + + + + An abstract SOCKS proxy client. + + + An abstract SOCKS proxy client. + + + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + + The SOCKS protocol version. + The host name of the proxy server. + The proxy server port. + + is null. + + + is not between 1 and 65535. + + + The is a zero-length string. + + + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + + The SOCKS protocol version. + The host name of the proxy server. + The proxy server port. + The credentials to use to authenticate with the proxy server. + + is null. + -or- + is null. + + + is not between 1 and 65535. + + + The is a zero-length string. + + + + + Get the SOCKS protocol version. + + + Gets the SOCKS protocol version. + + The SOCKS protocol version. + + + + An SMTP client that can be used to send email messages. + + + The class supports both the "smtp" and "smtps" protocols. The "smtp" + protocol makes a clear-text connection to the SMTP server and does not use SSL or TLS unless the SMTP + server supports the STARTTLS extension. The "smtps" + protocol, however, connects to the SMTP server using an SSL-wrapped connection. + The connection established by any of the + Connect methods may be re-used if an + application wishes to send multiple messages to the same SMTP server. Since connecting and authenticating + can be expensive operations, re-using a connection can significantly improve performance when sending a + large number of messages to the same SMTP server over a short period of time. + + + + + + + + Asynchronously send a custom command to the SMTP server. + + + Asynchronously sends a custom command to the SMTP server. + The command string should not include the terminating \r\n sequence. + + The command response. + The command. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected. + + + The operation has been canceled. + + + An I/O error occurred. + + + An SMTP protocol exception occurred. + + + + + Asynchronously authenticate using the specified SASL mechanism. + + + Authenticates using the specified SASL mechanism. + For a list of available SASL authentication mechanisms supported by the server, + check the property after the service has been + connected. + + An asynchronous task context. + The SASL mechanism. + The cancellation token. + + is null. + + + The is not connected. + + + The is already authenticated. + + + The SMTP server does not support authentication. + + + The operation was canceled via the cancellation token. + + + Authentication using the supplied credentials has failed. + + + A SASL authentication error occurred. + + + An I/O error occurred. + + + The SMTP command failed. + + + An SMTP protocol error occurred. + + + + + Asynchronously authenticate using the supplied credentials. + + + Asynchronously authenticates using the supplied credentials. + If the SMTP server supports authentication, then the SASL mechanisms + that both the client and server support (not including any OAUTH mechanisms) + are tried in order of greatest security to weakest security. Once a SASL + authentication mechanism is found that both client and server support, the + credentials are used to authenticate. + If, on the other hand, authentication is not supported by the SMTP + server, then this method will throw . + The property can be checked for the + flag to make sure the + SMTP server supports authentication before calling this method. + To prevent the usage of certain authentication mechanisms, + simply remove them from the hash set + before calling this method. + + An asynchronous task context. + The text encoding to use for the user's credentials. + The user's credentials. + The cancellation token. + + is null. + -or- + is null. + + + The is not connected. + + + The is already authenticated. + + + The SMTP server does not support authentication. + + + The operation was canceled via the cancellation token. + + + Authentication using the supplied credentials has failed. + + + A SASL authentication error occurred. + + + An I/O error occurred. + + + The SMTP command failed. + + + An SMTP protocol error occurred. + + + + + Asynchronously establish a connection to the specified SMTP or SMTP/S server. + + + Establishes a connection to the specified SMTP or SMTP/S server. + If the has a value of 0, then the + parameter is used to determine the default port to + connect to. The default port used with + is 465. All other values will use a default port of 25. + If the has a value of + , then the is used + to determine the default security options. If the has a value + of 465, then the default options used will be + . All other values will use + . + Once a connection is established, properties such as + and will be + populated. + The connection established by any of the + Connect + methods may be re-used if an application wishes to send multiple messages + to the same SMTP server. Since connecting and authenticating can be expensive + operations, re-using a connection can significantly improve performance when + sending a large number of messages to the same SMTP server over a short + period of time. + + + + + An asynchronous task context. + The host name to connect to. + The port to connect to. If the specified port is 0, then the default port will be used. + The secure socket options to when connecting. + The cancellation token. + + is null. + + + is not between 0 and 65535. + + + The is a zero-length string. + + + The has been disposed. + + + The is already connected. + + + was set to + + and the SMTP server does not support the STARTTLS extension. + + + The operation was canceled. + + + A socket error occurred trying to connect to the remote host. + + + An error occurred during the SSL/TLS negotiations. + + + An I/O error occurred. + + + An SMTP command failed. + + + An SMTP protocol error occurred. + + + + + Asynchronously establish a connection to the specified SMTP or SMTP/S server using the provided socket. + + + Establishes a connection to the specified SMTP or SMTP/S server using the provided socket. + If the has a value of + , then the is used + to determine the default security options. If the has a value + of 465, then the default options used will be + . All other values will use + . + Once a connection is established, properties such as + and will be + populated. + With the exception of using the to determine the + default to use when the value + is , the and + parameters are only used for logging purposes. + + An asynchronous task context. + The socket to use for the connection. + The host name to connect to. + The port to connect to. If the specified port is 0, then the default port will be used. + The secure socket options to when connecting. + The cancellation token. + + is null. + -or- + is null. + + + is not between 0 and 65535. + + + is not connected. + -or- + The is a zero-length string. + + + The has been disposed. + + + The is already connected. + + + was set to + + and the SMTP server does not support the STARTTLS extension. + + + The operation was canceled. + + + An error occurred during the SSL/TLS negotiations. + + + An I/O error occurred. + + + An SMTP command failed. + + + An SMTP protocol error occurred. + + + + + Asynchronously establish a connection to the specified SMTP or SMTP/S server using the provided socket. + + + Establishes a connection to the specified SMTP or SMTP/S server using the provided socket. + If the has a value of + , then the is used + to determine the default security options. If the has a value + of 465, then the default options used will be + . All other values will use + . + Once a connection is established, properties such as + and will be + populated. + With the exception of using the to determine the + default to use when the value + is , the and + parameters are only used for logging purposes. + + An asynchronous task context. + The stream to use for the connection. + The host name to connect to. + The port to connect to. If the specified port is 0, then the default port will be used. + The secure socket options to when connecting. + The cancellation token. + + is null. + -or- + is null. + + + is not between 0 and 65535. + + + The is a zero-length string. + + + The has been disposed. + + + The is already connected. + + + was set to + + and the SMTP server does not support the STARTTLS extension. + + + The operation was canceled. + + + An error occurred during the SSL/TLS negotiations. + + + An I/O error occurred. + + + An SMTP command failed. + + + An SMTP protocol error occurred. + + + + + Asynchronously disconnect the service. + + + If is true, a QUIT command will be issued in order to disconnect cleanly. + + + + + An asynchronous task context. + If set to true, a QUIT command will be issued in order to disconnect cleanly. + The cancellation token. + + The has been disposed. + + + + + Asynchronously ping the SMTP server to keep the connection alive. + + Mail servers, if left idle for too long, will automatically drop the connection. + An asynchronous task context. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The operation was canceled. + + + An I/O error occurred. + + + The SMTP command failed. + + + An SMTP protocol error occurred. + + + + + Asynchronously get the size of the message. + + + Asynchronously calculates the size of the message in bytes. + This method is called by SendAsync + methods in the following conditions: + + The SMTP server supports the SIZE= parameter in the MAIL FROM command. + The parameter is non-null. + The SMTP server supports the CHUNKING extension. + + + The size of the message, in bytes. + The formatting options. + The message. + The cancellation token. + + + + Asynchronously send the specified message. + + + Sends the specified message. + The sender address is determined by checking the following + message headers (in order of precedence): Resent-Sender, + Resent-From, Sender, and From. + If either the Resent-Sender or Resent-From addresses are present, + the recipients are collected from the Resent-To, Resent-Cc, and + Resent-Bcc headers, otherwise the To, Cc, and Bcc headers are used. + + + + + The final free-form text response from the server. + The formatting options. + The message. + The cancellation token. + The progress reporting mechanism. + + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected. + + + Authentication is required before sending a message. + + + A sender has not been specified. + -or- + No recipients have been specified. + + + Internationalized formatting was requested but is not supported by the server. + + + The operation has been canceled. + + + An I/O error occurred. + + + The SMTP command failed. + + + An SMTP protocol exception occurred. + + + + + Asynchronously send the specified message using the supplied sender and recipients. + + + Sends the message by uploading it to an SMTP server using the supplied sender and recipients. + + The final free-form text response from the server. + The formatting options. + The message. + The mailbox address to use for sending the message. + The mailbox addresses that should receive the message. + The cancellation token. + The progress reporting mechanism. + + is null. + -or- + is null. + -or- + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected. + + + Authentication is required before sending a message. + + + A sender has not been specified. + -or- + No recipients have been specified. + + + Internationalized formatting was requested but is not supported by the server. + + + The operation has been canceled. + + + An I/O error occurred. + + + The SMTP command failed. + + + An SMTP protocol exception occurred. + + + + + Asynchronously expand a mailing address alias. + + + Expands a mailing address alias. + + + + + The expanded list of mailbox addresses. + The mailing address alias. + The cancellation token. + + is null. + + + is an empty string. + + + The has been disposed. + + + The is not connected. + + + Authentication is required before expanding an alias. + + + The operation has been canceled. + + + An I/O error occurred. + + + The SMTP command failed. + + + An SMTP protocol exception occurred. + + + + + Asynchronously verify the existence of a mailbox address. + + + Verifies the existence a mailbox address with the SMTP server, returning the expanded + mailbox address if it exists. + + + + + The expanded mailbox address. + The mailbox address. + The cancellation token. + + is null. + + + is an empty string. + + + The has been disposed. + + + The is not connected. + + + Authentication is required before verifying the existence of an address. + + + The operation has been canceled. + + + An I/O error occurred. + + + The SMTP command failed. + + + An SMTP protocol exception occurred. + + + + + Initializes a new instance of the class. + + + Before you can send messages with the , you must first call one of + the Connect methods. + Depending on whether the SMTP server requires authenticating or not, you may also need to + authenticate using one of the + Authenticate methods. + + + + + + + + Initializes a new instance of the class. + + + Before you can send messages with the , you must first call one of + the Connect methods. + Depending on whether the SMTP server requires authenticating or not, you may also need to + authenticate using one of the + Authenticate methods. + + The protocol logger. + + is null. + + + + + + + + Get the underlying SMTP stream. + + + Gets the underlying SMTP stream. + + The SMTP stream. + + + + Gets an object that can be used to synchronize access to the SMTP server. + + + Gets an object that can be used to synchronize access to the SMTP server between multiple threads. + When using methods from multiple threads, it is important to lock the + object for thread safety. + + The lock object. + + + + Get the protocol supported by the message service. + + + Gets the protocol supported by the message service. + + The protocol. + + + + Get the capabilities supported by the SMTP server. + + + The capabilities will not be known until a successful connection has been made + and may change once the client is authenticated. + + + + + The capabilities. + + Capabilities cannot be enabled, they may only be disabled. + + + + + Get or set the local domain. + + + The local domain is used in the HELO or EHLO commands sent to + the SMTP server. If left unset, the local IP address will be + used instead. + + The local domain. + + + + Get whether or not the BDAT command is preferred over the DATA command. + + + Gets whether or not the BDAT command is preferred over the standard DATA + command. + The BDAT command is normally only used when the message being sent contains binary data + (e.g. one mor more MIME parts contains a Content-Transfer-Encoding: binary header). This + option provides a way to override this behavior, forcing the to send + messages using the BDAT command instead of the DATA command even when it is not + necessary to do so. + + true if the BDAT command is preferred over the DATA command; otherwise, false. + + + + Get the maximum message size supported by the server. + + + The maximum message size will not be known until a successful connection has + been made and may change once the client is authenticated. + This value is only relevant if the includes + the flag. + + + + + The maximum message size supported by the server. + + + + Get or set whether the client should use the REQUIRETLS extension if it is available. + + + Gets or sets whether the client should use the REQUIRETLS extension if it is available. + The REQUIRETLS extension (as defined in rfc8689) is a way to ensure that every SMTP server + that a message passes through on its way to the recipient is required to use a TLS connection in + order to transfer the message to the next SMTP server. + This feature is only available if contains the + flag when sending the message. + + true if the REQUIRETLS extension should be used; otherwise, false. + + + + Get the authentication mechanisms supported by the SMTP server. + + + The authentication mechanisms are queried as part of the connection + process. + To prevent the usage of certain authentication mechanisms, + simply remove them from the hash set + before authenticating. + + + + + The authentication mechanisms. + + + + Get or set the timeout for network streaming operations, in milliseconds. + + + Gets or sets the underlying socket stream's + and values. + + The timeout in milliseconds. + + + + Get whether or not the client is currently connected to an SMTP server. + + + The state is set to true immediately after + one of the Connect + methods succeeds and is not set back to false until either the client + is disconnected via or until an + is thrown while attempting to read or write to + the underlying network socket. + When an is caught, the connection state of the + should be checked before continuing. + + + + + true if the client is connected; otherwise, false. + + + + Get whether or not the connection is secure (typically via SSL or TLS). + + + Gets whether or not the connection is secure (typically via SSL or TLS). + + true if the connection is secure; otherwise, false. + + + + Get whether or not the connection is encrypted (typically via SSL or TLS). + + + Gets whether or not the connection is encrypted (typically via SSL or TLS). + + true if the connection is encrypted; otherwise, false. + + + + Get whether or not the connection is signed (typically via SSL or TLS). + + + Gets whether or not the connection is signed (typically via SSL or TLS). + + true if the connection is signed; otherwise, false. + + + + Get the negotiated SSL or TLS protocol version. + + + Gets the negotiated SSL or TLS protocol version once an SSL or TLS connection has been made. + + + + + The negotiated SSL or TLS protocol version. + + + + Get the negotiated SSL or TLS cipher algorithm. + + + Gets the negotiated SSL or TLS cipher algorithm once an SSL or TLS connection has been made. + + + + + The negotiated SSL or TLS cipher algorithm. + + + + Get the negotiated SSL or TLS cipher algorithm strength. + + + Gets the negotiated SSL or TLS cipher algorithm strength once an SSL or TLS connection has been made. + + + + + The negotiated SSL or TLS cipher algorithm strength. + + + + Get the negotiated SSL or TLS hash algorithm. + + + Gets the negotiated SSL or TLS hash algorithm once an SSL or TLS connection has been made. + + + + + The negotiated SSL or TLS hash algorithm. + + + + Get the negotiated SSL or TLS hash algorithm strength. + + + Gets the negotiated SSL or TLS hash algorithm strength once an SSL or TLS connection has been made. + + + + + The negotiated SSL or TLS hash algorithm strength. + + + + Get the negotiated SSL or TLS key exchange algorithm. + + + Gets the negotiated SSL or TLS key exchange algorithm once an SSL or TLS connection has been made. + + + + + The negotiated SSL or TLS key exchange algorithm. + + + + Get the negotiated SSL or TLS key exchange algorithm strength. + + + Gets the negotiated SSL or TLS key exchange algorithm strength once an SSL or TLS connection has been made. + + + + + The negotiated SSL or TLS key exchange algorithm strength. + + + + Get whether or not the client is currently authenticated with the SMTP server. + + + Gets whether or not the client is currently authenticated with the SMTP server. + To authenticate with the SMTP server, use one of the + Authenticate + methods. + + true if the client is connected; otherwise, false. + + + + Invoked only when no recipients were accepted by the SMTP server. + + + If is overridden to not throw + an exception, this method should be overridden to throw an appropriate + exception instead. + + The message being sent. + + + + Send a custom command to the SMTP server. + + + Sends a custom command to the SMTP server. + The command string should not include the terminating \r\n sequence. + + The command response. + The command. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected. + + + The operation has been canceled. + + + An I/O error occurred. + + + An SMTP protocol exception occurred. + + + + + Authenticate using the specified SASL mechanism. + + + Authenticates using the specified SASL mechanism. + For a list of available SASL authentication mechanisms supported by the server, + check the property after the service has been + connected. + + The SASL mechanism. + The cancellation token. + + is null. + + + The is not connected. + + + The is already authenticated. + + + The SMTP server does not support authentication. + + + The operation was canceled via the cancellation token. + + + Authentication using the supplied credentials has failed. + + + A SASL authentication error occurred. + + + An I/O error occurred. + + + The SMTP command failed. + + + An SMTP protocol error occurred. + + + + + Authenticate using the supplied credentials. + + + Authenticates using the supplied credentials. + If the SMTP server supports authentication, then the SASL mechanisms + that both the client and server support (not including any OAUTH mechanisms) + are tried in order of greatest security to weakest security. Once a SASL + authentication mechanism is found that both client and server support, the + credentials are used to authenticate. + If, on the other hand, authentication is not supported by the SMTP + server, then this method will throw . + The property can be checked for the + flag to make sure the + SMTP server supports authentication before calling this method. + To prevent the usage of certain authentication mechanisms, + simply remove them from the hash set + before calling this method. + + The text encoding to use for the user's credentials. + The user's credentials. + The cancellation token. + + is null. + -or- + is null. + + + The is not connected. + + + The is already authenticated. + + + The SMTP server does not support authentication. + + + The operation was canceled via the cancellation token. + + + Authentication using the supplied credentials has failed. + + + A SASL authentication error occurred. + + + An I/O error occurred. + + + The SMTP command failed. + + + An SMTP protocol error occurred. + + + + + Establish a connection to the specified SMTP or SMTP/S server. + + + Establishes a connection to the specified SMTP or SMTP/S server. + If the has a value of 0, then the + parameter is used to determine the default port to + connect to. The default port used with + is 465. All other values will use a default port of 25. + If the has a value of + , then the is used + to determine the default security options. If the has a value + of 465, then the default options used will be + . All other values will use + . + Once a connection is established, properties such as + and will be + populated. + The connection established by any of the + Connect + methods may be re-used if an application wishes to send multiple messages + to the same SMTP server. Since connecting and authenticating can be expensive + operations, re-using a connection can significantly improve performance when + sending a large number of messages to the same SMTP server over a short + period of time. + + + + + The host name to connect to. + The port to connect to. If the specified port is 0, then the default port will be used. + The secure socket options to when connecting. + The cancellation token. + + is null. + + + is not between 0 and 65535. + + + The is a zero-length string. + + + The has been disposed. + + + The is already connected. + + + was set to + + and the SMTP server does not support the STARTTLS extension. + + + The operation was canceled. + + + A socket error occurred trying to connect to the remote host. + + + An error occurred during the SSL/TLS negotiations. + + + An I/O error occurred. + + + An SMTP command failed. + + + An SMTP protocol error occurred. + + + + + Establish a connection to the specified SMTP or SMTP/S server using the provided socket. + + + Establishes a connection to the specified SMTP or SMTP/S server using the provided socket. + If the has a value of + , then the is used + to determine the default security options. If the has a value + of 465, then the default options used will be + . All other values will use + . + Once a connection is established, properties such as + and will be + populated. + With the exception of using the to determine the + default to use when the value + is , the and + parameters are only used for logging purposes. + + The socket to use for the connection. + The host name to connect to. + The port to connect to. If the specified port is 0, then the default port will be used. + The secure socket options to when connecting. + The cancellation token. + + is null. + -or- + is null. + + + is not between 0 and 65535. + + + is not connected. + -or- + The is a zero-length string. + + + The has been disposed. + + + The is already connected. + + + was set to + + and the SMTP server does not support the STARTTLS extension. + + + The operation was canceled. + + + An error occurred during the SSL/TLS negotiations. + + + An I/O error occurred. + + + An SMTP command failed. + + + An SMTP protocol error occurred. + + + + + Establish a connection to the specified SMTP or SMTP/S server using the provided stream. + + + Establishes a connection to the specified SMTP or SMTP/S server using the provided stream. + If the has a value of + , then the is used + to determine the default security options. If the has a value + of 465, then the default options used will be + . All other values will use + . + Once a connection is established, properties such as + and will be + populated. + With the exception of using the to determine the + default to use when the value + is , the and + parameters are only used for logging purposes. + + The stream to use for the connection. + The host name to connect to. + The port to connect to. If the specified port is 0, then the default port will be used. + The secure socket options to when connecting. + The cancellation token. + + is null. + -or- + is null. + + + is not between 0 and 65535. + + + The is a zero-length string. + + + The has been disposed. + + + The is already connected. + + + was set to + + and the SMTP server does not support the STARTTLS extension. + + + The operation was canceled. + + + An error occurred during the SSL/TLS negotiations. + + + An I/O error occurred. + + + An SMTP command failed. + + + An SMTP protocol error occurred. + + + + + Disconnect the service. + + + If is true, a QUIT command will be issued in order to disconnect cleanly. + + + + + If set to true, a QUIT command will be issued in order to disconnect cleanly. + The cancellation token. + + The has been disposed. + + + + + Ping the SMTP server to keep the connection alive. + + Mail servers, if left idle for too long, will automatically drop the connection. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The operation was canceled. + + + An I/O error occurred. + + + The SMTP command failed. + + + An SMTP protocol error occurred. + + + + + Invoked when the sender is accepted by the SMTP server. + + + The default implementation does nothing. + + The message being sent. + The mailbox used in the MAIL FROM command. + The response to the MAIL FROM command. + + + + Invoked when a recipient is not accepted by the SMTP server. + + + The default implementation throws an appropriate . + + The message being sent. + The mailbox used in the MAIL FROM command. + The response to the MAIL FROM command. + + + + Get the envelope identifier to be used with delivery status notifications. + + + The envelope identifier, if non-empty, is useful in determining which message a delivery + status notification was issued for. + The envelope identifier should be unique and may be up to 100 characters in length, but + must consist only of printable ASCII characters and no white space. + For more information, see + rfc3461, section 4.4. + + + + + The envelope identifier. + The message. + + + + Get or set how much of the message to include in any failed delivery status notifications. + + + Gets or sets how much of the message to include in any failed delivery status notifications. + + + + + A value indicating how much of the message to include in a failure delivery status notification. + + + + Invoked when a recipient is accepted by the SMTP server. + + + The default implementation does nothing. + + The message being sent. + The mailbox used in the RCPT TO command. + The response to the RCPT TO command. + + + + Invoked when a recipient is not accepted by the SMTP server. + + + The default implementation throws an appropriate . + + The message being sent. + The mailbox used in the RCPT TO command. + The response to the RCPT TO command. + + + + Get the types of delivery status notification desired for the specified recipient mailbox. + + + Gets the types of delivery status notification desired for the specified recipient mailbox. + + + + + The desired delivery status notification type. + The message being sent. + The recipient mailbox. + + + + Get the original intended recipient address and address type. + + + Gets the original intended recipient address and address type for the purpose of delivery status notification. + When initially submitting a message via SMTP, the address returned by this method MUST be identical to the + address. Likewise, when a mailing list submits a message via SMTP to be distributed to the list subscribers, the address returned by + this method MUST match the new RCPT TO address of each recipient, not the address specified by the original sender of the message.) + + The message being sent. + The recipient mailbox. + The original recipient address and the address type. + + + + Prepare the message for transport with the specified constraints. + + + Prepares the message for transport with the specified constraints. + Typically, this involves calling on + the message with the provided constraints. + + The format options. + The message. + The encoding constraint. + The max line length supported by the server. + + + + Get the size of the message. + + + Calculates the size of the message in bytes. + This method is called by Send + methods in the following conditions: + + The SMTP server supports the SIZE= parameter in the MAIL FROM command. + The parameter is non-null. + The SMTP server supports the CHUNKING extension. + + + The size of the message, in bytes. + The formatting options. + The message. + The cancellation token. + + + + Send the specified message. + + + Sends the specified message. + The sender address is determined by checking the following + message headers (in order of precedence): Resent-Sender, + Resent-From, Sender, and From. + If either the Resent-Sender or Resent-From addresses are present, + the recipients are collected from the Resent-To, Resent-Cc, and + Resent-Bcc headers, otherwise the To, Cc, and Bcc headers are used. + + + + + The final free-form text response from the server. + The formatting options. + The message. + The cancellation token. + The progress reporting mechanism. + + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected. + + + Authentication is required before sending a message. + + + A sender has not been specified. + -or- + No recipients have been specified. + + + Internationalized formatting was requested but is not supported by the server. + + + The operation has been canceled. + + + An I/O error occurred. + + + The SMTP command failed. + + + An SMTP protocol exception occurred. + + + + + Send the specified message using the supplied sender and recipients. + + + Sends the message by uploading it to an SMTP server using the supplied sender and recipients. + + The final free-form text response from the server. + The formatting options. + The message. + The mailbox address to use for sending the message. + The mailbox addresses that should receive the message. + The cancellation token. + The progress reporting mechanism. + + is null. + -or- + is null. + -or- + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected. + + + Authentication is required before sending a message. + + + A sender has not been specified. + -or- + No recipients have been specified. + + + Internationalized formatting was requested but is not supported by the server. + + + The operation has been canceled. + + + An I/O error occurred. + + + The SMTP command failed. + + + An SMTP protocol exception occurred. + + + + + Expand a mailing address alias. + + + Expands a mailing address alias. + + + + + The expanded list of mailbox addresses. + The mailing address alias. + The cancellation token. + + is null. + + + is an empty string. + + + The has been disposed. + + + The is not connected. + + + Authentication is required before expanding an alias. + + + The operation has been canceled. + + + An I/O error occurred. + + + The SMTP command failed. + + + An SMTP protocol exception occurred. + + + + + Verify the existence of a mailbox address. + + + Verifies the existence a mailbox address with the SMTP server, returning the expanded + mailbox address if it exists. + + + + + The expanded mailbox address. + The mailbox address. + The cancellation token. + + is null. + + + is an empty string. + + + The has been disposed. + + + The is not connected. + + + Authentication is required before verifying the existence of an address. + + + The operation has been canceled. + + + An I/O error occurred. + + + The SMTP command failed. + + + An SMTP protocol exception occurred. + + + + + Releases the unmanaged resources used by the and + optionally releases the managed resources. + + + Releases the unmanaged resources used by the and + optionally releases the managed resources. + + true to release both managed and unmanaged resources; + false to release only the unmanaged resources. + + + + An interface for an SMTP client. + + + Implemented by . + + + + + Get the capabilities supported by the SMTP server. + + + The capabilities will not be known until a successful connection has been made + and may change once the client is authenticated. + + + + + The capabilities. + + Capabilities cannot be enabled, they may only be disabled. + + + + + Get or set the local domain. + + + The local domain is used in the HELO or EHLO commands sent to + the SMTP server. If left unset, the local IP address will be + used instead. + + The local domain. + + + + Get the maximum message size supported by the server. + + + The maximum message size will not be known until a successful connection has + been made and may change once the client is authenticated. + This value is only relevant if the includes + the flag. + + + + + The maximum message size supported by the server. + + + + Get or set whether the client should use the REQUIRETLS extension if it is available. + + + Gets or sets whether the client should use the REQUIRETLS extension if it is available. + The REQUIRETLS extension (as defined in rfc8689) is a way to ensure that every SMTP server + that a message passes through on its way to the recipient is required to use a TLS connection in + order to transfer the message to the next SMTP server. + This feature is only available if contains the + flag when sending the message. + + true if the REQUIRETLS extension should be used; otherwise, false. + + + + Get or set how much of the message to include in any failed delivery status notifications. + + + Gets or sets how much of the message to include in any failed delivery status notifications. + + + + + A value indicating how much of the message to include in a failure delivery status notification. + + + + Expand a mailing address alias. + + + Expands a mailing address alias. + + The expanded list of mailbox addresses. + The mailing address alias. + The cancellation token. + + is null. + + + is an empty string. + + + The has been disposed. + + + The is not connected. + + + Authentication is required before verifying the existence of an address. + + + The operation has been canceled. + + + An I/O error occurred. + + + The SMTP command failed. + + + An SMTP protocol exception occurred. + + + + + Asynchronously expand a mailing address alias. + + + Expands a mailing address alias. + + The expanded list of mailbox addresses. + The mailing address alias. + The cancellation token. + + is null. + + + is an empty string. + + + The has been disposed. + + + The is not connected. + + + Authentication is required before verifying the existence of an address. + + + The operation has been canceled. + + + An I/O error occurred. + + + The SMTP command failed. + + + An SMTP protocol exception occurred. + + + + + Verify the existence of a mailbox address. + + + Verifies the existence a mailbox address with the SMTP server, returning the expanded + mailbox address if it exists. + + The expanded mailbox address. + The mailbox address. + The cancellation token. + + is null. + + + is an empty string. + + + The has been disposed. + + + The is not connected. + + + Authentication is required before verifying the existence of an address. + + + The operation has been canceled. + + + An I/O error occurred. + + + The SMTP command failed. + + + An SMTP protocol exception occurred. + + + + + Asynchronously verify the existence of a mailbox address. + + + Verifies the existence a mailbox address with the SMTP server, returning the expanded + mailbox address if it exists. + + The expanded mailbox address. + The mailbox address. + The cancellation token. + + is null. + + + is an empty string. + + + The has been disposed. + + + The is not connected. + + + Authentication is required before verifying the existence of an address. + + + The operation has been canceled. + + + An I/O error occurred. + + + The SMTP command failed. + + + An SMTP protocol exception occurred. + + + + + Capabilities supported by an SMTP server. + + + Capabilities are read as part of the response to the EHLO command that + is issued during the connection phase of the . + + + + + + + + The server does not support any additional extensions. + + + + + The server supports the SIZE extension + and may have a maximum message size limitation (see ). + + + + + The server supports the DSN extension, + allowing clients to specify which (if any) recipients they would like to receive delivery + notifications for. + + + + + The server supports the ENHANCEDSTATUSCODES + extension. + + + + + The server supports the AUTH extension, + allowing clients to authenticate via supported SASL mechanisms. + + + + + The server supports the 8BITMIME extension, + allowing clients to send messages using the "8bit" Content-Transfer-Encoding. + + + + + The server supports the PIPELINING extension, + allowing clients to send multiple commands at once in order to reduce round-trip latency. + + + + + The server supports the BINARYMIME extension. + + + + + The server supports the CHUNKING extension, + allowing clients to upload messages in chunks. + + + + + The server supports the STARTTLS extension, + allowing clients to switch to an encrypted SSL/TLS connection after connecting. + + + + + The server supports the SMTPUTF8 extension. + + + + + The server supports the REQUIRETLS extension. + + + + + An SMTP protocol exception. + + + The exception that is thrown when an SMTP command fails. Unlike a , + a does not require the to be reconnected. + + + + + + + + Initializes a new instance of the class. + + + Creates a new from the serialized data. + + The serialization info. + The streaming context. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The error code. + The status code. + The rejected mailbox. + The error message. + The inner exception. + + + + Initializes a new instance of the class. + + + Creates a new . + + The error code. + The status code. + The rejected mailbox. + The error message. + + + + Initializes a new instance of the class. + + + Creates a new . + + The error code. + The status code.> + The error message. + The inner exception. + + + + Initializes a new instance of the class. + + + Creates a new . + + The error code. + The status code.> + The error message. + + + + When overridden in a derived class, sets the + with information about the exception. + + + Serializes the state of the . + + The serialization info. + The streaming context. + + is null. + + + + + Get the error code which may provide additional information. + + + The error code can be used to programatically deal with the + exception without necessarily needing to display the raw + exception message to the user. + + + + + The status code. + + + + Get the mailbox that the error occurred on. + + + This property will only be available when the + value is either or + and may be used + to help the user decide how to proceed. + + + + + The mailbox. + + + + Get the status code returned by the SMTP server. + + + The raw SMTP status code that resulted in the + being thrown. + + + + + The status code. + + + + An SMTP filter designed to format a message stream for the DATA command. + + + A special stream filter that can encode or decode lines beginning with a '.' as + needed when sending/receiving a message via the SMTP protocol or when saving a + message to an IIS message pickup directory. + + + + + + + + + Initializes a new instance of the class. + + + Creates a new . + + true if the filter should decode the content; otherwise, false. + + + + + + + + Filter the specified input. + + + Filters the specified input buffer starting at the given index, + spanning across the specified number of bytes. + + The filtered output. + The input buffer. + The starting index of the input buffer. + The length of the input buffer, starting at . + The output index. + The output length. + If set to true, all internally buffered data should be flushed to the output buffer. + + + + Reset the filter. + + + Resets the filter. + + + + + An enumeration of the possible error codes that may be reported by a . + + + An enumeration of the possible error codes that may be reported by a . + + + + + + + + The message was not accepted for delivery. This may happen if + the server runs out of available disk space. + + + + + The sender's mailbox address was not accepted. Check the + property for the + mailbox used as the sender's mailbox address. + + + + + A recipient's mailbox address was not accepted. Check the + property for the + particular recipient mailbox that was not acccepted. + + + + + An unexpected status code was returned by the server. + For more details, the + property may provide some additional hints. + + + + + An SMTP protocol exception. + + + The exception that is thrown when there is an error communicating with an SMTP server. An + is typically fatal and requires the + to be reconnected. + + + + + + + + Initializes a new instance of the class. + + + Creates a new from the serialized data. + + The serialization info. + The streaming context. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The error message. + The inner exception. + + + + Initializes a new instance of the class. + + + Creates a new . + + The error message. + + + + Initializes a new instance of the class. + + + Creates a new . + + + + + An SMTP command response. + + + An SMTP command response. + + + + + Get the status code. + + + Gets the status code. + + The status code. + + + + Get the response text. + + + Gets the response text. + + The response text. + + + + Initializes a new instance of the class. + + + Creates a new . + + The status code. + The response text. + + + + An enumeration of possible SMTP status codes. + + + An enumeration of possible SMTP status codes. + + + + + The "system status" status code. + + + + + The "help" status code. + + + + + The "service ready" status code. + + + + + The "service closing transmission channel" status code. + + + + + The "authentication successful" status code. + + + + + The general purpose "OK" status code. + + + + + The "User not local; will forward" status code. + + + + + The "cannot verify user; will attempt delivery" status code. + + + + + The "authentication challenge" status code. + + + + + The "start mail input" status code. + + + + + The "service not available" status code. + + + + + The "password transition needed" status code. + + + + + The "mailbox busy" status code. + + + + + The "error in processing" status code. + + + + + The "insufficient storage" status code. + + + + + The "temporary authentication failure" status code. + + + + + The "command unrecognized" status code. + + + + + The "syntax error" status code. + + + + + The "command not implemented" status code. + + + + + The "bad command sequence" status code. + + + + + The "command parameter not implemented" status code. + + + + + The "authentication required" status code. + + + + + The "authentication mechanism too weak" status code. + + + + + The "authentication invalid credentials" status code. + + + + + The "encryption required for authentication mechanism" status code. + + + + + The "mailbox unavailable" status code. + + + + + The "user not local try alternate path" status code. + + + + + The "exceeded storage allocation" status code. + + + + + The "mailbox name not allowed" status code. + + + + + The "transaction failed" status code. + + + + + The "mail from/rcpt to parameters not recognized or not implemented" status code. + + + + + A stream for communicating with an SMTP server. + + + A stream capable of reading SMTP server responses. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The underlying network stream. + The protocol logger. + + + + Get or sets the underlying network stream. + + + Gets or sets the underlying network stream. + + The underlying network stream. + + + + Get whether or not the stream is connected. + + + Gets whether or not the stream is connected. + + true if the stream is connected; otherwise, false. + + + + Get whether the stream supports reading. + + + Gets whether the stream supports reading. + + true if the stream supports reading; otherwise, false. + + + + Get whether the stream supports writing. + + + Gets whether the stream supports writing. + + true if the stream supports writing; otherwise, false. + + + + Get whether the stream supports seeking. + + + Gets whether the stream supports seeking. + + true if the stream supports seeking; otherwise, false. + + + + Get whether the stream supports I/O timeouts. + + + Gets whether the stream supports I/O timeouts. + + true if the stream supports I/O timeouts; otherwise, false. + + + + Get or set a value, in milliseconds, that determines how long the stream will attempt to read before timing out. + + + Gets or sets a value, in milliseconds, that determines how long the stream will attempt to read before timing out. + + A value, in milliseconds, that determines how long the stream will attempt to read before timing out. + The read timeout. + + + + Get or set a value, in milliseconds, that determines how long the stream will attempt to write before timing out. + + + Gets or sets a value, in milliseconds, that determines how long the stream will attempt to write before timing out. + + A value, in milliseconds, that determines how long the stream will attempt to write before timing out. + The write timeout. + + + + Get or set the position within the current stream. + + + Gets or sets the position within the current stream. + + The current position within the stream. + The position of the stream. + + An I/O error occurred. + + + The stream does not support seeking. + + + The stream has been disposed. + + + + + Get the length of the stream, in bytes. + + + Gets the length of the stream, in bytes. + + A long value representing the length of the stream in bytes. + The length of the stream. + + The stream does not support seeking. + + + The stream has been disposed. + + + + + Reads a sequence of bytes from the stream and advances the position + within the stream by the number of bytes read. + + + Reads a sequence of bytes from the stream and advances the position + within the stream by the number of bytes read. + + The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many + bytes are not currently available, or zero (0) if the end of the stream has been reached. + The buffer. + The buffer offset. + The number of bytes to read. + The cancellation token. + + is null. + + + is less than zero or greater than the length of . + -or- + The is not large enough to contain bytes strting + at the specified . + + + The stream has been disposed. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + + + Reads a sequence of bytes from the stream and advances the position + within the stream by the number of bytes read. + + + Reads a sequence of bytes from the stream and advances the position + within the stream by the number of bytes read. + + The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many + bytes are not currently available, or zero (0) if the end of the stream has been reached. + The buffer. + The buffer offset. + The number of bytes to read. + + is null. + + + is less than zero or greater than the length of . + -or- + The is not large enough to contain bytes strting + at the specified . + + + The stream has been disposed. + + + An I/O error occurred. + + + + + Asynchronously reads a sequence of bytes from the stream and advances the position + within the stream by the number of bytes read. + + + Reads a sequence of bytes from the stream and advances the position + within the stream by the number of bytes read. + + The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many + bytes are not currently available, or zero (0) if the end of the stream has been reached. + The buffer. + The buffer offset. + The number of bytes to read. + The cancellation token. + + is null. + + + is less than zero or greater than the length of . + -or- + The is not large enough to contain bytes strting + at the specified . + + + The stream has been disposed. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + + + Read an SMTP server response. + + + Reads a full command response from the SMTP server. + + The response. + The cancellation token. + + The stream has been disposed. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + An SMTP protocol error occurred. + + + + + Asynchronously read an SMTP server response. + + + Reads a full command response from the SMTP server. + + The response. + The cancellation token. + + The stream has been disposed. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + An SMTP protocol error occurred. + + + + + Queue a command to the SMTP server. + + + Queues a command to the SMTP server. + + The command. + The cancellation token. + + The stream has been disposed. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + + + Asynchronously queue a command to the SMTP server. + + + Asynchronously queues a command to the SMTP server. + + The command. + The cancellation token. + + The stream has been disposed. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + + + Send a command to the SMTP server. + + + Sends a command to the SMTP server and reads the response. + + The response. + The command. + The cancellation token. + + The stream has been disposed. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + An SMTP protocol error occurred. + + + + + Asynchronously send a command to the SMTP server. + + + Asynchronously sends a command to the SMTP server and reads the response. + + The response. + The command. + The cancellation token. + + The stream has been disposed. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + An SMTP protocol error occurred. + + + + + Writes a sequence of bytes to the stream and advances the current + position within this stream by the number of bytes written. + + + Writes a sequence of bytes to the stream and advances the current + position within this stream by the number of bytes written. + + The buffer to write. + The offset of the first byte to write. + The number of bytes to write. + The cancellation token. + + is null. + + + is less than zero or greater than the length of . + -or- + The is not large enough to contain bytes strting + at the specified . + + + The stream has been disposed. + + + The stream does not support writing. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + + + Writes a sequence of bytes to the stream and advances the current + position within this stream by the number of bytes written. + + + Writes a sequence of bytes to the stream and advances the current + position within this stream by the number of bytes written. + + The buffer to write. + The offset of the first byte to write. + The number of bytes to write. + + is null. + + + is less than zero or greater than the length of . + -or- + The is not large enough to contain bytes strting + at the specified . + + + The stream has been disposed. + + + The stream does not support writing. + + + An I/O error occurred. + + + + + Asynchronously writes a sequence of bytes to the stream and advances the current + position within this stream by the number of bytes written. + + + Writes a sequence of bytes to the stream and advances the current + position within this stream by the number of bytes written. + + A task that represents the asynchronous write operation. + The buffer to write. + The offset of the first byte to write. + The number of bytes to write. + The cancellation token. + + is null. + + + is less than zero or greater than the length of . + -or- + The is not large enough to contain bytes strting + at the specified . + + + The stream has been disposed. + + + The stream does not support writing. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + + + Clears all buffers for this stream and causes any buffered data to be written + to the underlying device. + + + Clears all buffers for this stream and causes any buffered data to be written + to the underlying device. + + The cancellation token. + + The stream has been disposed. + + + The stream does not support writing. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + + + Clears all buffers for this stream and causes any buffered data to be written + to the underlying device. + + + Clears all buffers for this stream and causes any buffered data to be written + to the underlying device. + + + The stream has been disposed. + + + The stream does not support writing. + + + An I/O error occurred. + + + + + Asynchronously clears all buffers for this stream and causes any buffered data to be written + to the underlying device. + + + Clears all buffers for this stream and causes any buffered data to be written + to the underlying device. + + A task that represents the asynchronous flush operation. + The cancellation token. + + The stream has been disposed. + + + The stream does not support writing. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + + + Sets the position within the current stream. + + The new position within the stream. + The offset into the stream relative to the . + The origin to seek from. + + The stream does not support seeking. + + + + + Sets the length of the stream. + + The desired length of the stream in bytes. + + The stream does not support setting the length. + + + + + Releases the unmanaged resources used by the and + optionally releases the managed resources. + + + Releases the unmanaged resources used by the and + optionally releases the managed resources. + + true to release both managed and unmanaged resources; + false to release only the unmanaged resources. + + + + Delivery status notification type. + + + The delivery status notification type specifies whether or not + the full message should be included in any failed DSN issued for + a message transmission as opposed to just the headers. + + + + + + + + The return type is unspecified, allowing the server to choose. + + + + + The full message should be included in any failed delivery status notification issued by the server. + + + + + Only the headers should be included in any failed delivery status notification issued by the server. + + + + + An interface for resources that support acquiring channel-binding tokens. + + + An interface for resources that support acquiring channel-binding tokens. + + + + + Try to get a channel-binding token. + + + Tries to get the specified channel-binding. + + The kind of channel-binding desired. + The channel-binding token. + true if the channel-binding token was acquired; otherwise, false. + + + + Try to get a channel-binding token. + + + Tries to get the specified channel-binding. + + The kind of channel-binding desired. + The channel-binding token. + true if the channel-binding token was acquired; otherwise, false. + + + + An annotation-based search query. + + + An annotation-based search query. + + + + + Initializes a new instance of the class. + + + Creates a new annotation-based search query. + + The annotation entry. + The annotation attribute. + The annotation attribute value. + + is null. + -or- + is null. + + + is not a valid attribute for searching. + + + + + Get the annotation entry. + + + Gets the annotation entry. + + The annotation entry. + + + + Get the annotation attribute. + + + Gets the annotation attribute. + + The annotation attribute. + + + + Get the annotation attribute value. + + + Gets the annotation attribute value. + + The annotation attribute value. + + + + A binary search query such as an AND or OR expression. + + + A binary search query such as an AND or OR expression. + + + + + Initializes a new instance of the class. + + + Creates a new binary search query. + + THe search term. + The left expression. + The right expression. + + is null. + -or- + is null. + + + + + Gets the left operand of the expression. + + + Gets the left operand of the expression. + + The left operand. + + + + Gets the right operand of the expression. + + + Gets the right operand of the expression. + + The right operand. + + + + A date-based search query. + + + A date-based search query. + + + + + Initializes a new instance of the class. + + + Creates a new date-based search query. + + The search term. + The date. + + + + Gets the date value of the search query. + + + Gets the date value of the search query. + + The date. + + + + A filter-based search query. + + + A filter-based search query. + + + + + Initializes a new instance of the class. + + + A search query that references a predefined filter. + + The name of the filter. + + is null. + + + is empty. + + + + + Initializes a new instance of the class. + + + A search query that references a predefined filter. + + The metadata tag representing the filter. + + does not reference a valid filter. + + + + + Get the name of the filter. + + + Gets the name of the filter. + + The name of the filter. + + + + A header-based search query. + + + A header-based search query. + + + + + Initializes a new instance of the class. + + + Creates a new header search query. + + The header field name. + The value to match against. + + is null. + -or- + is null. + + + is empty. + + + + + Gets the header field name. + + + Gets the header field name. + + The header field. + + + + Gets the value to match against. + + + Gets the value to match against. + + The value. + + + + A numeric search query. + + + A numeric search query. + + + + + Initializes a new instance of the class. + + + Creates a new numeric search query. + + The search term. + The numeric value. + + + + Gets the numeric value to match against. + + + Gets the numeric value to match against. + + The numeric value. + + + + Specifies a sort order for search results. + + + You can combine multiple rules to specify the sort + order that + should return the results in. + + + + + Initializes a new instance of the class. + + + Creates a new instance. + + The field to sort by. + The sort order. + + cannot be . + + + + + Gets the field used for sorting. + + + Gets the field used for sorting. + + The field used for sorting. + + + + Gets the sort order. + + + Gets the sort order. + + The sort order. + + + + Sort results by arrival date in ascending order. + + + Sort results by arrival date in ascending order. + + + + + Sort results by arrival date in desending order. + + + Sort results by arrival date in desending order. + + + + + Sort results by the first email address in the Cc header in ascending order. + + + Sort results by the first email address in the Cc header in ascending order. + + + + + Sort results by the first email address in the Cc header in descending order. + + + Sort results by the first email address in the Cc header in descending order. + + + + + Sort results by the sent date in ascending order. + + + Sort results by the sent date in ascending order. + + + + + Sort results by the sent date in descending order. + + + Sort results by the sent date in descending order. + + + + + Sort results by the first email address in the From header in ascending order. + + + Sort results by the first email address in the From header in ascending order. + + + + + Sort results by the first email address in the From header in descending order. + + + Sort results by the first email address in the From header in descending order. + + + + + Sort results by the first display name in the From header in ascending order. + + + Sort results by the first display name in the From header in ascending order. + + + + + Sort results by the first display name in the From header in descending order. + + + Sort results by the first display name in the From header in descending order. + + + + + Sort results by the message size in ascending order. + + + Sort results by the message size in ascending order. + + + + + Sort results by the message size in descending order. + + + Sort results by the message size in descending order. + + + + + Sort results by the Subject header in ascending order. + + + Sort results by the Subject header in ascending order. + + + + + Sort results by the Subject header in descending order. + + + Sort results by the Subject header in descending order. + + + + + Sort results by the first email address in the To header in ascending order. + + + Sort results by the first email address in the To header in ascending order. + + + + + Sort results by the first email address in the To header in descending order. + + + Sort results by the first email address in the To header in descending order. + + + + + Sort results by the first display name in the To header in ascending order. + + + Sort results by the first display name in the To header in ascending order. + + + + + Sort results by the first display name in the To header in descending order. + + + Sort results by the first display name in the To header in descending order. + + + + + Specifies an annotation-based sort order for search results. + + + You can combine multiple rules to specify the sort + order that + should return the results in. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The annotation entry to sort by. + The annotation attribute to use for sorting. + The sort order. + + is null. + -or- + is null. + + + is not a valid attribute for sorting. + + + + + Get the annotation entry. + + + Gets the annotation entry. + + The annotation entry. + + + + Get the annotation attribute. + + + Gets the annotation attribute. + + The annotation attribute. + + + + The field to sort by. + + + The field to sort by. + + + + + Sort by an annotation value. + + + + + Sort by the arrival date. + + + + + Sort by the Cc header. + + + + + Sort by the Date header. + + + + + Sort by the Display Name of the From header. + + + + + Sort by the Display Name of the To header. + + + + + Sort by the From header. + + + + + Sort by the mod-sequence. + + + + + Sort by the message size. + + + + + Sort by the message subject. + + + + + Sort by the To header. + + + + + Advanced search options. + + + Advanced search options. + + + + + No options specified. + + + + + Returns all of the matching unique identifiers. + + + + + Returns the number of messages that match the search query. + + + + + Returns the minimum unique identifier of the messages that match the search query. + + + + + Returns the maximum unique identifier of the messages that match the search query. + + + + + Returns the relevancy scores of the messages that match the query. Can only be used + when using FUZZY search. + + + + + A specialized query for searching messages in a . + + + A specialized query for searching messages in a . + + + + + Initializes a new instance of the class. + + + Creates a new that matches all messages. + + + + + Initializes a new instance of the class. + + + Creates a new with the specified search term. + + The search term. + + + + Get the search term used by the search query. + + + Gets the search term used by the search query. + + The term. + + + + Match all messages in the folder. + + + Matches all messages in the folder. + + + + + Create a conditional AND operation. + + + A conditional AND operation only evaluates the second operand if the first operand evaluates to true. + + A representing the conditional AND operation. + The first operand. + The second operand. + + is null. + -or- + is null. + + + + + Create a conditional AND operation. + + + A conditional AND operation only evaluates the second operand if the first operand evaluates to true. + + A representing the conditional AND operation. + An additional query to execute. + + is null. + + + + + Match messages with the specified annotation. + + + Matches messages with the specified annotation. + This feature is not supported by all IMAP servers. + + The annotation entry. + The annotation attribute. + The annotation attribute value. + A . + + is null. + -or- + is null. + + + is not a valid attribute for searching. + + + + + Match messages with the flag set. + + + Matches messages with the flag set. + + + + + Match messages where the Bcc header contains the specified text. + + + Matches messages where the Bcc header contains the specified text. + + A . + The text to match against. + + is null. + + + is empty. + + + + + Match messages where the message body contains the specified text. + + + Matches messages where the message body contains the specified text. + + A . + The text to match against. + + is null. + + + is empty. + + + + + Match messages where the Cc header contains the specified text. + + + Matches messages where the Cc header contains the specified text. + + A . + The text to match against. + + is null. + + + is empty. + + + + + Match messages that have mod-sequence values greater than or equal to the specified mod-sequence value. + + + Matches messages that have mod-sequence values greater than or equal to the specified mod-sequence value. + + A . + The mod-sequence value. + + + + Match messages with the flag set. + + + Matches messages with the flag set. + + + + + Match messages that were delivered after the specified date. + + + Matches messages that were delivered after the specified date. + The resolution of this search query does not include the time. + + A . + The date. + + + + Match messages that were delivered before the specified date. + + + Matches messages that were delivered before the specified date. + The resolution of this search query does not include the time. + + A . + The date. + + + + Match messages that were delivered on the specified date. + + + Matches messages that were delivered on the specified date. + The resolution of this search query does not include the time. + + A . + The date. + + + + Match messages with the flag set. + + + Matches messages with the flag set. + + + + + Match messages using a saved search filter. + + + Matches messages using a saved search filter. + + A . + The name of the saved search. + + + + Match messages using a saved search filter. + + + Matches messages using a saved search filter. + + A . + The name of the saved search. + + + + Match messages with the flag set. + + + Matches messages with the flag set. + + + + + Match messages where the From header contains the specified text. + + + Matches messages where the From header contains the specified text. + + A . + The text to match against. + + is null. + + + is empty. + + + + + Apply a fuzzy matching algorithm to the specified expression. + + + Applies a fuzzy matching algorithm to the specified expression. + This feature is not supported by all IMAP servers. + + A . + The expression + + is null. + + + + + Match messages that have the specified flags set. + + + Matches messages that have the specified flags set. + + A . + The message flags. + + does not specify any valid message flags. + + + + + Match messages that do not have any of the specified flags set. + + + Matches messages that do not have any of the specified flags set. + + A . + The message flags. + + does not specify any valid message flags. + + + + + Match messages that have the specified keyword set. + + + Matches messages that have the specified keyword set. + A keyword is a user-defined message flag. + + A . + The keyword. + + is null. + + + is empty. + + + + + Match messages that have all of the specified keywords set. + + + Matches messages that have all of the specified keywords set. + A keyword is a user-defined message flag. + + A . + The keywords. + + is null. + + + One or more of the is null or empty. + -or- + No keywords were given. + + + + + Match messages that do not have the specified keyword set. + + + Matches messages that do not have the specified keyword set. + A keyword is a user-defined message flag. + + A . + The keyword. + + is null. + + + is empty. + + + + + Match messages that do not have any of the specified keywords set. + + + Matches messages that do not have any of the specified keywords set. + A keyword is a user-defined message flag. + + A . + The keywords. + + is null. + + + One or more of the is null or empty. + -or- + No keywords were given. + + + + + Match messages where the specified header contains the specified text. + + + Matches messages where the specified header contains the specified text. + + A . + The header field to match against. + The text to match against. + + is null. + -or- + is null. + + + is empty. + + + + + Match messages that are larger than the specified number of octets. + + + Matches messages that are larger than the specified number of octets. + + A . + The number of octets. + + is a negative value. + + + + + Match messages where the raw message contains the specified text. + + + Matches messages where the raw message contains the specified text. + + A . + The text to match against. + + is null. + + + is empty. + + + + + Match messages with the flag set but not the . + + + Matches messages with the flag set but not the . + + + + + Create a logical negation of the specified expression. + + + Creates a logical negation of the specified expression. + + A . + The expression + + is null. + + + + + Match messages that do not have the flag set. + + + Matches messages that do not have the flag set. + + + + + Match messages that do not have the flag set. + + + Matches messages that do not have the flag set. + + + + + Match messages that do not have the flag set. + + + Matches messages that do not have the flag set. + + + + + Match messages that do not have the flag set. + + + Matches messages that do not have the flag set. + + + + + Match messages that do not have the flag set. + + + Matches messages that do not have the flag set. + + + + + Match messages that do not have the flag set. + + + Matches messages that do not have the flag set. + + + + + Match messages that do not have the flag set. + + + Matches messages that do not have the flag set. + + + + + Match messages older than the specified number of seconds. + + + Matches messages older than the specified number of seconds. + + A . + The number of seconds. + + The number of seconds cannot be less than 1. + + + + + Create a conditional OR operation. + + + A conditional OR operation only evaluates the second operand if the first operand evaluates to false. + + A representing the conditional OR operation. + The first operand. + The second operand. + + is null. + -or- + is null. + + + + + Create a conditional OR operation. + + + A conditional OR operation only evaluates the second operand if the first operand evaluates to true. + + A representing the conditional AND operation. + An additional query to execute. + + is null. + + + + + Match messages with the flag set. + + + Matches messages with the flag set. + + + + + Match all messages in the mailbox when the underlying storage of that mailbox supports + the save date attribute. + + + Matches all messages in the mailbox when the underlying storage of that mailbox supports + the save date attribute. Conversely, it matches no messages in the mailbox when the save + date attribute is not supported. + + + + + Match messages that were saved to the mailbox before the specified date. + + + Matches messages that were saved to the mailbox before the specified date. + The resolution of this search query does not include the time. + + A . + The date. + + + + Match messages that were saved to the mailbox on the specified date. + + + Matches messages that were saved to the mailbox on the specified date. + The resolution of this search query does not include the time. + + A . + The date. + + + + Match messages that were saved to the mailbox since the specified date. + + + Matches messages that were saved to the mailbox since the specified date. + The resolution of this search query does not include the time. + + A . + The date. + + + + Match messages with the flag set. + + + Matches messages with the flag set. + + + + + Match messages that were sent before the specified date. + + + Matches messages that were sent before the specified date. + The resolution of this search query does not include the time. + + A . + The date. + + + + Match messages that were sent on the specified date. + + + Matches messages that were sent on the specified date. + The resolution of this search query does not include the time. + + A . + The date. + + + + Match messages that were sent since the specified date. + + + Matches messages that were sent since the specified date. + The resolution of this search query does not include the time. + + A . + The date. + + + + Match messages that are smaller than the specified number of octets. + + + Matches messages that are smaller than the specified number of octets. + + A . + The number of octets. + + is a negative value. + + + + + Match messages where the Subject header contains the specified text. + + + Matches messages where the Subject header contains the specified text. + + A . + The text to match against. + + is null. + + + is empty. + + + + + Match messages where the To header contains the specified text. + + + Matches messages where the To header contains the specified text. + + A . + The text to match against. + + is null. + + + is empty. + + + + + Limit the search query to messages with the specified unique identifiers. + + + Limits the search query to messages with the specified unique identifiers. + + A . + The unique identifiers. + + is null. + + + is empty. + + + + + Match messages younger than the specified number of seconds. + + + Matches messages younger than the specified number of seconds. + + A . + The number of seconds. + + The number of seconds cannot be less than 1. + + + + + Match messages that have the specified GMail message identifier. + + + This search term can only be used with GMail. + + A . + The GMail message identifier. + + + + Match messages belonging to the specified GMail thread. + + + This search term can only be used with GMail. + + A . + The GMail thread. + + + + Match messages that have the specified GMail label. + + + This search term can only be used with GMail. + + A . + The GMail label. + + is null. + + + is empty. + + + + + Match messages using the GMail search expression. + + + This search term can only be used with GMail. + + A . + The raw GMail search text. + + is null. + + + is empty. + + + + + The results of a search. + + + The results of a search. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The UID validity value. + The sort-order to use for the unique identifiers. + + + + Initializes a new instance of the class. + + + Creates a new . + + The sort-order to use for the unique identifiers. + + + + Get or set the unique identifiers of the messages that matched the search query. + + + Gets or sets the unique identifiers of the messages that matched the search query. + + The unique identifiers. + + + + Get or set the number of messages that matched the search query. + + + Gets or sets the number of messages that matched the search query. + + The count. + + + + Get or set the minimum unique identifier that matched the search query. + + + Gets or sets the minimum unique identifier that matched the search query. + + The minimum unique identifier. + + + + Get or set the maximum unique identifier that matched the search query. + + + Gets or sets the maximum unique identifier that matched the search query. + + The maximum unique identifier. + + + + Gets or sets the mod-sequence identifier of the messages that matched the search query. + + + Gets or sets the mod-sequence identifier of the messages that matched the search query. + + The mod-sequence identifier. + + + + Gets or sets the relevancy scores of the messages that matched the search query. + + + Gets or sets the relevancy scores of the messages that matched the search query. + + The relevancy scores. + + + + A search term. + + + The search term as used by . + + + + + A search term that matches all messages. + + + + + A search term that logically combines 2 or more other + search expressions such that messages must match both + expressions. + + + + + A search term that matches messages that have the specified annotation. + + + + + A search term that matches answered messages. + + + + + A search term that matches messages that contain a specified + string within the Bcc header. + + + + + A search term that matches messages that contain a specified + string within the body of the message. + + + + + A search term that matches messages that contain a specified + string within the Cc header. + + + + + A search term that matches deleted messages. + + + + + A search term that matches messages delivered after a specified date. + + + + + A search term that matches messages delivered before a specified date. + + + + + A search term that matches messages delivered on a specified date. + + + + + A search term that matches draft messages. + + + + + A search term that makes use of a predefined filter. + + + + + A search term that matches flagged messages. + + + + + A search term that matches messages that contain a specified + string within the From header. + + + + + A search term that modifies another search expression to allow + fuzzy matching. + + + + + A search term that matches messages that contain a specified + string within a particular header. + + + + + A search term that matches messages that contain a specified + keyword. + + + + + A search term that matches messages that are larger than a + specified number of bytes. + + + + + A search term that matches messages that contain a specified + string anywhere within the message. + + + + + A search term that matches messages that have the specified + modification sequence value. + + + + + A search term that matches new messages. + + + + + A search term that modifies another search expression such that + messages must match the logical inverse of the expression. + + + + + A search term that matches messages that have not been answered. + + + + + A search term that matches messages that have not been deleted. + + + + + A search term that matches messages that are not drafts. + + + + + A search term that matches messages that have not been flagged. + + + + + A search term that matches messages that do not contain a specified + keyword. + + + + + A search term that matches messages that are not recent. + + + + + A search term that matches messages that have not been seen. + + + + + A search term that matches messages that are older than a specified date. + + + + + A search term that logically combines 2 or more other + search expressions such that messages only need to match + one of the expressions. + + + + + A search term that matches messages that are recent. + + + + + A search term that matches all messages in the mailbox when the underlying storage of + that mailbox supports the save date attribute. Conversely, it matches no messages in + the mailbox when the save date attribute is not supported. + + + + + A search term that matches messages that were saved to the mailbox before a specified date. + + + + + A search term that matches messages that were saved to the mailbox on a specified date. + + + + + A search term that matches messages that were saved to the mailbox since a specified date. + + + + + A search term that matches messages that have been seen. + + + + + A search term that matches messages that were sent before a specified date. + + + + + A search term that matches messages that were sent on a specified date. + + + + + A search term that matches messages that were sent since a specified date. + + + + + A search term that matches messages that are smaller than a + specified number of bytes. + + + + + A search term that matches messages that contain a specified + string within the Subject header. + + + + + A search term that matches messages that contain a specified + string within the To header. + + + + + A search term that matches messages included within a specified + set of unique identifiers. + + + + + A search term that matches messages that are younger than a specified date. + + + + + A search term that matches messages with a specified GMail message identifier. + + + + + A search term that matches messages with a specified GMail thread (conversation) + identifier. + + + + + A search term that matches messages with the specified GMail labels. + + + + + A search term that uses the GMail search syntax. + + + + + An enumeration of sort orders. + + + An enumeration of sort orders. + + + + + No sorting order. + + + + + Sort in ascending order. + + + + + Sort in descending order. + + + + + A text-based search query. + + + A text-based search query. + + + + + Initializes a new instance of the class. + + + Creates a new text-based search query. + + The search term. + The text to match against. + + is null. + + + is empty. + + + + + Gets the text to match against. + + + Gets the text to match against. + + The text. + + + + A unique identifier-based search query. + + + A unique identifier-based search query. + + + + + Initializes a new instance of the class. + + + Creates a new unique identifier-based search query. + + The unique identifiers to match against. + + is null. + + + is empty. + + + + + Initializes a new instance of the class. + + + Creates a new unique identifier-based search query. + + The unique identifier to match against. + + is an invalid unique identifier. + + + + + Gets the unique identifiers to match against. + + + Gets the unique identifiers to match against. + + The unique identifiers. + + + + A unary search query such as a NOT expression. + + + A unary search query such as a NOT expression. + + + + + Initializes a new instance of the class. + + + Creates a new unary search query. + + The search term. + The operand. + + is null. + + + + + Gets the inner operand. + + + Gets the inner operand. + + The operand. + + + + An abstract NTLM attribute and value pair. + + + An abstract NTLM attribute and value pair. + + + + + Initializes a new instance of the class. + + + Creates a new NTLM attribute and value pair. + + The NTLM attribute. + + + + Get the NTLM attribute that this pair represents. + + + Gets the NTLM attribute that this pair represents. + + The NTLM attribute. + + + + Get the number of bytes needed for encoding the attribute value. + + + Gets the number of bytes needed for encoding the attribute value. + + The text encoding. + The number of bytes needed to encode the value. + + + + Encode the attribute value to the specified buffer. + + + Encodes the attribute value to the specified buffer. + + The text encoding. + The output buffer. + The index into the buffer to start appending the encoded attribute. + + + + An NTLM attribute and value pair consisting of a string value. + + + An NTLM attribute and value pair consisting of a string value. + + + + + Initializes a new instance of the class. + + + Creates a new NTLM attribute and value pair consisting of a string value. + + The NTLM attribute. + The NTLM attribute value. + + + + Get or set the value of the attribute. + + + Gets or sets the value of the attribute. + + The attribute value. + + + + Get the number of bytes needed for encoding the attribute value. + + + Gets the number of bytes needed for encoding the attribute value. + + The text encoding. + The number of bytes needed to encode the value. + + + + Encode the attribute value to the specified buffer. + + + Encodes the attribute value to the specified buffer. + + The text encoding. + The output buffer. + The index into the buffer to start appending the encoded attribute. + + + + An NTLM attribute and value pair consisting of a flags value. + + + An NTLM attribute and value pair consisting of a flags value. + + + + + Initializes a new instance of the class. + + + Creates a new NTLM attribute and value pair consisting of a flags value. + + The NTLM attribute. + The NTLM attribute value. + The size of the encoded flags value. + + + + Initializes a new instance of the class. + + + Creates a new NTLM attribute and value pair consisting of a flags value. + + The NTLM attribute. + The NTLM attribute value. + + + + Get or set the size of the encoded flags value. + + + Gets or sets the size of the encoded flags value. + + + + + Get or set the value of the attribute. + + + Gets or sets the value of the attribute. + + The attribute value. + + + + Get the number of bytes needed for encoding the attribute value. + + + Gets the number of bytes needed for encoding the attribute value. + + The text encoding. + The number of bytes needed to encode the value. + + + + Encode the attribute value to the specified buffer. + + + Encodes the attribute value to the specified buffer. + + The text encoding. + The output buffer. + The index into the buffer to start appending the encoded attribute. + + + + An NTLM attribute and value pair consisting of a timestamp value. + + + An NTLM attribute and value pair consisting of a timestamp value. + + + + + Initializes a new instance of the class. + + + Creates a new NTLM attribute and value pair consisting of a timestamp value. + + The NTLM attribute. + The NTLM attribute value. + The size of the encoded flags value. + + + + Initializes a new instance of the class. + + + Creates a new NTLM attribute and value pair consisting of a timestamp value. + + The NTLM attribute. + The NTLM attribute value. + + + + Get or set the size of the encoded timestamp value. + + + Gets or sets the size of the encoded timestamp value. + + + + + Get or set the value of the attribute. + + + Gets or sets the value of the attribute. + + The attribute value. + + + + Get the number of bytes needed for encoding the attribute value. + + + Gets the number of bytes needed for encoding the attribute value. + + The text encoding. + The number of bytes needed to encode the value. + + + + Encode the attribute value to the specified buffer. + + + Encodes the attribute value to the specified buffer. + + The text encoding. + The output buffer. + The index into the buffer to start appending the encoded attribute. + + + + An NTLM attribute and value pair consisting of a byte array value. + + + An NTLM attribute and value pair consisting of a byte array value. + + + + + Initializes a new instance of the class. + + + Creates a new NTLM attribute and value pair consisting of a byte array value. + + The NTLM attribute. + The NTLM attribute value. + + + + Get or set the value of the attribute. + + + Gets or sets the value of the attribute. + + The attribute value. + + + + Get the number of bytes needed for encoding the attribute value. + + + Gets the number of bytes needed for encoding the attribute value. + + The text encoding. + The number of bytes needed to encode the value. + + + + Encode the attribute value to the specified buffer. + + + Encodes the attribute value to the specified buffer. + + The text encoding. + The output buffer. + The index into the buffer to start appending the encoded attribute. + + + + This is only used for unit testing purposes. + + + + + This is only used for unit testing purposes. + + + + + The NTLM message header flags. + + + More details here: http://davenport.sourceforge.net/ntlm.html#theNtlmMessageHeaderLayout + and at https://msdn.microsoft.com/en-us/library/cc236650.aspx + + + + + Indicates that Unicode strings are supported for use in security buffer data. + + + + + Indicates that OEM strings are supported for use in security buffer data. + + + + + Requests that the server's authentication realm be included in the Type 2 message. + + + + + This flag's usage has not been identified. + + + + + Specifies that authenticated communication between the client and server should carry a digital signature (message integrity). + + + + + Specifies that authenticated communication between the client and server should be encrypted (message confidentiality). + + + + + Indicates that datagram authentication is being used. + + + + + Indicates that the Lan Manager Session Key should be used for signing + and sealing authenticated communications. + + + + + This flag is unused and MUST be zero. (r8) + + + + + Indicates that NTLM authentication is being used. + + + + + This flag is unused and MUST be zero. (r8) + + + + + Sent by the client in the Type 3 message to indicate that an anonymous + context has been established. This also affects the response fields. + + + + + Sent by the client in the Type 1 message to indicate that the name of the + domain in which the client workstation has membership is included in the + message. This is used by the server to determine whether the client is + eligible for local authentication. + + + + + Sent by the client in the Type 1 message to indicate that the client + workstation's name is included in the message. This is used by the server + to determine whether the client is eligible for local authentication. + + + + + Sent by the server to indicate that the server and client are on the same + machine. Implies that the client may use the established local credentials + for authentication instead of calculating a response to the challenge. + + + + + Indicates that authenticated communication between the client and server + should be signed with a "dummy" signature. + + + + + Sent by the server in the Type 2 message to indicate that the target + authentication realm is a domain. + + + + + Sent by the server in the Type 2 message to indicate that the target + authentication realm is a server. + + + + + Sent by the server in the Type 2 message to indicate that the target + authentication realm is a share. Presumably, this is for share-level + authentication. Usage is unclear. + + + + + If set, requests usage of the NTLM v2 session security. NTLM v2 session + security is a misnomer because it is not NTLM v2. It is NTLM v1 using the + extended session security that is also in NTLM v2. NTLMSSP_NEGOTIATE_LM_KEY + and NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY are mutually exclusive. If + both NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY and NTLMSSP_NEGOTIATE_LM_KEY + are requested, NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY alone MUST be + returned to the client. NTLM v2 authentication session key generation MUST + be supported by both the client and the DC in order to be used, and extended + session security signing and sealing requires support from the client and + the server in order to be used. + + + + + This flag's usage has not been identified. + + + + + This flag is unused and MUST be zero. (r5) + + + + + Indicates that the LMOWF function should be used to generate a session key. + + + + + Sent by the server in the Type 2 message to indicate that it is including + a Target Information block in the message. The Target Information block + is used in the calculation of the NTLMv2 response. + + + + + This flag is unused and MUST be zero. (r4) + + + + + Indicates that the version field is present. + + + + + This flag is unused and MUST be zero. (r3) + + + + + This flag is unused and MUST be zero. (r2) + + + + + This flag is unused and MUST be zero. (r1) + + + + + Indicates that 128-bit encryption is supported. + + + + + Indicates that the client will provide an encrypted master key in the + "Session Key" field of the Type 3 message. + + + + + Indicates that 56-bit encryption is supported. + + + + + An NTLM SingleHostData structure. + + + An NTLM SingleHostData structure. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The raw target info buffer to decode. + The starting index of the single host data structure. + The length of the single host data structure. + + + + Initializes a new instance of the class. + + + Creates a new . + + The 8-byte platform-specific blob. + The 256-bit randomly generated machine id. + + is null. + -or- + is null. + + + is not 8 bytes. + -or- + is not 32 bytes. + + + + + Get or set an 8-byte platform-specific blob. + + + Gets or sets an 8-byte platform-specific blob. + + + + + Get the 256-bit randomly generated machine ID. + + + Gets the 256-bit randomly generated machine ID. + + The 256-bit randomly generated machine ID. + + + + Get the size of the SingleHostData structure. + + + Gets the size of the SingleHostData structure. + + The size of the SingleHostData structure. + + + + Encode the SingleHostData structure. + + + Encodes the SingleHostData structure. + + The encoded SingleHostData structure. + + + + An NTLM TargetInfo structure. + + + An NTLM TargetInfo structure. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The raw target info buffer to decode. + The starting index of the target info structure. + The length of the target info structure. + true if the target info strings are unicode; otherwise, false. + + + + Initializes a new instance of the class. + + + Creates a new . + + + + + Copy the attribute value pairs to another TargetInfo. + + + Copies the attribute value pairs to another TargetInfo. + + + + + Get or set the server's NetBIOS computer name. + + + Gets or sets the server's NetBIOS computer name. + + The server's NetBIOS computer name if available; otherwise, null. + + + + Get or set the server's NetBIOS domain name. + + + Gets or sets the server's NetBIOS domain name. + + The server's NetBIOS domain name if available; otherwise, null. + + + + Get or set the fully qualified domain name (FQDN) of the server. + + + Gets or sets the fully qualified domain name (FQDN) of the server. + + The fully qualified domain name (FQDN) of the server if available; otherwise, null. + + + + Get or set the fully qualified domain name (FQDN) of the domain. + + + Gets or sets the fully qualified domain name (FQDN) of the domain. + + The fully qualified domain name (FQDN) of the domain if available; otherwise, null. + + + + Get or set the fully qualified domain name (FQDN) of the forest. + + + Gets or sets the fully qualified domain name (FQDN) of the forest. + + The fully qualified domain name (FQDN) of the forest if available; otherwise, null. + + + + Get or set a 32-bit value indicating server or client configuration. + + + Gets or sets a 32-bit value indicating server or client configuration. + 0x00000001: Indicates to the client that the account authentication is constrained. + 0x00000002: Indicates that the client is providing message integrity in the MIC field (section 2.2.1.3) in the AUTHENTICATE_MESSAGE. + 0x00000004: Indicates that the client is providing a target SPN generated from an untrusted source. + + The 32-bit flags value if available; otherwise, null. + + + + Get or set a timestamp that contains the server local time. + + + Gets or sets a timestamp that contains the server local time. + A FILETIME structure ([MS-DTYP] section 2.3.3) in little-endian byte order that contains + the server local time. This structure is always sent in the CHALLENGE_MESSAGE. + + The local time of the server, if available; otherwise null. + + + + Get or set the single host data structure. + + + Gets or sets the single host data structure. + The Value field contains a platform-specific blob, as well as a MachineID created at computer startup to identify the calling machine. + + The single host data structure, if available; otherwise, null. + + + + Get or set the Service Principal Name (SPN) of the server. + + + Gets or sets the Service Principal Name (SPN) of the server. + + The Service Principal Name (SPN) of the server, if available; otherwise, null. + + + + Get or set the channel binding hash. + + + Gets or sets the channel binding hash. + + An MD5 hash of the channel binding data, if available; otherwise null. + + + + Encode the TargetInfo structure. + + + Encodes the TargetInfo structure. + + true if the strings should be encoded in Unicode; otherwise, false. + The encoded TargetInfo. + + + + The exception that is thrown when there is an authentication error. + + + The exception that is thrown when there is an authentication error. + + + + + Initializes a new instance of the class. + + + Creates a new from the seriaized data. + + The serialization info. + The streaming context. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The error message. + An inner exception. + + + + Initializes a new instance of the class. + + + Creates a new . + + The error message. + + + + Initializes a new instance of the class. + + + Creates a new . + + + + + An enumeration of the possible error codes that may be reported by a . + + + An enumeration of the possible error codes that may be reported by a . + + + + + The server's challenge was too long. + + + + + The server's response contained an incomplete challenge. + + + + + The server's challenge was invalid. + + + + + The server's response did not contain a challenge. + + + + + The server's challenge contained an incorrect hash. + + + + + A SASL authentication exception. + + + Typically indicates an error while parsing a server's challenge token. + + + + + Initializes a new instance of the class. + + + Deserializes a . + + The serialization info. + The streaming context. + + + + Initializes a new instance of the class. + + + Creates a new . + + The SASL mechanism. + The error code. + The error message. + + is null. + + + + + When overridden in a derived class, sets the + with information about the exception. + + + Serializes the state of the . + + The serialization info. + The streaming context. + + is null. + + + + + Gets the error code. + + + Gets the error code. + + The error code. + + + + Gets the name of the SASL mechanism that had the error. + + + Gets the name of the SASL mechanism that had the error. + + The name of the SASL mechanism. + + + + A SASL authentication mechanism. + + + Authenticating via a SASL mechanism may be a multi-step process. + To determine if the mechanism has completed the necessary steps + to authentication, check the after + each call to . + + + + + The supported authentication mechanisms in order of strongest to weakest. + + + Used by the various clients when authenticating via SASL to determine + which order the SASL mechanisms supported by the server should be tried. + + + + + Rank authentication mechanisms in order of security. + + + Ranks authentication mechanisms in order of security. + + The authentication mechanisms supported by the server. + The supported authentication mechanisms in ranked order. + + + + Initializes a new instance of the class. + + + Creates a new SASL context. + + The user's credentials. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new SASL context. + + The user name. + The password. + + is null. + -or- + is null. + + + + + Get the name of the SASL mechanism. + + + Gets the name of the SASL mechanism. + + The name of the mechanism. + + + + Get the user's credentials. + + + Gets the user's credentials. + + The user's credentials. + + + + Get whether or not the SASL mechanism supports channel binding. + + + Gets whether or not the SASL mechanism supports channel binding. + + true if the SASL mechanism supports channel binding; otherwise, false. + + + + Get whether or not the SASL mechanism supports an initial response (SASL-IR). + + + Gets whether or not the SASL mechanism supports an initial response (SASL-IR). + SASL mechanisms that support sending an initial client response to the server + should return true. + + true if the SASL mechanism supports an initial response; otherwise, false. + + + + Get or set whether the SASL mechanism has finished authenticating. + + + Gets or sets whether the SASL mechanism has finished authenticating. + + true if the SASL mechanism has finished authenticating; otherwise, false. + + + + Get whether or not channel-binding was negotiated by the SASL mechanism. + + + Gets whether or not channel-binding has been negotiated by the SASL mechanism. + Some SASL mechanisms, such as SCRAM-SHA1-PLUS and NTLM, are able to negotiate + channel-bindings. + + true if channel-binding was negotiated; otherwise, false. + + + + Get whether or not a security layer was negotiated by the SASL mechanism. + + + Gets whether or not a security layer has been negotiated by the SASL mechanism. + Some SASL mechanisms, such as GSSAPI, are able to negotiate security layers + such as integrity and confidentiality protection. + + true if a security layer was negotiated; otherwise, false. + + + + Get or set the channel-binding context. + + + Gets or sets the channel-binding context. + + The channel-binding context. + + + + Get or set the URI of the service. + + + Gets or sets the URI of the service. + + The URI of the service. + + + + Try to get a channel-binding token. + + + Tries to get the specified channel-binding. + + The kind of channel-binding desired. + A buffer containing the channel-binding token. + true if the channel-binding token was acquired; otherwise, false. + + + + Parse the server's challenge token and return the next challenge response. + + + Parses the server's challenge token and returns the next challenge response. + + The next challenge response. + The server's challenge token. + The index into the token specifying where the server's challenge begins. + The length of the server's challenge. + The cancellation token. + + The SASL mechanism does not support SASL-IR. + + + The operation was canceled via the cancellation token. + + + An error has occurred while parsing the server's challenge token. + + + + + Decode the base64-encoded server challenge and return the next challenge response encoded in base64. + + + Decodes the base64-encoded server challenge and returns the next challenge response encoded in base64. + + The next base64-encoded challenge response. + The server's base64-encoded challenge token. + The cancellation token. + + The SASL mechanism does not support SASL-IR. + + + The operation was canceled via the cancellation token. + + + An error has occurred while parsing the server's challenge token. + + + + + Asynchronously parse the server's challenge token and return the next challenge response. + + + Asynchronously parses the server's challenge token and returns the next challenge response. + + The next challenge response. + The server's challenge token. + The index into the token specifying where the server's challenge begins. + The length of the server's challenge. + The cancellation token. + + The SASL mechanism does not support SASL-IR. + + + The operation was canceled via the cancellation token. + + + An error has occurred while parsing the server's challenge token. + + + + + Asynchronously decode the base64-encoded server challenge and return the next challenge response encoded in base64. + + + Asynchronously decodes the base64-encoded server challenge and returns the next challenge response encoded in base64. + + The next base64-encoded challenge response. + The server's base64-encoded challenge token. + The cancellation token. + + The SASL mechanism does not support SASL-IR. + + + The operation was canceled via the cancellation token. + + + An error has occurred while parsing the server's challenge token. + + + + + Reset the state of the SASL mechanism. + + + Resets the state of the SASL mechanism. + + + + + Determine if the specified SASL mechanism is supported by MailKit. + + + Use this method to make sure that a SASL mechanism is supported before calling + . + + true if the specified SASL mechanism is supported; otherwise, false. + The name of the SASL mechanism. + + is null. + + + + + Create an instance of the specified SASL mechanism using the supplied credentials. + + + If unsure that a particular SASL mechanism is supported, you should first call + . + + An instance of the requested SASL mechanism if supported; otherwise null. + The name of the SASL mechanism. + The text encoding to use for the credentials. + The user's credentials. + + is null. + -or- + is null. + -or- + is null. + + + + + Create an instance of the specified SASL mechanism using the supplied credentials. + + + If unsure that a particular SASL mechanism is supported, you should first call + . + + An instance of the requested SASL mechanism if supported; otherwise null. + The name of the SASL mechanism. + The user's credentials. + + is null. + -or- + is null. + + + + + Determine if the character is a non-ASCII space. + + + This list was obtained from http://tools.ietf.org/html/rfc3454#appendix-C.1.2 + + true if the character is a non-ASCII space; otherwise, false. + The character. + + + + Determine if the character is commonly mapped to nothing. + + + This list was obtained from http://tools.ietf.org/html/rfc3454#appendix-B.1 + + true if the character is commonly mapped to nothing; otherwise, false. + The character. + + + + Determine if the character is prohibited. + + + This list was obtained from http://tools.ietf.org/html/rfc3454#appendix-C.3 + + true if the character is prohibited; otherwise, false. + The string. + The character index. + + + + Prepare the user name or password string. + + + Prepares a user name or password string according to the rules of rfc4013. + + The prepared string. + The string to prepare. + + is null. + + + contains prohibited characters. + + + + + The ANONYMOUS SASL mechanism. + + + The ANONYMOUS SASL mechanism provides a way to authenticate with servers + that allow anonymous access. + + + + + Initializes a new instance of the class. + + + Creates a new ANONYMOUS SASL context. + + The encoding to use for the user's credentials. + The user's credentials. + + is null. + -or- + is null. + + + + + Initializes a new instance of the class. + + + Creates a new ANONYMOUS SASL context. + + The encoding to use for the user's credentials. + The user name. + + is null. + -or- + is null. + + + + + Initializes a new instance of the class. + + + Creates a new ANONYMOUS SASL context. + + The user's credentials. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new ANONYMOUS SASL context. + + The user name. + + is null. + + + + + Get the name of the SASL mechanism. + + + Gets the name of the SASL mechanism. + + The name of the SASL mechanism. + + + + Get whether or not the mechanism supports an initial response (SASL-IR). + + + Gets whether or not the mechanism supports an initial response (SASL-IR). + SASL mechanisms that support sending an initial client response to the server + should return true. + + true if the mechanism supports an initial response; otherwise, false. + + + + Parse the server's challenge token and return the next challenge response. + + + Parses the server's challenge token and returns the next challenge response. + + The next challenge response. + The server's challenge token. + The index into the token specifying where the server's challenge begins. + The length of the server's challenge. + The cancellation token. + + The SASL mechanism does not support SASL-IR. + + + The operation was canceled via the cancellation token. + + + An error has occurred while parsing the server's challenge token. + + + + + The CRAM-MD5 SASL mechanism. + + + A SASL mechanism based on HMAC-MD5. + + + + + Initializes a new instance of the class. + + + Creates a new CRAM-MD5 SASL context. + + The user's credentials. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new CRAM-MD5 SASL context. + + The user name. + The password. + + is null. + -or- + is null. + + + + + Get the name of the SASL mechanism. + + + Gets the name of the SASL mechanism. + + The name of the SASL mechanism. + + + + Parse the server's challenge token and return the next challenge response. + + + Parses the server's challenge token and returns the next challenge response. + + The next challenge response. + The server's challenge token. + The index into the token specifying where the server's challenge begins. + The length of the server's challenge. + The cancellation token. + + The SASL mechanism does not support SASL-IR. + + + The operation was canceled via the cancellation token. + + + An error has occurred while parsing the server's challenge token. + + + + + The DIGEST-MD5 SASL mechanism. + + + Unlike the PLAIN and LOGIN SASL mechanisms, the DIGEST-MD5 mechanism + provides some level of protection and should be relatively safe to + use even with a clear-text connection. + + + + + Initializes a new instance of the class. + + + Creates a new DIGEST-MD5 SASL context. + + The user's credentials. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new DIGEST-MD5 SASL context. + + The user name. + The password. + + is null. + -or- + is null. + + + + + Get or set the authorization identifier. + + + The authorization identifier is the desired user account that the server should use + for all accesses. This is separate from the user name used for authentication. + + The authorization identifier. + + + + Get the name of the SASL mechanism. + + + Gets the name of the SASL mechanism. + + The name of the SASL mechanism. + + + + Parse the server's challenge token and return the next challenge response. + + + Parses the server's challenge token and returns the next challenge response. + + The next challenge response. + The server's challenge token. + The index into the token specifying where the server's challenge begins. + The length of the server's challenge. + The cancellation token. + + The SASL mechanism does not support SASL-IR. + + + The operation was canceled via the cancellation token. + + + An error has occurred while parsing the server's challenge token. + + + + + Reset the state of the SASL mechanism. + + + Resets the state of the SASL mechanism. + + + + + The LOGIN SASL mechanism. + + + The LOGIN SASL mechanism provides little protection over the use + of plain-text passwords by obscuring the user name and password within + individual base64-encoded blobs and should be avoided unless used in + combination with an SSL or TLS connection. + + + + + Initializes a new instance of the class. + + + Creates a new LOGIN SASL context. + + The encoding to use for the user's credentials. + The user's credentials. + + is null. + -or- + is null. + + + + + Initializes a new instance of the class. + + + Creates a new LOGIN SASL context. + + The encoding to use for the user's credentials. + The user name. + The password. + + is null. + -or- + is null. + -or- + is null. + + + + + Initializes a new instance of the class. + + + Creates a new LOGIN SASL context. + + The user's credentials. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new LOGIN SASL context. + + The user name. + The password. + + is null. + -or- + is null. + + + + + Get the name of the SASL mechanism. + + + Gets the name of the SASL mechanism. + + The name of the SASL mechanism. + + + + Get whether or not the mechanism supports an initial response (SASL-IR). + + + Gets whether or not the mechanism supports an initial response (SASL-IR). + SASL mechanisms that support sending an initial client response to the server + should return true. + + true if the mechanism supports an initial response; otherwise, false. + + + + Parses the server's challenge token and returns the next challenge response. + + + Parses the server's challenge token and returns the next challenge response. + + The next challenge response. + The server's challenge token. + The index into the token specifying where the server's challenge begins. + The length of the server's challenge. + The cancellation token. + + The SASL mechanism does not support SASL-IR. + + + The operation was canceled via the cancellation token. + + + An error has occurred while parsing the server's challenge token. + + + + + Resets the state of the SASL mechanism. + + + Resets the state of the SASL mechanism. + + + + + The NTLM SASL mechanism. + + + A SASL mechanism based on NTLM. + + + + + Initializes a new instance of the class. + + + Creates a new SASL context using the default network credentials. + + + + + Initializes a new instance of the class. + + + Creates a new NTLM SASL context. + + The user's credentials. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new NTLM SASL context. + + The user name. + The password. + + is null. + -or- + is null. + + + + + This is only used for unit testing purposes. + + + + + This is only used for unit testing purposes. + + + + + Get the name of the SASL mechanism. + + + Gets the name of the SASL mechanism. + + The name of the SASL mechanism. + + + + Get whether or not the SASL mechanism supports channel binding. + + + Gets whether or not the SASL mechanism supports channel binding. + + true if the SASL mechanism supports channel binding; otherwise, false. + + + + Get whether or not channel-binding was negotiated by the SASL mechanism. + + + Gets whether or not channel-binding has been negotiated by the SASL mechanism. + Some SASL mechanisms, such as SCRAM-SHA1-PLUS and NTLM, are able to negotiate + channel-bindings. + + true if channel-binding was negotiated; otherwise, false. + + + + Get whether or not the mechanism supports an initial response (SASL-IR). + + + Gets whether or not the mechanism supports an initial response (SASL-IR). + SASL mechanisms that support sending an initial client response to the server + should return true. + + true if the mechanism supports an initial response; otherwise, false. + + + + Get or set a value indicating whether or not the NTLM SASL mechanism should allow channel-binding. + + + Gets or sets a value indicating whether or not the NTLM SASL mechanism should allow channel-binding. + In the future, this option will disappear as channel-binding will become the default. For now, + it is only an option because this feature has not been thoroughly tested. + + true if the NTLM SASL mechanism should allow channel-binding; otherwise, false. + + + + Get or set the Windows OS version to use in the NTLM negotiation (used for debugging purposes). + + + Gets or sets the Windows OS version to use in the NTLM negotiation (used for debugging purposes). + + The Windows OS version. + + + + Get or set the workstation name to use for authentication. + + + Gets or sets the workstation name to use for authentication. + + The workstation name. + + + + Get or set the service principal name (SPN) of the service that the client wishes to authenticate with. + + + Get or set the service principal name (SPN) of the service that the client wishes to authenticate with. + This value is optional. + + The service principal name (SPN) of the service that the client wishes to authenticate with. + + + + Get or set a value indicating that the caller generated the target's SPN from an untrusted source. + + + Gets or sets a value indicating that the caller generated the target's SPN from an untrusted source. + + true if the is unverified; otherwise, false. + + + + Parse the server's challenge token and return the next challenge response. + + + Parses the server's challenge token and returns the next challenge response. + + The next challenge response. + The server's challenge token. + The index into the token specifying where the server's challenge begins. + The length of the server's challenge. + The cancellation token. + + The SASL mechanism does not support SASL-IR. + + + The operation was canceled via the cancellation token. + + + An error has occurred while parsing the server's challenge token. + + + + + Reset the state of the SASL mechanism. + + + Resets the state of the SASL mechanism. + + + + + The OAuth2 SASL mechanism. + + + A SASL mechanism used by Google that makes use of a short-lived + OAuth 2.0 access token. + + + + + + + + + Initializes a new instance of the class. + + + Creates a new XOAUTH2 SASL context. + + The user's credentials. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new XOAUTH2 SASL context. + + + + + + The user name. + The auth token. + + is null. + -or- + is null. + + + + + Get the name of the SASL mechanism. + + + Gets the name of the SASL mechanism. + + The name of the SASL mechanism. + + + + Get whether or not the mechanism supports an initial response (SASL-IR). + + + Gets whether or not the mechanism supports an initial response (SASL-IR). + SASL mechanisms that support sending an initial client response to the server + should return true. + + true if the mechanism supports an initial response; otherwise, false. + + + + Parse the server's challenge token and return the next challenge response. + + + Parses the server's challenge token and returns the next challenge response. + + The next challenge response. + The server's challenge token. + The index into the token specifying where the server's challenge begins. + The length of the server's challenge. + The cancellation token. + + The SASL mechanism does not support SASL-IR. + + + The operation was canceled via the cancellation token. + + + An error has occurred while parsing the server's challenge token. + + + + + The OAuth Bearer SASL mechanism. + + + A SASL mechanism that makes use of a short-lived OAuth Bearer access tokens. + + + + + + + + + Initializes a new instance of the class. + + + Creates a new OAUTHBEARER SASL context. + + The user's credentials. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new OAUTHBEARER SASL context. + + + + + + The user name. + The auth token. + + is null. + -or- + is null. + + + + + Get the name of the SASL mechanism. + + + Gets the name of the SASL mechanism. + + The name of the SASL mechanism. + + + + Get whether or not the mechanism supports an initial response (SASL-IR). + + + Gets whether or not the mechanism supports an initial response (SASL-IR). + SASL mechanisms that support sending an initial client response to the server + should return true. + + true if the mechanism supports an initial response; otherwise, false. + + + + Parse the server's challenge token and return the next challenge response. + + + Parses the server's challenge token and returns the next challenge response. + + The next challenge response. + The server's challenge token. + The index into the token specifying where the server's challenge begins. + The length of the server's challenge. + The cancellation token. + + The SASL mechanism does not support SASL-IR. + + + The operation was canceled via the cancellation token. + + + An error has occurred while parsing the server's challenge token. + + + + + The PLAIN SASL mechanism. + + + The PLAIN SASL mechanism provides little protection over the use + of plain-text passwords by combining the user name and password and + obscuring them within a base64-encoded blob and should be avoided + unless used in combination with an SSL or TLS connection. + + + + + Initializes a new instance of the class. + + + Creates a new PLAIN SASL context. + + The encoding to use for the user's credentials. + The user's credentials. + + is null. + -or- + is null. + + + + + Initializes a new instance of the class. + + + Creates a new PLAIN SASL context. + + The encoding to use for the user's credentials. + The user name. + The password. + + is null. + -or- + is null. + -or- + is null. + + + + + Initializes a new instance of the class. + + + Creates a new PLAIN SASL context. + + The user's credentials. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new PLAIN SASL context. + + The user name. + The password. + + is null. + -or- + is null. + + + + + Get or set the authorization identifier. + + + The authorization identifier is the desired user account that the server should use + for all accesses. This is separate from the user name used for authentication. + + The authorization identifier. + + + + Get the name of the SASL mechanism. + + + Gets the name of the SASL mechanism. + + The name of the SASL mechanism. + + + + Get whether or not the mechanism supports an initial response (SASL-IR). + + + Gets whether or not the mechanism supports an initial response (SASL-IR). + SASL mechanisms that support sending an initial client response to the server + should return true. + + true if the mechanism supports an initial response; otherwise, false. + + + + Parse the server's challenge token and return the next challenge response. + + + Parses the server's challenge token and returns the next challenge response. + + The next challenge response. + The server's challenge token. + The index into the token specifying where the server's challenge begins. + The length of the server's challenge. + The cancellation token. + + The SASL mechanism does not support SASL-IR. + + + The operation was canceled via the cancellation token. + + + An error has occurred while parsing the server's challenge token. + + + + + The base class for SCRAM-based SASL mechanisms. + + + SCRAM-based SASL mechanisms are salted challenge/response authentication mechanisms. + + + + + Initializes a new instance of the class. + + + Creates a new SCRAM-based SASL context. + + The user's credentials. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new SCRAM-based SASL context. + + The user name. + The password. + + is null. + -or- + is null. + + + + + Get or set the authorization identifier. + + + The authorization identifier is the desired user account that the server should use + for all accesses. This is separate from the user name used for authentication. + + The authorization identifier. + + + + Get whether or not the mechanism supports an initial response (SASL-IR). + + + Get whether or not the mechanism supports an initial response (SASL-IR). + SASL mechanisms that support sending an initial client response to the server + should return true. + + true if the mechanism supports an initial response; otherwise, false. + + + + Get whether or not channel-binding was negotiated by the SASL mechanism. + + + Gets whether or not channel-binding has been negotiated by the SASL mechanism. + Some SASL mechanisms, such as SCRAM-SHA1-PLUS and NTLM, are able to negotiate + channel-bindings. + + true if channel-binding was negotiated; otherwise, false. + + + + Create the HMAC context. + + + Creates the HMAC context using the secret key. + + The HMAC context. + The secret key. + + + + Apply the HMAC keyed algorithm. + + + HMAC(key, str): Apply the HMAC keyed hash algorithm (defined in + [RFC2104]) using the octet string represented by "key" as the key + and the octet string "str" as the input string. The size of the + result is the hash result size for the hash function in use. For + example, it is 20 octets for SHA-1 (see [RFC3174]). + + The results of the HMAC keyed algorithm. + The key. + The string. + + + + Apply the cryptographic hash function. + + + H(str): Apply the cryptographic hash function to the octet string + "str", producing an octet string as a result. The size of the + result depends on the hash result size for the hash function in + use. + + The results of the hash. + The string. + + + + Apply the exclusive-or operation to combine two octet strings. + + + Apply the exclusive-or operation to combine the octet string + on the left of this operator with the octet string on the right of + this operator. The length of the output and each of the two + inputs will be the same for this use. + + The alpha component. + The blue component. + + + + Parse the server's challenge token and return the next challenge response. + + + Parses the server's challenge token and returns the next challenge response. + + The next challenge response. + The server's challenge token. + The index into the token specifying where the server's challenge begins. + The length of the server's challenge. + The cancellation token. + + The SASL mechanism does not support SASL-IR. + + + The operation was canceled via the cancellation token. + + + An error has occurred while parsing the server's challenge token. + + + + + Reset the state of the SASL mechanism. + + + Resets the state of the SASL mechanism. + + + + + The SCRAM-SHA-1 SASL mechanism. + + + A salted challenge/response SASL mechanism that uses the HMAC SHA-1 algorithm. + + + + + Initializes a new instance of the class. + + + Creates a new SCRAM-SHA-1 SASL context. + + The user's credentials. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new SCRAM-SHA-1 SASL context. + + The user name. + The password. + + is null. + -or- + is null. + + + + + Get the name of the mechanism. + + + Gets the name of the mechanism. + + The name of the mechanism. + + + + Create the HMAC context. + + + Creates the HMAC context using the secret key. + + The HMAC context. + The secret key. + + + + Apply the cryptographic hash function. + + + H(str): Apply the cryptographic hash function to the octet string + "str", producing an octet string as a result. The size of the + result depends on the hash result size for the hash function in + use. + + The results of the hash. + The string. + + + + The SCRAM-SHA-1-PLUS SASL mechanism. + + + A salted challenge/response SASL mechanism that uses the HMAC SHA-1 algorithm and Transport Layer Security (TLS) channel binding. + + + + + Initializes a new instance of the class. + + + Creates a new SCRAM-SHA-1-PLUS SASL context. + + The user's credentials. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new SCRAM-SHA-1-PLUS SASL context. + + The user name. + The password. + + is null. + -or- + is null. + + + + + Get the name of the SASL mechanism. + + + Gets the name of the SASL mechanism. + + The name of the SASL mechanism. + + + + Get whether or not the SASL mechanism supports channel binding. + + + Gets whether or not the SASL mechanism supports channel binding. + + true if the SASL mechanism supports channel binding; otherwise, false. + + + + The SCRAM-SHA-256 SASL mechanism. + + + A salted challenge/response SASL mechanism that uses the HMAC SHA-256 algorithm. + + + + + Initializes a new instance of the class. + + + Creates a new SCRAM-SHA-256 SASL context. + + The user's credentials. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new SCRAM-SHA-256 SASL context. + + The user name. + The password. + + is null. + -or- + is null. + + + + + Get the name of the SASL mechanism. + + + Gets the name of the SASL mechanism. + + The name of the SASL mechanism. + + + + Create the HMAC context. + + + Creates the HMAC context using the secret key. + + The HMAC context. + The secret key. + + + + Apply the cryptographic hash function. + + + H(str): Apply the cryptographic hash function to the octet string + "str", producing an octet string as a result. The size of the + result depends on the hash result size for the hash function in + use. + + The results of the hash. + The string. + + + + The SCRAM-SHA-256-PLUS SASL mechanism. + + + A salted challenge/response SASL mechanism that uses the HMAC SHA-256 algorithm and Transport Layer Security (TLS) channel binding. + + + + + Initializes a new instance of the class. + + + Creates a new SCRAM-SHA-256-PLUS SASL context. + + The user's credentials. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new SCRAM-SHA-256-PLUS SASL context. + + The user name. + The password. + + is null. + -or- + is null. + + + + + Get the name of the SASL mechanism. + + + Gets the name of the SASL mechanism. + + The name of the SASL mechanism. + + + + Get whether or not the SASL mechanism supports channel binding. + + + Gets whether or not the SASL mechanism supports channel binding. + + true if the SASL mechanism supports channel binding; otherwise, false. + + + + The SCRAM-SHA-512 SASL mechanism. + + + A salted challenge/response SASL mechanism that uses the HMAC SHA-512 algorithm. + + + + + Initializes a new instance of the class. + + + Creates a new SCRAM-SHA-512 SASL context. + + The user's credentials. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new SCRAM-SHA-512 SASL context. + + The user name. + The password. + + is null. + -or- + is null. + + + + + Get the name of the SASL mechanism. + + + Gets the name of the SASL mechanism. + + The name of the SASL mechanism. + + + + Create the HMAC context. + + + Creates the HMAC context using the secret key. + + The HMAC context. + The secret key. + + + + Apply the cryptographic hash function. + + + H(str): Apply the cryptographic hash function to the octet string + "str", producing an octet string as a result. The size of the + result depends on the hash result size for the hash function in + use. + + The results of the hash. + The string. + + + + The SCRAM-SHA-512-PLUS SASL mechanism. + + + A salted challenge/response SASL mechanism that uses the HMAC SHA-512 algorithm and Transport Layer Security (TLS) channel binding. + + + + + Initializes a new instance of the class. + + + Creates a new SCRAM-SHA-512-PLUS SASL context. + + The user's credentials. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new SCRAM-SHA-512-PLUS SASL context. + + The user name. + The password. + + is null. + -or- + is null. + + + + + Get the name of the SASL mechanism. + + + Gets the name of the SASL mechanism. + + The name of the SASL mechanism. + + + + Get whether or not the SASL mechanism supports channel binding. + + + Gets whether or not the SASL mechanism supports channel binding. + + true if the SASL mechanism supports channel binding; otherwise, false. + + + + Secure socket options. + + + Provides a way of specifying the SSL and/or TLS encryption that + should be used for a connection. + + + + + No SSL or TLS encryption should be used. + + + + + Allow the to decide which SSL or TLS + options to use (default). If the server does not support SSL or TLS, + then the connection will continue without any encryption. + + + + + The connection should use SSL or TLS encryption immediately. + + + + + Elevates the connection to use TLS encryption immediately after + reading the greeting and capabilities of the server. If the server + does not support the STARTTLS extension, then the connection will + fail and a will be thrown. + + + + + Elevates the connection to use TLS encryption immediately after + reading the greeting and capabilities of the server, but only if + the server supports the STARTTLS extension. + + + + + The exception that is thrown when there is an error during the SSL/TLS handshake. + + + The exception that is thrown when there is an error during the SSL/TLS handshake. + When this exception occurrs, it typically means that the IMAP, POP3 or SMTP server that + you are connecting to is using an SSL certificate that is either expired or untrusted by + your system. + Often times, mail servers will use self-signed certificates instead of using a certificate + that has been signed by a trusted Certificate Authority. When your system is unable to validate + the mail server's certificate because it is not signed by a known and trusted Certificate Authority, + this exception will occur. + You can work around this problem by supplying a custom + and setting it on the client's property. + Most likely, you'll want to compare the thumbprint of the server's certificate with a known + value and/or prompt the user to accept the certificate (similar to what you've probably seen web + browsers do when they encounter untrusted certificates). + + + + + Initializes a new instance of the class. + + + Creates a new from the seriaized data. + + The serialization info. + The streaming context. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The error message. + An inner exception. + + + + Initializes a new instance of the class. + + + Creates a new . + + The error message. + + + + Initializes a new instance of the class. + + + Creates a new . + + + + + Get the server's SSL certificate. + + + Gets the server's SSL certificate, if it is available. + + The server's SSL certificate. + + + + Get the certificate for the Root Certificate Authority. + + + Gets the certificate for the Root Certificate Authority, if it is available. + + The Root Certificate Authority certificate. + + + + When overridden in a derived class, sets the + with information about the exception. + + + Sets the + with information about the exception. + + The serialization info. + The streaming context. + + is null. + + + + + An Access Control. + + + An Access Control is a set of permissions available for a particular identity, + controlling whether or not that identity has the ability to perform various tasks. + + + + + + + + Initializes a new instance of the class. + + + Creates a new with the given name and + access rights. + + The identifier name. + The access rights. + + is null. + -or- + is null. + + + + + Initializes a new instance of the class. + + + Creates a new with the given name and + access rights. + + The identifier name. + The access rights. + + is null. + -or- + is null. + + + + + Initializes a new instance of the class. + + + Creates a new with the given name and no + access rights. + + The identifier name. + + is null. + + + + + The identifier name for the access control. + + + The identifier name for the access control. + + + + + The identifier name. + + + + Get the access rights. + + + Gets the access rights. + + + + + The access rights. + + + + An Access Control List (ACL) + + + An Access Control List (ACL) is a list of access controls defining the permissions + various identities have available. + + + + + + + + Initializes a new instance of the class. + + + Creates a new . + + The list of access controls. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new . + + + + + An individual Access Right to be used with ACLs. + + + An individual Access Right meant to be used with + . + For more information on what rights are available, + see https://tools.ietf.org/html/rfc4314#section-2.1 + + + + + + The access right for folder lookups. + + + Allows the to be visible when listing folders. + + + + + The access right for opening a folder and getting the status. + + + Provides access for opening and getting the status of the folder. + + + + + The access right for adding or removing the Seen flag on messages in the folder. + + + Provides access to add or remove the flag on messages within the + . + + + + + The access right for adding or removing flags (other than Seen and Deleted) + on messages in a folder. + + + Provides access to add or remove the on messages + (other than and + ) within the folder. + + + + + The access right allowing messages to be appended or copied into the folder. + + + Provides access to append or copy messages into the folder. + + + + + The access right allowing subfolders to be created. + + + Provides access to create subfolders. + + + + + The access right for deleting a folder and/or its subfolders. + + + Provides access to delete the folder and/or any subfolders. + + + + + The access right for adding or removing the Deleted flag to messages within a folder. + + + Provides access to add or remove the flag from + messages within the folder. It also provides access for setting the + flag when appending a message to a folder. + + + + + The access right for expunging deleted messages in a folder. + + + Provides access to expunge deleted messages in a folder. + + + + + The access right for administering the ACLs of a folder. + + + Provides administrative access to change the ACLs for the folder. + + + + + The character representing the particular access right. + + + Represents the character value of the access right. + + + + + Initializes a new instance of the struct. + + + Creates a new struct. + + The access right. + + + + Determines whether the specified is equal to the current . + + + Determines whether the specified is equal to the current . + + The to compare with the current . + true if the specified is equal to the current + ; otherwise, false. + + + + Determines whether two access rights are equal. + + + Determines whether two access rights are equal. + + true if and are equal; otherwise, false. + The first access right to compare. + The second access right to compare. + + + + Determines whether two access rights are not equal. + + + Determines whether two access rights are not equal. + + true if and are not equal; otherwise, false. + The first access right to compare. + The second access right to compare. + + + + Determines whether the specified is equal to the current . + + + Determines whether the specified is equal to the current . + + The to compare with the current . + true if the specified is equal to the current ; + otherwise, false. + + + + Serves as a hash function for a object. + + + Serves as a hash function for a object. + + A hash code for this instance that is suitable for use in hashing algorithms and data structures such as a hash table. + + + + Returns a that represents the current . + + + Returns a that represents the current . + + A that represents the current . + + + + A set of access rights. + + + The set of access rights for a particular identity. + + + + + Initializes a new instance of the class. + + + Creates a new set of access rights. + + The access rights. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new set of access rights. + + The access rights. + + is null. + + + + + Initializes a new instance of the class. + + + Creates an empty set of access rights. + + + + + Get the number of access rights in the collection. + + + Gets the number of access rights in the collection. + + The count. + + + + Get whether or not this set of access rights is read only. + + + Gets whether or not this set of access rights is read only. + + true if this collection is read only; otherwise, false. + + + + Add the specified access right. + + + Adds the specified access right if it is not already included. + + The access right. + + + + Add the specified access right. + + + Adds the specified access right if it is not already included. + + true if the right was added; otherwise, false. + The access right. + + + + Add the specified right. + + + Adds the right specified by the given character. + + true if the right was added; otherwise, false. + The right. + + + + Add the rights specified by the characters in the given string. + + + Adds the rights specified by the characters in the given string. + + The rights. + + is null. + + + + + Add the range of specified rights. + + + Adds the range of specified rights. + + The rights. + + is null. + + + + + Clears the access rights. + + + Removes all of the access rights. + + + + + Checks if the set of access rights contains the specified right. + + + Determines whether or not the set of access rights already contains the specified right + + true if the specified right exists; otherwise false. + The access right. + + + + Copies all of the access rights to the specified array. + + + Copies all of the access rights into the array, + starting at the specified array index. + + The array. + The array index. + + is null. + + + is out of range. + + + + + Removes the specified access right. + + + Removes the specified access right. + + true if the access right was removed; otherwise false. + The access right. + + + + Get the access right at the specified index. + + + Gets the access right at the specified index. + + The access right at the specified index. + The index. + + is out of range. + + + + + Get the access rights enumerator. + + + Gets the access rights enumerator. + + The enumerator. + + + + Get the access rights enumerator. + + + Gets the access rights enumerator. + + The enumerator. + + + + Return a that represents the current . + + + Returns a that represents the current . + + A that represents the current . + + + + Alert event arguments. + + + Some implementations, such as + , will emit Alert + events when they receive alert messages from the server. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The alert message. + + is null. + + + + + Gets the alert message. + + + The alert message will be the exact message received from the server. + + The alert message. + + + + An annotation. + + + An annotation. + For more information about annotations, see + rfc5257. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The annotation entry. + + is null. + + + + + Get the annotation tag. + + + Gets the annotation tag. + + The annotation tag. + + + + Get the annotation properties. + + + Gets the annotation properties. + + The annotation properties. + + + + An annotation access level. + + + An annotation access level. + For more information about annotations, see + rfc5257. + + + + + Annotations are not supported. + + + + + Annotations are read-only. + + + + + Annotations are read-write. + + + + + An annotation attribute. + + + An annotation attribute. + For more information about annotations, see + rfc5257. + + + + + The annotation value. + + + Used to get or set both the private and shared values of an annotation. + + + + + The shared annotation value. + + + Used to get or set the shared value of an annotation. + + + + + The private annotation value. + + + Used to get or set the private value of an annotation. + + + + + The size of an annotation value. + + + Used to get the size of the both the private and shared annotation values. + + + + + The size of a shared annotation value. + + + Used to get the size of a shared annotation value. + + + + + The size of a private annotation value. + + + Used to get the size of a private annotation value. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The annotation attribute specifier. + + is null. + + + contains illegal characters. + + + + + Get the name of the annotation attribute. + + + Gets the name of the annotation attribute. + + The name of the annotation attribute. + + + + Get the scope of the annotation attribute. + + + Gets the scope of the annotation attribute. + + The scope of the annotation attribute. + + + + Get the annotation attribute specifier. + + + Gets the annotation attribute specifier. + + The annotation attribute specifier. + + + + Determines whether the specified is equal to the current . + + + Determines whether the specified is equal to the current . + + The to compare with the current . + true if the specified is equal to the current + ; otherwise, false. + + + + Determines whether two annotation attributes are equal. + + + Determines whether two annotation attributes are equal. + + true if and are equal; otherwise, false. + The first annotation attribute to compare. + The second annotation attribute to compare. + + + + Determines whether two annotation attributes are not equal. + + + Determines whether two annotation attributes are not equal. + + true if and are not equal; otherwise, false. + The first annotation attribute to compare. + The second annotation attribute to compare. + + + + Determine whether the specified is equal to the current . + + + Determines whether the specified is equal to the current . + + The to compare with the current . + true if the specified is equal to the current + ; otherwise, false. + + + + Serves as a hash function for a object. + + + Serves as a hash function for a object. + + A hash code for this instance that is suitable for use in hashing algorithms and data structures such as a hash table. + + + + Returns a that represents the current . + + + Returns a that represents the current . + + A that represents the current . + + + + An annotation entry. + + + An annotation entry. + For more information about annotations, see + rfc5257. + + + + + An annotation entry for a comment on a message. + + + Used to get or set a comment on a message. + + + + + An annotation entry for a private comment on a message. + + + Used to get or set a private comment on a message. + + + + + An annotation entry for a shared comment on a message. + + + Used to get or set a shared comment on a message. + + + + + An annotation entry for flags on a message. + + + Used to get or set flags on a message. + + + + + An annotation entry for private flags on a message. + + + Used to get or set private flags on a message. + + + + + Aa annotation entry for shared flags on a message. + + + Used to get or set shared flags on a message. + + + + + An annotation entry for an alternate subject on a message. + + + Used to get or set an alternate subject on a message. + + + + + An annotation entry for a private alternate subject on a message. + + + Used to get or set a private alternate subject on a message. + + + + + An annotation entry for a shared alternate subject on a message. + + + Used to get or set a shared alternate subject on a message. + + + + + Initializes a new instance of the struct. + + + Creates a new . + + The annotation entry path. + The scope of the annotation. + + is null. + + + is invalid. + + + + + Initializes a new instance of the struct. + + + Creates a new for an individual body part of a message. + + The part-specifier of the body part of the message. + The annotation entry path. + The scope of the annotation. + + is null. + -or- + is null. + + + is invalid. + -or- + is invalid. + + + + + Initializes a new instance of the struct. + + + Creates a new for an individual body part of a message. + + The body part of the message. + The annotation entry path. + The scope of the annotation. + + is null. + -or- + is null. + + + is invalid. + + + + + Get the annotation entry specifier. + + + Gets the annotation entry specifier. + + The annotation entry specifier. + + + + Get the part-specifier component of the annotation entry. + + + Gets the part-specifier component of the annotation entry. + + The part-specifier. + + + + Get the path component of the annotation entry. + + + Gets the path component of the annotation entry. + + The path. + + + + Get the scope of the annotation. + + + Gets the scope of the annotation. + + The scope. + + + + Determines whether the specified is equal to the current . + + + Determines whether the specified is equal to the current . + + The to compare with the current . + true if the specified is equal to the current + ; otherwise, false. + + + + Determines whether two annotation entries are equal. + + + Determines whether two annotation entries are equal. + + true if and are equal; otherwise, false. + The first annotation entry to compare. + The second annotation entry to compare. + + + + Determines whether two annotation entries are not equal. + + + Determines whether two annotation entries are not equal. + + true if and are not equal; otherwise, false. + The first annotation entry to compare. + The second annotation entry to compare. + + + + Determine whether the specified is equal to the current . + + + Determines whether the specified is equal to the current . + + The to compare with the current . + true if the specified is equal to the current + ; otherwise, false. + + + + Serves as a hash function for a object. + + + Serves as a hash function for a object. + + A hash code for this instance that is suitable for use in hashing algorithms and data structures such as a hash table. + + + + Returns a that represents the current . + + + Returns a that represents the current . + + A that represents the current . + + + + Parse an annotation entry. + + + Parses an annotation entry. + + The annotation entry. + The parsed annotation entry. + + is null. + + + does not conform to the annotation entry syntax. + + + + + Event args used when an annotation changes. + + + Event args used when an annotation changes. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The message index. + + + + Initializes a new instance of the class. + + + Creates a new . + + The message index. + The annotations that changed. + + is null. + + + + + Get the annotations that changed. + + + Gets the annotations that changed. + + The annotation. + + + + Gets the updated mod-sequence value of the message, if available. + + + Gets the updated mod-sequence value of the message, if available. + + The mod-sequence value. + + + + The scope of an annotation. + + + Represents the scope of an annotation. + For more information about annotations, see + rfc5257. + + + + + No scopes. + + + + + The private annotation scope. + + + + + The shared annotation scope. + + + + + Both private and shared scopes. + + + + + A request for appending a message to a folder. + + + A request for appending a message to a folder. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The message. + The message flags. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The message. + The message flags. + The message keywords. + + is null. + -or- + is null. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The message. + The message flags. + The internal date of the message. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The message. + The message flags. + The message keywords. + The internal date of the message. + + is null. + -or- + is null. + + + + + Get the message that should be appended to the folder. + + + Gets the message that should be appended to the folder. + + The message. + + + + Get or set the message flags that should be set on the message. + + + Gets or sets the message flags that should be set on the message. + + The message flags. + + + + Get or set the keywords that should be set on the message. + + + Gets or sets the keywords that should be set on the message. + + The keywords. + + + + Get or set the timestamp that should be used by folder as the . + + + Gets or sets the timestamp that should be used by folder as the . + + The date and time to use for the INTERNALDATE or null if it should be left up to the folder to decide. + + + + Get or set the list of annotations that should be set on the message. + + + Gets or sets the list of annotations that should be set on the message. + + This feature is not supported by all folders. + Use with the enum value + to determine if this feature is supported. + + + The list of annotations. + + + + Get or set the transfer progress reporting mechanism. + + + Gets or sets the transfer progress reporting mechanism. + + The transfer progress mechanism. + + + + Authenticated event arguments. + + + Some servers, such as GMail IMAP, will send some free-form text in + the response to a successful login. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The free-form text. + + is null. + + + + + Get the free-form text sent by the server. + + + Gets the free-form text sent by the server. + + The free-form text sent by the server. + + + + An abstract body part of a message. + + + Each body part will actually be a , + , , or + . + + + + + + + + Initializes a new instance of the class. + + + Creates a new . + + + + + Gets the Content-Type of the body part. + + + Gets the Content-Type of the body part. + + The content type. + + + + Gets the part specifier. + + + Gets the part specifier. + + + + + The part specifier. + + + + Dispatches to the specific visit method for this MIME body part. + + + This default implementation for nodes + calls . Override this + method to call into a more specific method on a derived visitor class + of the class. However, it should still + support unknown visitors by calling + . + + The visitor. + + is null. + + + + + Encodes the into the . + + + Encodes the into the . + + The string builder. + + + + Returns a that represents the current . + + + Returns a that represents the current . + The syntax of the string returned, while similar to IMAP's BODYSTRUCTURE syntax, + is not completely compatible. + + A that represents the current . + + + + Tries to parse the given text into a new instance. + + + Parses a body part from the specified text. + This syntax, while similar to IMAP's BODYSTRUCTURE syntax, is not completely + compatible. + + true, if the body part was successfully parsed, false otherwise. + The text to parse. + The parsed body part. + + is null. + + + + + A basic message body part. + + + Represents any message body part that is not a multipart, + message/rfc822 part, or a text part. + + + + + + + + Initializes a new instance of the class. + + + Creates a new . + + + + + Gets the Content-Id of the body part, if available. + + + Gets the Content-Id of the body part, if available. + + The content identifier. + + + + Gets the Content-Description of the body part, if available. + + + Gets the Content-Description of the body part, if available. + + The content description. + + + + Gets the Content-Transfer-Encoding of the body part. + + + Gets the Content-Transfer-Encoding of the body part. + Hint: Use the MimeUtils.TryParse + method to parse this value into a usable . + + The content transfer encoding. + + + + Gets the size of the body part, in bytes. + + + Gets the size of the body part, in bytes. + + The number of octets. + + + + Gets the MD5 hash of the content, if available. + + + Gets the MD5 hash of the content, if available. + + The content md5. + + + + Gets the Content-Disposition of the body part, if available. + + + Gets the Content-Disposition of the body part, if available. + The Content-Disposition value is only retrieved if the + flag is used when fetching + summary information from an . + + The content disposition. + + + + Gets the Content-Language of the body part, if available. + + + Gets the Content-Language of the body part, if available. + The Content-Language value is only retrieved if the + flag is used when fetching + summary information from an . + + The content language. + + + + Gets the Content-Location of the body part, if available. + + + Gets the Content-Location of the body part, if available. + The Content-Location value is only retrieved if the + flag is used when fetching + summary information from an . + + The content location. + + + + Determines whether or not the body part is an attachment. + + + Determines whether or not the body part is an attachment based on the value of + the Content-Disposition. + Since the value of the Content-Disposition header is needed, it + is necessary to include the flag when + fetching summary information from an . + + true if this part is an attachment; otherwise, false. + + + + Get the name of the file. + + + First checks for the "filename" parameter on the Content-Disposition header. If + that does not exist, then the "name" parameter on the Content-Type header is used. + Since the value of the Content-Disposition header is needed, it is + necessary to include the flag when + fetching summary information from an . + + The name of the file. + + + + Dispatches to the specific visit method for this MIME body part. + + + This default implementation for nodes + calls . Override this + method to call into a more specific method on a derived visitor class + of the class. However, it should still + support unknown visitors by calling + . + + The visitor. + + is null. + + + + + Encodes the into the . + + + Encodes the into the . + + The string builder. + + + + A collection. + + + A collection. + + + + + Initializes a new instance of the class. + + + Creates a new . + + + + + Get the number of body parts in the collection. + + + Gets the number of body parts in the collection. + + The count. + + + + Get whether or not this body part collection is read only. + + + Gets whether or not this body part collection is read only. + + true if this collection is read only; otherwise, false. + + + + Add the specified body part to the collection. + + + Adds the specified body part to the collection. + + The body part. + + is null. + + + + + Clears the body part collection. + + + Removes all of the body parts from the collection. + + + + + Checks if the collection contains the specified body part. + + + Determines whether or not the collection contains the specified body part. + + true if the specified body part exists; otherwise false. + The body part. + + is null. + + + + + Copies all of the body parts in the collection to the specified array. + + + Copies all of the body parts within the collection into the array, + starting at the specified array index. + + The array. + The array index. + + is null. + + + is out of range. + + + + + Removes the specified body part. + + + Removes the specified body part. + + true if the body part was removed; otherwise false. + The body part. + + is null. + + + + + Get the body part at the specified index. + + + Gets the body part at the specified index. + + The body part at the specified index. + The index. + + is out of range. + + + + + Gets the index of the body part matching the specified URI. + + + Finds the index of the body part matching the specified URI, if it exists. + If the URI scheme is "cid", then matching is performed based on the Content-Id header + values, otherwise the Content-Location headers are used. If the provided URI is absolute and a child + part's Content-Location is relative, then then the child part's Content-Location URI will be combined + with the value of its Content-Base header, if available, otherwise it will be combined with the + multipart/related part's Content-Base header in order to produce an absolute URI that can be + compared with the provided absolute URI. + + The index of the part matching the specified URI if found; otherwise -1. + The URI of the body part. + + is null. + + + + + Get the body part enumerator. + + + Gets the body part enumerator. + + The enumerator. + + + + Get the body part enumerator. + + + Gets the body part enumerator. + + The enumerator. + + + + A message/rfc822 body part. + + + Represents a message/rfc822 body part. + + + + + Initializes a new instance of the class. + + + Creates a new . + + + + + Gets the envelope of the message, if available. + + + Gets the envelope of the message, if available. + + The envelope. + + + + Gets the body structure of the message. + + + Gets the body structure of the message. + + The body structure. + + + + Gets the length of the message, in lines. + + + Gets the length of the message, in lines. + + The number of lines. + + + + Dispatches to the specific visit method for this MIME body part. + + + This default implementation for nodes + calls . Override this + method to call into a more specific method on a derived visitor class + of the class. However, it should still + support unknown visitors by calling + . + + The visitor. + + is null. + + + + + Encodes the into the . + + + Encodes the into the . + + The string builder. + + + + A multipart body part. + + + A multipart body part. + + + + + Initializes a new instance of the class. + + + Creates a new . + + + + + Gets the child body parts. + + + Gets the child body parts. + + The child body parts. + + + + Gets the Content-Disposition of the body part, if available. + + + Gets the Content-Disposition of the body part, if available. + + The content disposition. + + + + Gets the Content-Language of the body part, if available. + + + Gets the Content-Language of the body part, if available. + + The content language. + + + + Gets the Content-Location of the body part, if available. + + + Gets the Content-Location of the body part, if available. + + The content location. + + + + Dispatches to the specific visit method for this MIME body part. + + + This default implementation for nodes + calls . Override this + method to call into a more specific method on a derived visitor class + of the class. However, it should still + support unknown visitors by calling + . + + The visitor. + + is null. + + + + + Encodes the into the . + + + Encodes the into the . + + The string builder. + + + + A textual body part. + + + Represents any body part with a media type of "text". + + + + + + + + Initializes a new instance of the class. + + + Creates a new . + + + + + Gets whether or not this text part contains plain text. + + + Checks whether or not the text part's Content-Type is text/plain. + + true if the text is html; otherwise, false. + + + + Gets whether or not this text part contains HTML. + + + Checks whether or not the text part's Content-Type is text/html. + + true if the text is html; otherwise, false. + + + + Gets the length of the text, in lines. + + + Gets the length of the text, in lines. + + The number of lines. + + + + Dispatches to the specific visit method for this MIME body part. + + + This default implementation for nodes + calls . Override this + method to call into a more specific method on a derived visitor class + of the class. However, it should still + support unknown visitors by calling + . + + The visitor. + + is null. + + + + + Encodes the into the . + + + Encodes the into the . + + The string builder. + + + + Represents a visitor for a tree of MIME body parts. + + + This class is designed to be inherited to create more specialized classes whose + functionality requires traversing, examining or copying a tree of MIME body parts. + + + + + Dispatches the entity to one of the more specialized visit methods in this class. + + + Dispatches the entity to one of the more specialized visit methods in this class. + + The MIME body part. + + + + Visit the abstract MIME body part. + + + Visits the abstract MIME body part. + + The MIME body part. + + + + Visit the basic MIME body part. + + + Visits the basic MIME body part. + + The basic MIME body part. + + + + Visit the message contained within a message/rfc822 or message/news MIME entity. + + + Visits the message contained within a message/rfc822 or message/news MIME entity. + + The body part representing the message/rfc822 message. + + + + Visit the message/rfc822 or message/news MIME entity. + + + Visits the message/rfc822 or message/news MIME entity. + + The message/rfc822 or message/news body part. + + + + Visit the children of a . + + + Visits the children of a . + + The multipart. + + + + Visit the abstract multipart MIME entity. + + + Visits the abstract multipart MIME entity. + + The multipart body part. + + + + Visit the text-based MIME part entity. + + + Visits the text-based MIME part entity. + + The text-based body part. + + + + The exception that is thrown when there is a command error. + + + A can be thrown by any of the various client + methods in MailKit. Unlike a , a + is typically non-fatal (meaning that it does + not force the client to disconnect). + + + + + Initializes a new instance of the class. + + + Creates a new . + + The serialization info. + The streaming context. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The error message. + An inner exception. + + + + Initializes a new instance of the class. + + + Creates a new . + + The error message. + + + + Initializes a new instance of the class. + + + Creates a new . + + + + + A compressed stream. + + + + + Gets the inner stream. + + The inner stream. + + + + Gets whether the stream supports reading. + + true if the stream supports reading; otherwise, false. + + + + Gets whether the stream supports writing. + + true if the stream supports writing; otherwise, false. + + + + Gets whether the stream supports seeking. + + true if the stream supports seeking; otherwise, false. + + + + Gets whether the stream supports I/O timeouts. + + true if the stream supports I/O timeouts; otherwise, false. + + + + Gets or sets a value, in miliseconds, that determines how long the stream will attempt to read before timing out. + + A value, in miliseconds, that determines how long the stream will attempt to read before timing out. + The read timeout. + + + + Gets or sets a value, in miliseconds, that determines how long the stream will attempt to write before timing out. + + A value, in miliseconds, that determines how long the stream will attempt to write before timing out. + The write timeout. + + + + Gets or sets the position within the current stream. + + The current position within the stream. + The position of the stream. + + The stream does not support seeking. + + + + + Gets the length in bytes of the stream. + + A long value representing the length of the stream in bytes. + The length of the stream. + + The stream does not support seeking. + + + + + Reads a sequence of bytes from the stream and advances the position + within the stream by the number of bytes read. + + The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many + bytes are not currently available, or zero (0) if the end of the stream has been reached. + The buffer. + The buffer offset. + The number of bytes to read. + + is null. + + + is less than zero or greater than the length of . + -or- + The is not large enough to contain bytes strting + at the specified . + + + The stream has been disposed. + + + An I/O error occurred. + + + + + Reads a sequence of bytes from the stream and advances the position + within the stream by the number of bytes read. + + The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many + bytes are not currently available, or zero (0) if the end of the stream has been reached. + The buffer. + The buffer offset. + The number of bytes to read. + The cancellation token. + + is null. + + + is less than zero or greater than the length of . + -or- + The is not large enough to contain bytes strting + at the specified . + + + The stream has been disposed. + + + An I/O error occurred. + + + + + Writes a sequence of bytes to the stream and advances the current + position within this stream by the number of bytes written. + + The buffer to write. + The offset of the first byte to write. + The number of bytes to write. + + is null. + + + is less than zero or greater than the length of . + -or- + The is not large enough to contain bytes strting + at the specified . + + + The stream has been disposed. + + + The stream does not support writing. + + + An I/O error occurred. + + + + + Writes a sequence of bytes to the stream and advances the current + position within this stream by the number of bytes written. + + A task that represents the asynchronous write operation. + The buffer to write. + The offset of the first byte to write. + The number of bytes to write. + The cancellation token. + + is null. + + + is less than zero or greater than the length of . + -or- + The is not large enough to contain bytes strting + at the specified . + + + The stream has been disposed. + + + The stream does not support writing. + + + An I/O error occurred. + + + + + Clears all output buffers for this stream and causes any buffered data to be written + to the underlying device. + + + The stream has been disposed. + + + The stream does not support writing. + + + An I/O error occurred. + + + + + Clears all output buffers for this stream and causes any buffered data to be written + to the underlying device. + + A task that represents the asynchronous flush operation. + + The stream has been disposed. + + + The stream does not support writing. + + + An I/O error occurred. + + + + + Sets the position within the current stream. + + The new position within the stream. + The offset into the stream relative to the . + The origin to seek from. + + The stream does not support seeking. + + + + + Sets the length of the stream. + + The desired length of the stream in bytes. + + The stream does not support setting the length. + + + + + Releases the unmanaged resources used by the and + optionally releases the managed resources. + + true to release both managed and unmanaged resources; + false to release only the unmanaged resources. + + + + Connected event arguments. + + + When a is connected, it will emit a + event. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The name of the host that the client connected to. + The port that the client connected to on the remote host. + The SSL/TLS options that were used when connecting to the remote host. + + + + Get the name of the remote host. + + + Gets the name of the remote host. + + The host name of the server. + + + + Get the port. + + + Gets the port. + + The port. + + + + Get the SSL/TLS options. + + + Gets the SSL/TLS options. + + The SSL/TLS options. + + + + Delivery status notification types. + + + A set of flags that may be bitwise-or'd together to specify + when a delivery status notification should be sent for a + particlar recipient. + + + + + + + + Never send delivery status notifications. + + + + + Send a notification on successful delivery to the recipient. + + + + + Send a notification on failure to deliver to the recipient. + + + + + Send a notification when the delivery to the recipient has + been delayed for an unusual amount of time. + + + + + Disconnected event arguments. + + + When a gets disconnected, it will emit a + event. + + + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + + The name of the host that the client was connected to. + The port that the client was connected to. + The SSL/TLS options that were used by the client. + If true, the was disconnected via the + method. + + + + Get whether or not the service was explicitly asked to disconnect. + + + If the was disconnected via the + method, then + the value of will be true. If the connection was unexpectedly + dropped, then the value will be false. + + true if the disconnect was explicitly requested; otherwise, false. + + + + A duplex stream. + + + + + Initializes a new instance of the class. + + The stream to use for input. + The stream to use for output. + + is null. + -or- + is null. + + + + + Gets the input stream. + + The input stream. + + + + Gets the output stream. + + The output stream. + + + + Gets whether the stream supports reading. + + true if the stream supports reading; otherwise, false. + + + + Gets whether the stream supports writing. + + true if the stream supports writing; otherwise, false. + + + + Gets whether the stream supports seeking. + + true if the stream supports seeking; otherwise, false. + + + + Gets whether the stream supports I/O timeouts. + + true if the stream supports I/O timeouts; otherwise, false. + + + + Gets or sets a value, in miliseconds, that determines how long the stream will attempt to read before timing out. + + A value, in miliseconds, that determines how long the stream will attempt to read before timing out. + The read timeout. + + + + Gets or sets a value, in miliseconds, that determines how long the stream will attempt to write before timing out. + + A value, in miliseconds, that determines how long the stream will attempt to write before timing out. + The write timeout. + + + + Gets or sets the position within the current stream. + + The current position within the stream. + The position of the stream. + + The stream does not support seeking. + + + + + Gets the length in bytes of the stream. + + A long value representing the length of the stream in bytes. + The length of the stream. + + The stream does not support seeking. + + + + + Reads a sequence of bytes from the stream and advances the position + within the stream by the number of bytes read. + + The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many + bytes are not currently available, or zero (0) if the end of the stream has been reached. + The buffer. + The buffer offset. + The number of bytes to read. + + is null. + + + is less than zero or greater than the length of . + -or- + The is not large enough to contain bytes strting + at the specified . + + + The stream has been disposed. + + + An I/O error occurred. + + + + + Reads a sequence of bytes from the stream and advances the position + within the stream by the number of bytes read. + + The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many + bytes are not currently available, or zero (0) if the end of the stream has been reached. + The buffer. + The buffer offset. + The number of bytes to read. + The cancellation token. + + is null. + + + is less than zero or greater than the length of . + -or- + The is not large enough to contain bytes strting + at the specified . + + + The stream has been disposed. + + + An I/O error occurred. + + + + + Writes a sequence of bytes to the stream and advances the current + position within this stream by the number of bytes written. + + The buffer to write. + The offset of the first byte to write. + The number of bytes to write. + + is null. + + + is less than zero or greater than the length of . + -or- + The is not large enough to contain bytes strting + at the specified . + + + The stream has been disposed. + + + The stream does not support writing. + + + An I/O error occurred. + + + + + Writes a sequence of bytes to the stream and advances the current + position within this stream by the number of bytes written. + + A task that represents the asynchronous write operation. + The buffer to write. + The offset of the first byte to write. + The number of bytes to write. + The cancellation token. + + is null. + + + is less than zero or greater than the length of . + -or- + The is not large enough to contain bytes strting + at the specified . + + + The stream has been disposed. + + + The stream does not support writing. + + + An I/O error occurred. + + + + + Clears all output buffers for this stream and causes any buffered data to be written + to the underlying device. + + + The stream has been disposed. + + + The stream does not support writing. + + + An I/O error occurred. + + + + + Clears all output buffers for this stream and causes any buffered data to be written + to the underlying device. + + A task that represents the asynchronous flush operation. + The cancellation token. + + The stream has been disposed. + + + The stream does not support writing. + + + An I/O error occurred. + + + + + Sets the position within the current stream. + + The new position within the stream. + The offset into the stream relative to the . + The origin to seek from. + + The stream does not support seeking. + + + + + Sets the length of the stream. + + The desired length of the stream in bytes. + + The stream does not support setting the length. + + + + + Releases the unmanaged resources used by the and + optionally releases the managed resources. + + true to release both managed and unmanaged resources; + false to release only the unmanaged resources. + + + + A message envelope containing a brief summary of the message. + + + The envelope of a message contains information such as the + date the message was sent, the subject of the message, + the sender of the message, who the message was sent to, + which message(s) the message may be in reply to, + and the message id. + + + + + Initializes a new instance of the class. + + + Creates a new . + + + + + Gets the address(es) that the message is from. + + + Gets the address(es) that the message is from. + + The address(es) that the message is from. + + + + Gets the actual sender(s) of the message. + + + The senders may differ from the addresses in if + the message was sent by someone on behalf of someone else. + + The actual sender(s) of the message. + + + + Gets the address(es) that replies should be sent to. + + + The senders of the message may prefer that replies are sent + somewhere other than the address they used to send the message. + + The address(es) that replies should be sent to. + + + + Gets the list of addresses that the message was sent to. + + + Gets the list of addresses that the message was sent to. + + The address(es) that the message was sent to. + + + + Gets the list of addresses that the message was carbon-copied to. + + + Gets the list of addresses that the message was carbon-copied to. + + The address(es) that the message was carbon-copied to. + + + + Gets the list of addresses that the message was blind-carbon-copied to. + + + Gets the list of addresses that the message was blind-carbon-copied to. + + The address(es) that the message was carbon-copied to. + + + + The Message-Id that the message is replying to. + + + The Message-Id that the message is replying to. + + The Message-Id that the message is replying to. + + + + Gets the date that the message was sent on, if available. + + + Gets the date that the message was sent on, if available. + + The date the message was sent. + + + + Gets the ID of the message, if available. + + + Gets the ID of the message, if available. + + The message identifier. + + + + Gets the subject of the message. + + + Gets the subject of the message. + + The subject. + + + + Returns a that represents the current . + + + The returned string can be parsed by . + The syntax of the string returned, while similar to IMAP's ENVELOPE syntax, + is not completely compatible. + + A that represents the current . + + + + Tries to parse the given text into a new instance. + + + Parses an Envelope value from the specified text. + This syntax, while similar to IMAP's ENVELOPE syntax, is not + completely compatible. + + true, if the envelope was successfully parsed, false otherwise. + The text to parse. + The parsed envelope. + + is null. + + + + + A request for fetching various properties of a message. + + + A request for fetching various properties of a message. + + + + + Initializes a new instance of the class. + + + Creates a new . + + + + + Initializes a new instance of the class. + + + Creates a new . + + The items to fetch. + + + + Initializes a new instance of the class. + + + Creates a new . + + The items to fetch. + The specific set of headers to fetch. + + is null. + + + One or more of the specified is invalid. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The items to fetch. + The specific set of headers to fetch. + + is null. + + + One or more of the specified is invalid. + + + + + Get or set the mod-sequence value that indicates the last known state of the messages being requested. + + + Gets or sets the mod-sequence value that indicates the last known state of the messages being requested. + If this property is set, the results returned by Fetch + or FetchAsync will only include the message summaries which + have a higher mod-sequence value than the one specified. + If the mail store supports quick resynchronization and the application has enabled this feature via + , then the Fetch or FetchAsync method + will emit events for messages that were expunged from the folder after + the change specified by the mod-sequence value. + It should be noted that if another client has modified any message in the folder, the mail service may choose + to return information that was not explicitly requested. It is therefore important to be prepared to handle both + additional fields on a for messages that were requested as well as summaries for + messages that were not requested at all. + + The mod-sequence value that indicates the last known state of the messages being requested. + + + + Get or set the message summary items to fetch. + + + Gets or sets the message summary items to fetch. + + The message summary items. + + + + Get the set of headers that will be fetched. + + + Gets the set of headers that will be fetched. + + The set of headers to be fetched. + + + + A folder access mode. + + + A folder access mode. + + + + + + + + The folder is not open. + + + + + The folder is read-only. + + + + + The folder is read/write. + + + + + Folder attributes as used by . + + + Folder attributes as used by . + + + + + The folder does not have any attributes. + + + + + It is not possible for any subfolders to exist under the folder. + + + + + It is not possible to select the folder. + + + + + The folder has been marked as possibly containing new messages + since the folder was last selected. + + + + + The folder does not contain any new messages since the folder + was last selected. + + + + + The folder does not exist, but is simply a place-holder. + + + + + The folder is subscribed. + + + + + The folder is remote. + + + + + The folder has subfolders. + + + + + The folder does not have any subfolders. + + + + + The folder is a special "All" folder containing an aggregate of all messages. + + + + + The folder is a special "Archive" folder. + + + + + The folder is the special "Drafts" folder. + + + + + The folder is the special "Flagged" folder. + + + + + The folder is the special "Important" folder. + + + + + The folder is the special "Inbox" folder. + + + + + The folder is the special "Junk" folder. + + + + + The folder is the special "Sent" folder. + + + + + The folder is the special "Trash" folder. + + + + + Event args used when a is created. + + + Event args used when a is created. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The newly created folder. + + is null. + + + + + Get the folder that was just created. + + + Gets the folder that was just created. + + The folder. + + + + An optional feature that an may support. + + + An optional feature that an may support. + + + + + Indicates that the folder supports access rights. + + + + + Indicates that the folder allows arbitrary annotations to be set on a message. + + + + + Indicates that the folder allows arbitrary metadata to be set. + + + + + Indicates that the folder uses modification sequences for every state change of a message. + + + + + Indicates that the folder supports quick resynchronization when opening. + + + + + Indicates that the folder supports quotas. + + + + + Indicates that the folder supports sorting messages. + + + + + Indicates that the folder supports threading messages. + + + + + Indicates that the folder supports the use of UTF-8. + + + + + A folder namespace. + + + A folder namespace. + + + + + The directory separator for this folder namespace. + + + The directory separator for this folder namespace. + + + + + The base path for this folder namespace. + + + The base path for this folder namespace. + + + + + Initializes a new instance of the class. + + + Creates a new folder namespace. + + The directory separator. + The folder path. + + is null. + + + + + A read-only collection of folder namespaces. + + + A read-only collection of folder namespaces. + + + + + Initializes a new instance of the class. + + + Creates a new . + + + + + Gets the number of folder namespaces contained in the collection. + + + Gets the number of folder namespaces contained in the collection. + + The count. + + + + Adds the specified namespace. + + + Adds the specified namespace. + + The namespace to add. + + is null. + + + + + Removes all namespaces from the collection. + + + Removes all namespaces from the collection. + + + + + Checks if the collection contains the specified namespace. + + + Checks if the collection contains the specified namespace. + + true if the specified namespace exists; + otherwise false. + The namespace. + + is null. + + + + + Removes the first occurance of the specified namespace. + + + Removes the first occurance of the specified namespace. + + true if the frst occurance of the specified + namespace was removed; otherwise false. + The namespace. + + is null. + + + + + Gets the at the specified index. + + + Gets the at the specified index. + + The folder namespace at the specified index. + The index. + + is null. + + + is out of range. + + + + + Gets the enumerator. + + + Gets the enumerator. + + The enumerator. + + + + Gets the enumerator. + + + Gets the enumerator. + + The enumerator. + + + + Returns a that represents the current . + + + Returns a that represents the current . + + A that represents the current . + + + + The exception that is thrown when a folder could not be found. + + + This exception is thrown by . + + + + + Initializes a new instance of the class. + + + Deserializes a . + + The serialization info. + The streaming context. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The error message. + The name of the folder. + The inner exception. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The error message. + The name of the folder. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The name of the folder. + + is null. + + + + + Gets the name of the folder that could not be found. + + + Gets the name of the folder that could not be found. + + The name of the folder. + + + + When overridden in a derived class, sets the + with information about the exception. + + + Serializes the state of the . + + The serialization info. + The streaming context. + + is null. + + + + + The exception that is thrown when a folder is not open. + + + This exception is thrown when an operation on a folder could not be completed + due to the folder being in a closed state. For example, the + + method will throw a if the folder is not + current open. + + + + + Initializes a new instance of the class. + + + Deserializes a . + + The serialization info. + The streaming context. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The folder name. + The minimum folder access required by the operation. + The error message. + The inner exception. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The folder name. + The minimum folder access required by the operation. + The error message. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The folder name. + The minimum folder access required by the operation. + + is null. + + + + + Get the name of the folder. + + + Gets the name of the folder. + + The name of the folder. + + + + Get the minimum folder access required by the operation. + + + Gets the minimum folder access required by the operation. + + The minimum required folder access. + + + + When overridden in a derived class, sets the + with information about the exception. + + + Serializes the state of the . + + The serialization info. + The streaming context. + + is null. + + + + + A folder quota. + + + A is returned by . + + + + + + + + Initializes a new instance of the class. + + + Creates a new with the specified root. + + The quota root. + + + + Get the quota root. + + + Gets the quota root. If the quota root is null, then + it suggests that the folder does not have a quota. + + + + + The quota root. + + + + Get or set the message limit. + + + Gets or sets the message limit. + + + + + The message limit. + + + + Get or set the storage limit, in kilobytes. + + + Gets or sets the storage limit, in kilobytes. + + + + + The storage limit, in kilobytes. + + + + Get or set the current message count. + + + Gets or sets the current message count. + + + + + The current message count. + + + + Gets or sets the size of the current storage, in kilobytes. + + + Gets or sets the size of the current storage, in kilobytes. + + + + + The size of the current storage, in kilobytes. + + + + Event args used when a is renamed. + + + Event args used when a is renamed. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The old name of the folder. + The new name of the folder. + + is null. + -or- + is null. + + + + + The old name of the folder. + + + The old name of the folder. + + The old name. + + + + The new name of the folder. + + + The new name of the folder. + + The new name. + + + + A set of headers. + + + A set of headers. + + + + + A set of headers that only includes all headers. + + + When used with a , this pre-computed set of headers can be used + to fetch the entire list of headers for a message. + + + + + A set of headers that only includes the standard envelope headers. + + + When used with a , this pre-computed set of headers can be used + to fetch the standard envelope headers for a message. + + + + + A set of headers that only includes the References header. + + + When used with a , this pre-computed set of headers can be used + to fetch the References header for a message. Generally, this should be used in + combination with in order to have all of the + information needed to thread messages using the + threading algorithm. + + + + + Initializes a new instance of the class. + + + Creates a new . + + + + + Initializes a new instance of the class. + + + Creates a new . + + The headers to include. + + + + Initializes a new instance of the class. + + + Creates a new . + + The headers to include. + + + + Get the number of headers in the set. + + + Gets the number of headers in the set. + + The number of headers. + + + + Get or set whether this set of headers is meant to be excluded when used with a . + + + Get or set whether this set of headers is meant to be excluded when used with a . + + true if the headers are meant to be excluded; otherwise, false. + + The operation is invalid because the is read-only. + + + + + Get whether or not the set of headers is read-only. + + + Gets whether or not the set of headers is read-only. + + true if this instance is read only; otherwise, false. + + + + Add the specified header. + + + Adds the specified header to the set of headers. + + true if the header was added to the set; otherwise, false. + The header to add. + + is not a valid . + + + The operation is invalid because the is read-only. + + + + + Add the specified header. + + + Adds the specified header to the set of headers. + + true if the header was added to the set; otherwise, false. + The header to add. + + is null. + + + The operation is invalid because the is read-only. + + + + + Add the specified header. + + + Adds the specified header to the set of headers. + + The header to add. + + is null. + + + The operation is invalid because the is read-only. + + + + + Add a collection of headers. + + + Adds the specified headers to the set of headers. + + The headers to add. + + is null. + + + One or more of the specified is invalid. + + + The operation is invalid because the is read-only. + + + + + Add a collection of headers. + + + Adds the specified headers to the set of headers. + + The headers to add. + + is null. + + + One or more of the specified is invalid. + + + The operation is invalid because the is read-only. + + + + + Clear the set of headers. + + + Clears the set of headers. + + + The operation is invalid because the is read-only. + + + + + Copy all of the headers in the to the specified array. + + + Copies all of the headers within the into the array, + starting at the specified array index. + + The array to copy the headers to. + The index into the array. + + is null. + + + is out of range. + + + + + Check if the set of headers contains the specified header. + + + Determines whether or not the set of headers contains the specified header. + + true if the specified header exists; + otherwise false. + The header identifier. + + is not a valid . + + + + + Check if the set of headers contains the specified header. + + + Determines whether or not the set of headers contains the specified header. + + true if the specified header exists; + otherwise false. + The name of the header. + + is null. + + + + + Remove the specified header. + + + Removes the specified header if it exists. + + true if the specified header was removed; + otherwise false. + The header. + + is not a valid . + + + The operation is invalid because the is read-only. + + + + + Remove the specified header. + + + Removes the specified header if it exists. + + true if the specified header was removed; + otherwise false. + The header. + + is null. + + + The operation is invalid because the is read-only. + + + + + Get an enumerator for the set of headers. + + + Gets an enumerator for the set of headers. + + The enumerator. + + + + Get an enumerator for the set of headers. + + + Gets an enumerator for the set of headers. + + The enumerator. + + + + An authentication secret. + + + An authentication secret. + + + + + Get the starting offset of the secret within a buffer. + + + Gets the starting offset of the secret within a buffer. + + The start offset of the secret. + + + + Get the length of the secret within a buffer. + + + Gets the length of the secret within a buffer. + + The length of the secret. + + + + Create a new . + + + Creates a new . + + The start index of the secret. + The length of the secret. + + + + An interface for detecting authentication secrets. + + + An interface for detecting authentication secrets. + + + + + Detect a list of secrets within a buffer. + + + Detects a list of secrets within a buffer. + + The buffer. + The buffer offset. + The length of the buffer. + A list of secrets. + + + + A request for appending a message to a folder. + + + A request for appending a message to a folder. + + + + + Get the message that should be appended to the folder. + + + Gets the message that should be appended to the folder. + + The message. + + + + Get or set the message flags that should be set on the message. + + + Gets or sets the message flags that should be set on the message. + + The message flags. + + + + Get or set the keywords that should be set on the message. + + + Gets or sets the keywords that should be set on the message. + + The keywords. + + + + Get or set the timestamp that should be used by folder as the . + + + Gets or sets the timestamp that should be used by folder as the . + + The date and time to use for the INTERNALDATE or null if it should be left up to the folder to decide. + + + + Get or set the list of annotations that should be set on the message. + + + Gets or sets the list of annotations that should be set on the message. + + This feature is not supported by all folders. + Use with the enum value + to determine if this feature is supported. + + + The list of annotations. + + + + Get or set the transfer progress reporting mechanism. + + + Gets or sets the transfer progress reporting mechanism. + + The transfer progress mechanism. + + + + A request for fetching various properties of a message. + + + A request for fetching various properties of a message. + + + + + Get or set the mod-sequence value that indicates the last known state of the messages being requested. + + + Gets or sets the mod-sequence value that indicates the last known state of the messages being requested. + If this property is set, the results returned by Fetch + or FetchAsync will only include the message summaries which + have a higher mod-sequence value than the one specified. + If the mail store supports quick resynchronization and the application has enabled this feature via + , then the Fetch or FetchAsync method + will emit events for messages that were expunged from the folder after + the change specified by the mod-sequence value. + It should be noted that if another client has modified any message in the folder, the mail service may choose + to return information that was not explicitly requested. It is therefore important to be prepared to handle both + additional fields on a for messages that were requested as well as summaries for + messages that were not requested at all. + + The mod-sequence value that indicates the last known state of the messages being requested. + + + + Get or set the message summary items to fetch. + + + Gets or sets the message summary items to fetch. + + The message summary items. + + + + Get the set of headers that will be fetched. + + + Gets the set of headers that will be fetched. + + The set of headers to be fetched. + + + + An interface for a mailbox folder as used by . + + + Implemented by message stores such as + + + + + Gets an object that can be used to synchronize access to the folder. + + + Gets an object that can be used to synchronize access to the folder. + + The sync root. + + + + Get the parent folder. + + + Root-level folders do not have a parent folder. + + The parent folder. + + + + Get the folder attributes. + + + Gets the folder attributes. + + The folder attributes. + + + + Get the annotation access level. + + + If annotations are supported, this property can be used to determine whether or not + the supports reading and writing annotations. + + The annotation access level. + + + + Get the supported annotation scopes. + + + If annotations are supported, this property can be used to determine which + annotation scopes are supported by the . + + The supported annotation scopes. + + + + Get the maximum size of annotation values supported by the folder. + + + If annotations are supported, this property can be used to determine the + maximum size of annotation values supported by the . + + The maximum size of annotation values supported by the folder. + + + + Get the permanent flags. + + + The permanent flags are the message flags that will persist between sessions. + If the flag is set, then the folder allows + storing of user-defined (custom) message flags. + + The permanent flags. + + + + Get the permanent keywords. + + + The permanent keywords are the keywords that will persist between sessions. + If the flag is set in , + then the folder allows storing of user-defined keywords as well. + + The permanent keywords. + + + + Get the accepted flags. + + + The accepted flags are the message flags that will be accepted and persist + for the current session. For the set of flags that will persist between + sessions, see the property. + + The accepted flags. + + + + Get the accepted keywords. + + + The accepted keywords are the keywords that will be accepted and persist + for the current session. For the set of keywords that will persist between + sessions, see the property. + + The accepted keywords. + + + + Get the directory separator. + + + Gets the directory separator. + + The directory separator. + + + + Get the read/write access of the folder. + + + Gets the read/write access of the folder. + + The read/write access. + + + + Get whether or not the folder is a namespace folder. + + + Gets whether or not the folder is a namespace folder. + + true if the folder is a namespace folder; otherwise, false. + + + + Get the full name of the folder. + + + This is the equivalent of the full path of a file on a file system. + + The full name of the folder. + + + + Get the name of the folder. + + + This is the equivalent of the file name of a file on the file system. + + The name of the folder. + + + + Get the unique identifier for the folder, if available. + + + Gets a unique identifier for the folder, if available. This is useful for clients + implementing a message cache that want to track the folder after it is renamed by another + client. + This property will only be available if the server supports the + OBJECTID extension. + + The unique folder identifier. + + + + Get whether or not the folder is subscribed. + + + Gets whether or not the folder is subscribed. + + true if the folder is subscribed; otherwise, false. + + + + Get whether or not the folder is currently open. + + + Gets whether or not the folder is currently open. + + true if the folder is currently open; otherwise, false. + + + + Get whether or not the folder exists. + + + Gets whether or not the folder exists. + + true if the folder exists; otherwise, false. + + + + Get the highest mod-sequence value of all messages in the mailbox. + + + Gets the highest mod-sequence value of all messages in the mailbox. + + The highest mod-sequence value. + + + + Get the Unique ID validity. + + + UIDs are only valid so long as the UID validity value remains unchanged. If and when + the folder's is changed, a client MUST discard its cache of UIDs + along with any summary information that it may have and re-query the folder. + The will only be set after the folder has been opened. + + The UID validity. + + + + Get the UID that the next message that is added to the folder will be assigned. + + + This value will only be set after the folder has been opened. + + The next UID. + + + + Get the maximum size of a message that can be appended to the folder. + + + Gets the maximum size of a message that can be appended to the folder. + If the value is not set, then the limit is unspecified. + + The append limit. + + + + Get the size of the folder. + + + Gets the size of the folder in bytes. + If the value is not set, then the size is unspecified. + + The size. + + + + Get the index of the first unread message in the folder. + + + This value will only be set after the folder has been opened. + + The index of the first unread message. + + + + Get the number of unread messages in the folder. + + + Gets the number of unread messages in the folder. + This value will only be set after calling + + with . + + The number of unread messages. + + + + Get the number of recently delivered messages in the folder. + + + Gets the number of recently delivered messages in the folder. + + This value will only be set after calling + + with . + + The number of recently delivered messages. + + + + Get the total number of messages in the folder. + + + Gets the total number of messages in the folder. + + + + + The total number of messages. + + + + Get the threading algorithms supported by the folder. + + + Get the threading algorithms supported by the folder. + + The supported threading algorithms. + + + + Determine whether or not an supports a feature. + + + Determines whether or not an supports a feature. + + The desired feature. + true if the feature is supported; otherwise, false. + + + + Opens the folder using the requested folder access. + + + This variant of the + method is meant for quick resynchronization of the folder. Before calling this method, + the method MUST be called. + You should also make sure to add listeners to the and + events to get notifications of changes since + the last time the folder was opened. + + The state of the folder. + The requested folder access. + The last known value. + The last known value. + The last known list of unique message identifiers. + The cancellation token. + + + + Asynchronously opens the folder using the requested folder access. + + + This variant of the + method is meant for quick resynchronization of the folder. Before calling this method, + the method MUST be called. + You should also make sure to add listeners to the and + events to get notifications of changes since + the last time the folder was opened. + + The state of the folder. + The requested folder access. + The last known value. + The last known value. + The last known list of unique message identifiers. + The cancellation token. + + + + Open the folder using the requested folder access. + + + Opens the folder using the requested folder access. + + The state of the folder. + The requested folder access. + The cancellation token. + + + + Asynchronously open the folder using the requested folder access. + + + Asynchronously opens the folder using the requested folder access. + + The state of the folder. + The requested folder access. + The cancellation token. + + + + Close the folder, optionally expunging the messages marked for deletion. + + + Closes the folder, optionally expunging the messages marked for deletion. + + If set to true, expunge. + The cancellation token. + + + + Asynchronously close the folder, optionally expunging the messages marked for deletion. + + + Asynchronously closes the folder, optionally expunging the messages marked for deletion. + + An asynchronous task context. + If set to true, expunge. + The cancellation token. + + + + Create a new subfolder with the given name. + + + Creates a new subfolder with the given name. + + The created folder. + The name of the folder to create. + true if the folder will be used to contain messages; otherwise, false. + The cancellation token. + + + + Asynchronously create a new subfolder with the given name. + + + Asynchronously creates a new subfolder with the given name. + + The created folder. + The name of the folder to create. + true if the folder will be used to contain messages; otherwise, false. + The cancellation token. + + + + Create a new subfolder with the given name. + + + Creates a new subfolder with the given name. + + The created folder. + The name of the folder to create. + A list of special uses for the folder being created. + The cancellation token. + + + + Asynchronously create a new subfolder with the given name. + + + Asynchronously creates a new subfolder with the given name. + + The created folder. + The name of the folder to create. + A list of special uses for the folder being created. + The cancellation token. + + + + Create a new subfolder with the given name. + + + Creates a new subfolder with the given name. + + The created folder. + The name of the folder to create. + The special use for the folder being created. + The cancellation token. + + + + Asynchronously create a new subfolder with the given name. + + + Asynchronously creates a new subfolder with the given name. + + The created folder. + The name of the folder to create. + The special use for the folder being created. + The cancellation token. + + + + Rename the folder. + + + Renames the folder. + + The new parent folder. + The new name of the folder. + The cancellation token. + + + + Asynchronously rename the folder. + + + Asynchronously renames the folder. + + An asynchronous task context. + The new parent folder. + The new name of the folder. + The cancellation token. + + + + Delete the folder. + + + Deletes the folder. + + The cancellation token. + + + + Asynchronously delete the folder. + + + Asynchronously deletes the folder. + + An asynchronous task context. + The cancellation token. + + + + Subscribe to the folder. + + + Subscribes to the folder. + + The cancellation token. + + + + Asynchronously subscribe to the folder. + + + Asynchronously subscribes to the folder. + + An asynchronous task context. + The cancellation token. + + + + Unsubscribe from the folder. + + + Unsubscribes from the folder. + + The cancellation token. + + + + Asynchronously unsubscribe from the folder. + + + Asynchronously unsubscribes from the folder. + + An asynchronous task context. + The cancellation token. + + + + Get the subfolders. + + + Gets the subfolders as well as queries the server for the status of the requested items. + When the argument is non-empty, this has the equivalent functionality + of calling and then calling + on each of the returned folders. + Using this method is potentially more efficient than querying the status of each returned folder. + + The subfolders. + The status items to pre-populate. + If set to true, only subscribed folders will be listed. + The cancellation token. + + + + Asynchronously get the subfolders. + + + Asynchronously gets the subfolders as well as queries the server for the status of the requested items. + When the argument is non-empty, this has the equivalent functionality + of calling and then calling + on each of the returned folders. + + The subfolders. + The status items to pre-populate. + If set to true, only subscribed folders will be listed. + The cancellation token. + + + + Get the subfolders. + + + Gets the subfolders. + + The subfolders. + If set to true, only subscribed folders will be listed. + The cancellation token. + + + + Asynchronously get the subfolders. + + + Asynchronously gets the subfolders. + + The subfolders. + If set to true, only subscribed folders will be listed. + The cancellation token. + + + + Get the specified subfolder. + + + Gets the specified subfolder. + + The subfolder. + The name of the subfolder. + The cancellation token. + + + + Asynchronously get the specified subfolder. + + + Asynchronously gets the specified subfolder. + + The subfolder. + The name of the subfolder. + The cancellation token. + + + + Force the server to flush its state for the folder. + + + Forces the server to flush its state for the folder. + + The cancellation token. + + + + Asynchronously force the server to flush its state for the folder. + + + Asynchronously forces the server to flush its state for the folder. + + An asynchronous task context. + The cancellation token. + + + + Update the values of the specified items. + + + Updates the values of the specified items. + The method + MUST NOT be used on a folder that is already in the opened state. Instead, other ways + of getting the desired information should be used. + For example, a common use for the + method is to get the number of unread messages in the folder. When the folder is open, however, it is + possible to use the + method to query for the list of unread messages. + + The items to update. + The cancellation token. + + + + Asynchronously update the values of the specified items. + + + Updates the values of the specified items. + The method + MUST NOT be used on a folder that is already in the opened state. Instead, other ways + of getting the desired information should be used. + For example, a common use for the + method is to get the number of unread messages in the folder. When the folder is open, however, it is + possible to use the + method to query for the list of unread messages. + + An asynchronous task context. + The items to update. + The cancellation token. + + + + Get the complete access control list for the folder. + + + Gets the complete access control list for the folder. + + The access control list. + The cancellation token. + + + + Asynchronously get the complete access control list for the folder. + + + Asynchronously gets the complete access control list for the folder. + + The access control list. + The cancellation token. + + + + Get the access rights for a particular identifier. + + + Gets the access rights for a particular identifier. + + The access rights. + The identifier name. + The cancellation token. + + + + Asynchronously get the access rights for a particular identifier. + + + Asynchronously gets the access rights for a particular identifier. + + The access rights. + The identifier name. + The cancellation token. + + + + Get the access rights for the current authenticated user. + + + Gets the access rights for the current authenticated user. + + The access rights. + The cancellation token. + + + + Asynchronously get the access rights for the current authenticated user. + + + Asynchronously gets the access rights for the current authenticated user. + + The access rights. + The cancellation token. + + + + Add access rights for the specified identity. + + + Adds the given access rights for the specified identity. + + The identity name. + The access rights. + The cancellation token. + + + + Asynchronously add access rights for the specified identity. + + + Asynchronously adds the given access rights for the specified identity. + + An asynchronous task context. + The identity name. + The access rights. + The cancellation token. + + + + Remove access rights for the specified identity. + + + Removes the given access rights for the specified identity. + + The identity name. + The access rights. + The cancellation token. + + + + Asynchronously remove access rights for the specified identity. + + + Asynchronously removes the given access rights for the specified identity. + + An asynchronous task context. + The identity name. + The access rights. + The cancellation token. + + + + Set the access rights for the specified identity. + + + Sets the access rights for the specified identity. + + The identity name. + The access rights. + The cancellation token. + + + + Asynchronously set the access rights for the sepcified identity. + + + Asynchronously sets the access rights for the specified identity. + + An asynchronous task context. + The identity name. + The access rights. + The cancellation token. + + + + Remove all access rights for the given identity. + + + Removes all access rights for the given identity. + + The identity name. + The cancellation token. + + + + Asynchronously remove all access rights for the given identity. + + + Asynchronously removes all access rights for the given identity. + + An asynchronous task context. + The identity name. + The cancellation token. + + + + Get the quota information for the folder. + + + Gets the quota information for the folder. + To determine if a quotas are supported, check the + property. + + The folder quota. + The cancellation token. + + + + Asynchronously get the quota information for the folder. + + + Asynchronously gets the quota information for the folder. + To determine if a quotas are supported, check the + property. + + The folder quota. + The cancellation token. + + + + Set the quota limits for the folder. + + + Sets the quota limits for the folder. + To determine if a quotas are supported, check the + property. + + The updated folder quota. + If not null, sets the maximum number of messages to allow. + If not null, sets the maximum storage size (in kilobytes). + The cancellation token. + + + + Asynchronously set the quota limits for the folder. + + + Asynchronously sets the quota limits for the folder. + To determine if a quotas are supported, check the + property. + + The updated folder quota. + If not null, sets the maximum number of messages to allow. + If not null, sets the maximum storage size (in kilobytes). + The cancellation token. + + + + Gets the specified metadata. + + + Gets the specified metadata. + + The requested metadata value. + The metadata tag. + The cancellation token. + + + + Asynchronously gets the specified metadata. + + + Asynchronously gets the specified metadata. + + The requested metadata value. + The metadata tag. + The cancellation token. + + + + Gets the specified metadata. + + + Gets the specified metadata. + + The requested metadata. + The metadata tags. + The cancellation token. + + + + Asynchronously gets the specified metadata. + + + Asynchronously gets the specified metadata. + + The requested metadata. + The metadata tags. + The cancellation token. + + + + Gets the specified metadata. + + + Gets the specified metadata. + + The requested metadata. + The metadata options. + The metadata tags. + The cancellation token. + + + + Asynchronously gets the specified metadata. + + + Asynchronously gets the specified metadata. + + The requested metadata. + The metadata options. + The metadata tags. + The cancellation token. + + + + Sets the specified metadata. + + + Sets the specified metadata. + + The metadata. + The cancellation token. + + + + Asynchronously sets the specified metadata. + + + Asynchronously sets the specified metadata. + + An asynchronous task context. + The metadata. + The cancellation token. + + + + Expunge the folder, permanently removing all messages marked for deletion. + + + Expunges the folder, permanently removing all messages marked for deletion. + Normally, an event will be emitted for each + message that is expunged. However, if the mail store supports the quick + resynchronization feature and it has been enabled via the + method, then + the event will be emitted rather than the + event. + + The cancellation token. + + + + Asynchronously expunge the folder, permanently removing all messages marked for deletion. + + + Asynchronously expunges the folder, permanently removing all messages marked for deletion. + Normally, an event will be emitted for + each message that is expunged. However, if the mail store supports the quick + resynchronization feature and it has been enabled via the + method, then + the event will be emitted rather than the + event. + + An asynchronous task context. + The cancellation token. + + + + Expunge the specified uids, permanently removing them from the folder. + + + Expunges the specified uids, permanently removing them from the folder. + Normally, an event will be emitted for + each message that is expunged. However, if the mail store supports the quick + resynchronization feature and it has been enabled via the + method, then + the event will be emitted rather than the + event. + + The message uids. + The cancellation token. + + + + Asynchronously expunge the specified uids, permanently removing them from the folder. + + + Asynchronously expunges the specified uids, permanently removing them from the folder. + Normally, an event will be emitted for + each message that is expunged. However, if the mail store supports the quick + resynchronization feature and it has been enabled via the + method, then + the event will be emitted rather than the + event. + + An asynchronous task context. + The message uids. + The cancellation token. + + + + Append a message to the folder. + + + Appends a message to the folder and returns the UniqueId assigned to the message. + + The UID of the appended message, if available; otherwise, null. + The append request. + The cancellation token. + + + + Asynchronously append a message to the folder. + + + Asynchronously appends a message to the folder and returns the UniqueId assigned to the message. + + The UID of the appended message, if available; otherwise, null. + The append request. + The cancellation token. + + + + Append a message to the folder. + + + Appends a message to the folder and returns the UniqueId assigned to the message. + + The UID of the appended message, if available; otherwise, null. + The formatting options. + The append request. + The cancellation token. + + + + Asynchronously append a message to the folder. + + + Asynchronously appends a message to the folder and returns the UniqueId assigned to the message. + + The UID of the appended message, if available; otherwise, null. + The formatting options. + The append request. + The cancellation token. + + + + Append multiple messages to the folder. + + + Appends multiple messages to the folder and returns the UniqueIds assigned to each of the messages. + + The UIDs of the appended messages, if available; otherwise, an empty array. + The append requests. + The cancellation token. + + + + Asynchronously append multiple messages to the folder. + + + Asynchronously appends multiple messages to the folder and returns the UniqueIds assigned to each of the messages. + + The UID of the appended message, if available; otherwise, an empty array. + The append requests. + The cancellation token. + + + + Append multiple messages to the folder. + + + Appends multiple messages to the folder and returns the UniqueIds assigned to each of the messages. + + The UIDs of the appended messages, if available; otherwise, an empty array. + The formatting options. + The append requests. + The cancellation token. + + + + Asynchronously append multiple messages to the folder. + + + Asynchronously appends multiple messages to the folder and returns the UniqueIds assigned to each of the messages. + + The UID of the appended message, if available; otherwise, an empty array. + The formatting options. + The append requests. + The cancellation token. + + + + Replace a message in the folder. + + + Replaces a message in the folder and returns the UniqueId assigned to the new message. + + The UID of the new message, if available; otherwise, null. + The UID of the message to be replaced. + The replace request. + The cancellation token. + + + + Asynchronously replace a message in the folder. + + + Asynchronously replaces a message in the folder and returns the UniqueId assigned to the new message. + + The UID of the appended message, if available; otherwise, null. + The UID of the message to be replaced. + The replace request. + The cancellation token. + + + + Replace a message in the folder. + + + Replaces a message in the folder and returns the UniqueId assigned to the new message. + + The UID of the new message, if available; otherwise, null. + The formatting options. + The UID of the message to be replaced. + The replace request. + The cancellation token. + + + + Asynchronously replace a message in the folder. + + + Asynchronously replaces a message in the folder and returns the UniqueId assigned to the new message. + + The UID of the new message, if available; otherwise, null. + The formatting options. + The UID of the message to be replaced. + The replace request. + The cancellation token. + + + + Replace a message in the folder. + + + Replaces a message in the folder and returns the UniqueId assigned to the new message. + + The UID of the new message, if available; otherwise, null. + The index of the message to be replaced. + The replace request. + The cancellation token. + + + + Asynchronously replace a message in the folder. + + + Asynchronously replaces a message in the folder and returns the UniqueId assigned to the new message. + + The UID of the appended message, if available; otherwise, null. + The index of the message to be replaced. + The replace request. + The cancellation token. + + + + Replace a message in the folder. + + + Replaces a message in the folder and returns the UniqueId assigned to the new message. + + The UID of the new message, if available; otherwise, null. + The formatting options. + The index of the message to be replaced. + The replace request. + The cancellation token. + + + + Asynchronously replace a message in the folder. + + + Asynchronously replaces a message in the folder and returns the UniqueId assigned to the new message. + + The UID of the new message, if available; otherwise, null. + The formatting options. + The index of the message to be replaced. + The replace request. + The cancellation token. + + + + Copy the specified message to the destination folder. + + + Copies the specified message to the destination folder. + + The UID of the message in the destination folder, if available; otherwise, null. + The UID of the message to copy. + The destination folder. + The cancellation token. + + + + Asynchronously copy the specified message to the destination folder. + + + Asynchronously copies the specified message to the destination folder. + + The UID of the message in the destination folder, if available; otherwise, null. + The UID of the message to copy. + The destination folder. + The cancellation token. + + + + Copy the specified messages to the destination folder. + + + Copies the specified messages to the destination folder. + + The UID mapping of the messages in the destination folder, if available; otherwise an empty mapping. + The UIDs of the messages to copy. + The destination folder. + The cancellation token. + + + + Asynchronously copy the specified messages to the destination folder. + + + Asynchronously copies the specified messages to the destination folder. + + The UID mapping of the messages in the destination folder, if available; otherwise an empty mapping. + The UIDs of the messages to copy. + The destination folder. + The cancellation token. + + + + Move the specified message to the destination folder. + + + Moves the specified message to the destination folder. + + The UID of the message in the destination folder, if available; otherwise, null. + The UID of the message to move. + The destination folder. + The cancellation token. + + + + Asynchronously move the specified message to the destination folder. + + + Asynchronously moves the specified message to the destination folder. + + The UID of the message in the destination folder, if available; otherwise, null. + The UID of the message to move. + The destination folder. + The cancellation token. + + + + Move the specified messages to the destination folder. + + + Moves the specified messages to the destination folder. + + The UID mapping of the messages in the destination folder, if available; otherwise an empty mapping. + The UIDs of the messages to copy. + The destination folder. + The cancellation token. + + + + Asynchronously move the specified messages to the destination folder. + + + Asynchronously moves the specified messages to the destination folder. + + The UID mapping of the messages in the destination folder, if available; otherwise an empty mapping. + The UIDs of the messages to copy. + The destination folder. + The cancellation token. + + + + Copy the specified message to the destination folder. + + + Copies the specified message to the destination folder. + + The index of the message to copy. + The destination folder. + The cancellation token. + + + + Asynchronously copy the specified message to the destination folder. + + + Asynchronously copies the specified message to the destination folder. + + An asynchronous task context. + The indexes of the message to copy. + The destination folder. + The cancellation token. + + + + Copy the specified messages to the destination folder. + + + Copies the specified messages to the destination folder. + + The indexes of the messages to copy. + The destination folder. + The cancellation token. + + + + Asynchronously copy the specified messages to the destination folder. + + + Asynchronously copies the specified messages to the destination folder. + + An asynchronous task context. + The indexes of the messages to copy. + The destination folder. + The cancellation token. + + + + Move the specified message to the destination folder. + + + Moves the specified message to the destination folder. + + The index of the message to move. + The destination folder. + The cancellation token. + + + + Asynchronously move the specified message to the destination folder. + + + Asynchronously moves the specified message to the destination folder. + + An asynchronous task context. + The index of the message to move. + The destination folder. + The cancellation token. + + + + Move the specified messages to the destination folder. + + + Moves the specified messages to the destination folder. + + The indexes of the messages to move. + The destination folder. + The cancellation token. + + + + Asynchronously move the specified messages to the destination folder. + + + Asynchronously moves the specified messages to the destination folder. + + An asynchronous task context. + The indexes of the messages to move. + The destination folder. + The cancellation token. + + + + Fetch the message summaries for the specified message UIDs. + + + Fetches the message summaries for the specified message UIDs. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + + + + An enumeration of summaries for the requested messages. + The UIDs. + The fetch request. + The cancellation token. + + + + Asynchronously fetch the message summaries for the specified message UIDs. + + + Asynchronously fetches the message summaries for the specified message + UIDs. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The UIDs. + The fetch request. + The cancellation token. + + + + Fetch the message summaries for the specified message indexes. + + + Fetches the message summaries for the specified message indexes. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The indexes. + The fetch request. + The cancellation token. + + + + Asynchronously fetch the message summaries for the specified message indexes. + + + Asynchronously fetches the message summaries for the specified message + indexes. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The indexes. + The fetch request. + The cancellation token. + + + + Fetch the message summaries for the messages between the two indexes, inclusive. + + + Fetches the message summaries for the messages between the two + indexes, inclusive. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The minimum index. + The maximum index, or -1 to specify no upper bound. + The fetch request. + The cancellation token. + + + + Asynchronously fetch the message summaries for the messages between the two indexes, inclusive. + + + Asynchronously fetches the message summaries for the messages between + the two indexes, inclusive. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The minimum index. + The maximum index, or -1 to specify no upper bound. + The fetch request. + The cancellation token. + + + + Get the specified message headers. + + + Gets the specified message headers. + + The message headers. + The UID of the message. + The cancellation token. + The progress reporting mechanism. + + + + Asynchronously get the specified message headers. + + + Asynchronously gets the specified message headers. + + The message headers. + The UID of the message. + The cancellation token. + The progress reporting mechanism. + + + + Get the specified body part headers. + + + Gets the specified body part headers. + + The body part headers. + The UID of the message. + The body part. + The cancellation token. + The progress reporting mechanism. + + + + Asynchronously get the specified body part headers. + + + Asynchronously gets the specified body part headers. + + The body part headers. + The UID of the message. + The body part. + The cancellation token. + The progress reporting mechanism. + + + + Get the specified message headers. + + + Gets the specified message headers. + + The message headers. + The index of the message. + The cancellation token. + The progress reporting mechanism. + + + + Asynchronously get the specified message headers. + + + Asynchronously gets the specified message headers. + + The message headers. + The index of the message. + The cancellation token. + The progress reporting mechanism. + + + + Get the specified body part headers. + + + Gets the specified body part headers. + + The body part headers. + The index of the message. + The body part. + The cancellation token. + The progress reporting mechanism. + + + + Asynchronously get the specified body part headers. + + + Asynchronously gets the specified body part headers. + + The body part headers. + The index of the message. + The body part. + The cancellation token. + The progress reporting mechanism. + + + + Get the specified message. + + + Gets the specified message. + + + + + The message. + The UID of the message. + The cancellation token. + The progress reporting mechanism. + + + + Asynchronously get the specified message. + + + Asynchronously gets the specified message. + + + + + The message. + The UID of the message. + The cancellation token. + The progress reporting mechanism. + + + + Get the specified message. + + + Gets the specified message. + + + + + The message. + The index of the message. + The cancellation token. + The progress reporting mechanism. + + + + Asynchronously get the specified message. + + + Asynchronously gets the specified message. + + + + + The message. + The index of the message. + The cancellation token. + The progress reporting mechanism. + + + + Get the specified body part. + + + Gets the specified body part. + + + + + The body part. + The UID of the message. + The body part. + The cancellation token. + The progress reporting mechanism. + + + + Asynchronously get the specified body part. + + + Asynchronously gets the specified body part. + + + + + The body part. + The UID of the message. + The body part. + The cancellation token. + The progress reporting mechanism. + + + + Get the specified body part. + + + Gets the specified body part. + + The body part. + The index of the message. + The body part. + The cancellation token. + The progress reporting mechanism. + + + + Asynchronously get the specified body part. + + + Asynchronously gets the specified body part. + + The body part. + The index of the message. + The body part. + The cancellation token. + The progress reporting mechanism. + + + + Get a message stream. + + + Gets a message stream. + + + + + The message stream. + The UID of the message. + The cancellation token. + The progress reporting mechanism. + + + + Asynchronously get a message stream. + + + Asynchronously gets a message stream. + + + + + The message stream. + The UID of the message. + The cancellation token. + The progress reporting mechanism. + + + + Get a message stream. + + + Gets a message stream. + + + + + The message stream. + The index of the message. + The cancellation token. + The progress reporting mechanism. + + + + Asynchronously get a message stream. + + + Asynchronously gets a message stream. + + + + + The message stream. + The index of the message. + The cancellation token. + The progress reporting mechanism. + + + + Get a substream of the specified message. + + + Gets a substream of the message. If the starting offset is beyond + the end of the message, an empty stream is returned. If the number of + bytes desired extends beyond the end of the message, a truncated stream + will be returned. + + The stream. + The UID of the message. + The starting offset of the first desired byte. + The number of bytes desired. + The cancellation token. + The progress reporting mechanism. + + + + Asynchronously get a substream of the specified message. + + + Asynchronously gets a substream of the message. If the starting offset is beyond + the end of the message, an empty stream is returned. If the number of + bytes desired extends beyond the end of the message, a truncated stream + will be returned. + + The stream. + The UID of the message. + The starting offset of the first desired byte. + The number of bytes desired. + The cancellation token. + The progress reporting mechanism. + + + + Get a substream of the specified message. + + + Gets a substream of the message. If the starting offset is beyond + the end of the message, an empty stream is returned. If the number of + bytes desired extends beyond the end of the message, a truncated stream + will be returned. + + The stream. + The index of the message. + The starting offset of the first desired byte. + The number of bytes desired. + The cancellation token. + The progress reporting mechanism. + + + + Asynchronously get a substream of the specified message. + + + Asynchronously gets a substream of the message. If the starting offset is beyond + the end of the message, an empty stream is returned. If the number of + bytes desired extends beyond the end of the message, a truncated stream + will be returned. + + The stream. + The index of the message. + The starting offset of the first desired byte. + The number of bytes desired. + The cancellation token. + The progress reporting mechanism. + + + + Get a body part as a stream. + + + Gets a body part as a stream. + + + + + The body part stream. + The UID of the message. + The desired body part. + The cancellation token. + The progress reporting mechanism. + + + + Asynchronously get a body part as a stream. + + + Asynchronously gets a body part as a stream. + + + + + The body part stream. + The UID of the message. + The desired body part. + The cancellation token. + The progress reporting mechanism. + + + + Get a body part as a stream. + + + Gets a body part as a stream. + + The body part stream. + The index of the message. + The desired body part. + The cancellation token. + The progress reporting mechanism. + + + + Asynchronously get a body part as a stream. + + + Asynchronously gets a body part as a stream. + + The body part stream. + The index of the message. + The desired body part. + The cancellation token. + The progress reporting mechanism. + + + + Get a substream of the specified body part. + + + Gets a substream of the body part. If the starting offset is beyond + the end of the body part, an empty stream is returned. If the number of + bytes desired extends beyond the end of the body part, a truncated stream + will be returned. + + The stream. + The UID of the message. + The desired body part. + The starting offset of the first desired byte. + The number of bytes desired. + The cancellation token. + The progress reporting mechanism. + + + + Asynchronously get a substream of the specified body part. + + + Asynchronously gets a substream of the body part. If the starting offset is beyond + the end of the body part, an empty stream is returned. If the number of + bytes desired extends beyond the end of the body part, a truncated stream + will be returned. + + The stream. + The UID of the message. + The desired body part. + The starting offset of the first desired byte. + The number of bytes desired. + The cancellation token. + The progress reporting mechanism. + + + + Get a substream of the specified body part. + + + Gets a substream of the body part. If the starting offset is beyond + the end of the body part, an empty stream is returned. If the number of + bytes desired extends beyond the end of the body part, a truncated stream + will be returned. + + The stream. + The index of the message. + The desired body part. + The starting offset of the first desired byte. + The number of bytes desired. + The cancellation token. + The progress reporting mechanism. + + + + Asynchronously get a substream of the specified body part. + + + Asynchronously gets a substream of the body part. If the starting offset is beyond + the end of the body part, an empty stream is returned. If the number of + bytes desired extends beyond the end of the body part, a truncated stream + will be returned. + + The stream. + The index of the message. + The desired body part. + The starting offset of the first desired byte. + The number of bytes desired. + The cancellation token. + The progress reporting mechanism. + + + + Get a substream of the specified message. + + + Gets a substream of the specified message. + For more information about how to construct the , + see Section 6.4.5 of RFC3501. + + + + + The stream. + The UID of the message. + The desired section of the message. + The cancellation token. + The progress reporting mechanism. + + + + Asynchronously get a substream of the specified message. + + + Asynchronously gets a substream of the specified message. + For more information about how to construct the , + see Section 6.4.5 of RFC3501. + + + + + The stream. + The UID of the message. + The desired section of the message. + The cancellation token. + The progress reporting mechanism. + + + + Get a substream of the specified message. + + + Gets a substream of the specified message. If the starting offset is beyond + the end of the specified section of the message, an empty stream is returned. If + the number of bytes desired extends beyond the end of the section, a truncated + stream will be returned. + For more information about how to construct the , + see Section 6.4.5 of RFC3501. + + The stream. + The UID of the message. + The desired section of the message. + The starting offset of the first desired byte. + The number of bytes desired. + The cancellation token. + The progress reporting mechanism. + + + + Asynchronously get a substream of the specified message. + + + Asynchronously gets a substream of the specified message. If the starting + offset is beyond the end of the specified section of the message, an empty stream + is returned. If the number of bytes desired extends beyond the end of the section, + a truncated stream will be returned. + For more information about how to construct the , + see Section 6.4.5 of RFC3501. + + The stream. + The UID of the message. + The desired section of the message. + The starting offset of the first desired byte. + The number of bytes desired. + The cancellation token. + The progress reporting mechanism. + + + + Get a substream of the specified message. + + + Gets a substream of the specified message. + For more information about how to construct the , + see Section 6.4.5 of RFC3501. + + The stream. + The index of the message. + The desired section of the message. + The cancellation token. + The progress reporting mechanism. + + + + Asynchronously get a substream of the specified message. + + + Asynchronously gets a substream of the specified message. + For more information about how to construct the , + see Section 6.4.5 of RFC3501. + + The stream. + The index of the message. + The desired section of the message. + The cancellation token. + The progress reporting mechanism. + + + + Get a substream of the specified message. + + + Gets a substream of the specified message. If the starting offset is beyond + the end of the specified section of the message, an empty stream is returned. If + the number of bytes desired extends beyond the end of the section, a truncated + stream will be returned. + For more information about how to construct the , + see Section 6.4.5 of RFC3501. + + The stream. + The index of the message. + The desired section of the message. + The starting offset of the first desired byte. + The number of bytes desired. + The cancellation token. + The progress reporting mechanism. + + + + Asynchronously get a substream of the specified message. + + + Asynchronously gets a substream of the specified message. If the starting + offset is beyond the end of the specified section of the message, an empty stream + is returned. If the number of bytes desired extends beyond the end of the section, + a truncated stream will be returned. + For more information about how to construct the , + see Section 6.4.5 of RFC3501. + + The stream. + The index of the message. + The desired section of the message. + The starting offset of the first desired byte. + The number of bytes desired. + The cancellation token. + The progress reporting mechanism. + + + + Store message flags and keywords for a message. + + + Updates the message flags and keywords for a message. + + true if the store operation was successful; otherwise, false. + The UID of the message. + The message flags and keywords to store. + The cancellation token. + + + + Asynchronously store message flags and keywords for a message. + + + Asynchronously updates the message flags and keywords for a message. + + true if the store operation was successful; otherwise, false. + The UID of the message. + The message flags and keywords to store. + The cancellation token. + + + + Store message flags and keywords for a set of messages. + + + Updates the message flags and keywords for a set of messages. + + The UIDs of the messages that were not updated. + The message UIDs. + The message flags and keywords to store. + The cancellation token. + + + + Asynchronously store message flags and keywords for a set of messages. + + + Asynchronously updates the message flags and keywords for a set of messages. + + The UIDs of the messages that were not updated. + The message UIDs. + The message flags and keywords to store. + The cancellation token. + + + + Store message flags and keywords for a message. + + + Updates the message flags and keywords for a message. + + true if the store operation was successful; otherwise, false. + The index of the message. + The message flags and keywords to store. + The cancellation token. + + + + Asynchronously store message flags and keywords for a message. + + + Asynchronously updates the message flags and keywords for a message. + + true if the store operation was successful; otherwise, false. + The index of the message. + The message flags and keywords to store. + The cancellation token. + + + + Store message flags and keywords for a set of messages. + + + Updates the message flags and keywords for a set of messages. + + The indexes of the messages that were not updated. + The message indexes. + The message flags and keywords to store. + The cancellation token. + + + + Asynchronously store message flags and keywords for a set of messages. + + + Asynchronously updates the message flags and keywords for a set of message. + + The indexes of the messages that were not updated. + The message indexes. + The message flags and keywords to store. + The cancellation token. + + + + Store GMail-style labels for a message. + + + Updates the GMail-style labels for a message. + + true if the store operation was successful; otherwise, false. + The UID of the message. + The labels to store. + The cancellation token. + + + + Asynchronously store GMail-style labels for a message. + + + Asynchronously updates the GMail-style labels for a message. + + true if the store operation was successful; otherwise, false. + The UID of the message. + The labels to store. + The cancellation token. + + + + Store GMail-style labels for a set of messages. + + + Updates the GMail-style labels for a set of messages. + + The UIDs of the messages that were not updated. + The message UIDs. + The labels to store. + The cancellation token. + + + + Asynchronously store GMail-style labels for a set of messages. + + + Asynchronously updates the GMail-style labels for a set of messages. + + The UIDs of the messages that were not updated. + The message UIDs. + The labels to store. + The cancellation token. + + + + Store GMail-style labels for a message. + + + Updates the GMail-style labels for a message. + + true if the store operation was successful; otherwise, false. + The index of the message. + The labels to store. + The cancellation token. + + + + Asynchronously store GMail-style labels for a message. + + + Asynchronously updates the GMail-style labels for a message. + + true if the store operation was successful; otherwise, false. + The index of the message. + The labels to store. + The cancellation token. + + + + Store GMail-style labels for a set of messages. + + + Updates the GMail-style labels for a set of messages. + + The indexes of the messages that were not updated. + The message indexes. + The labels to store. + The cancellation token. + + + + Asynchronously store GMail-style labels for a set of messages. + + + Asynchronously updates the GMail-style labels for a set of message. + + The indexes of the messages that were not updated. + The message indexes. + The labels to store. + The cancellation token. + + + + Store the annotations for the specified message. + + + Stores the annotations for the specified message. + + The UID of the message. + The annotations to store. + The cancellation token. + + + + Asynchronously store the annotations for the specified message. + + + Asynchronously stores the annotations for the specified message. + + An asynchronous task context. + The UID of the message. + The annotations to store. + The cancellation token. + + + + Store the annotations for the specified messages. + + + Stores the annotations for the specified messages. + + The UIDs of the messages. + The annotations to store. + The cancellation token. + + + + Asynchronously store the annotations for the specified messages. + + + Asynchronously stores the annotations for the specified messages. + + An asynchronous task context. + The UIDs of the messages. + The annotations to store. + The cancellation token. + + + + Store the annotations for the specified messages only if their mod-sequence value is less than the specified value. + + + Stores the annotations for the specified messages only if their mod-sequence value is less than the specified value. + + The unique IDs of the messages that were not updated. + The UIDs of the messages. + The mod-sequence value. + The annotations to store. + The cancellation token. + + + + Asynchronously store the annotations for the specified messages only if their mod-sequence value is less than the specified value. + + + Asynchronously stores the annotations for the specified messages only if their mod-sequence value is less than the specified value. + + The unique IDs of the messages that were not updated. + The UIDs of the messages. + The mod-sequence value. + The annotations to store. + The cancellation token. + + + + Store the annotations for the specified message. + + + Stores the annotations for the specified message. + + The index of the message. + The annotations to store. + The cancellation token. + + + + Asynchronously store the annotations for the specified message. + + + Asynchronously stores the annotations for the specified message. + + An asynchronous task context. + The indexes of the message. + The annotations to store. + The cancellation token. + + + + Store the annotations for the specified messages. + + + Stores the annotations for the specified messages. + + The indexes of the messages. + The annotations to store. + The cancellation token. + + + + Asynchronously store the annotations for the specified messages. + + + Asynchronously stores the annotations for the specified messages. + + An asynchronous task context. + The indexes of the messages. + The annotations to store. + The cancellation token. + + + + Store the annotations for the specified messages only if their mod-sequence value is less than the specified value. + + + Stores the annotations for the specified messages only if their mod-sequence value is less than the specified value. + + The indexes of the messages that were not updated. + The indexes of the messages. + The mod-sequence value. + The annotations to store. + The cancellation token. + + + + Asynchronously store the annotations for the specified messages only if their mod-sequence value is less than the specified value. + + + Asynchronously stores the annotations for the specified messages only if their mod-sequence value is less than the specified value.s + + The indexes of the messages that were not updated. + The indexes of the messages. + The mod-sequence value. + The annotations to store. + The cancellation token. + + + + Search the folder for messages matching the specified query. + + + The returned array of unique identifiers can be used with methods such as + . + + An array of matching UIDs. + The search query. + The cancellation token. + + + + Asynchronously search the folder for messages matching the specified query. + + + The returned array of unique identifiers can be used with methods such as + . + + An array of matching UIDs. + The search query. + The cancellation token. + + + + Search the subset of UIDs in the folder for messages matching the specified query. + + + The returned array of unique identifiers can be used with methods such as + . + + An array of matching UIDs. + The subset of UIDs + The search query. + The cancellation token. + + + + Asynchronously search the subset of UIDs in the folder for messages matching the specified query. + + + The returned array of unique identifiers can be used with methods such as + . + + An array of matching UIDs. + The subset of UIDs + The search query. + The cancellation token. + + + + Search the folder for messages matching the specified query. + + + Searches the folder for messages matching the specified query, + returning only the specified search results. + + The search results. + The search options. + The search query. + The cancellation token. + + + + Asynchronously search the folder for messages matching the specified query. + + + Asynchronously searches the folder for messages matching the specified query, + returning only the specified search results. + + The search results. + The search options. + The search query. + The cancellation token. + + + + Search the subset of UIDs in the folder for messages matching the specified query. + + + Searches the fsubset of UIDs in the folder for messages matching the specified query, + returning only the specified search results. + + The search results. + The search options. + The subset of UIDs + The search query. + The cancellation token. + + + + Asynchronously search the subset of UIDs in the folder for messages matching the specified query. + + + Asynchronously searches the fsubset of UIDs in the folder for messages matching the specified query, + returning only the specified search results. + + The search results. + The search options. + The subset of UIDs + The search query. + The cancellation token. + + + + Sort messages matching the specified query. + + + The returned array of unique identifiers will be sorted in the preferred order and + can be used with . + + An array of matching UIDs in the specified sort order. + The search query. + The sort order. + The cancellation token. + + + + Asynchronously sort messages matching the specified query. + + + The returned array of unique identifiers will be sorted in the preferred order and + can be used with . + + An array of matching UIDs in the specified sort order. + The search query. + The sort order. + The cancellation token. + + + + Sort messages matching the specified query. + + + The returned array of unique identifiers will be sorted in the preferred order and + can be used with . + + An array of matching UIDs in the specified sort order. + The subset of UIDs + The search query. + The sort order. + The cancellation token. + + + + Asynchronously sort messages matching the specified query. + + + The returned array of unique identifiers will be sorted in the preferred order and + can be used with . + + An array of matching UIDs in the specified sort order. + The subset of UIDs + The search query. + The sort order. + The cancellation token. + + + + Sort messages matching the specified query. + + + Searches the folder for messages matching the specified query, returning the search results in the specified sort order. + + The search results. + The search options. + The search query. + The sort order. + The cancellation token. + + + + Asynchronously sort messages matching the specified query. + + + Asynchronously searches the folder for messages matching the specified query, returning the search results in the specified sort order. + + The search results. + The search options. + The search query. + The sort order. + The cancellation token. + + + + Sort messages matching the specified query. + + + Searches the folder for messages matching the specified query, returning the search results in the specified sort order. + + The search results. + The search options. + The subset of UIDs + The search query. + The sort order. + The cancellation token. + + + + Asynchronously sort messages matching the specified query. + + + Asynchronously searches the folder for messages matching the specified query, + returning the search results in the specified sort order. + + The search results. + The search options. + The subset of UIDs + The search query. + The sort order. + The cancellation token. + + + + Thread the messages in the folder that match the search query using the specified threading algorithm. + + + The can be used with methods such as + . + + An array of message threads. + The threading algorithm to use. + The search query. + The cancellation token. + + + + Asynchronously thread the messages in the folder that match the search query using the specified threading algorithm. + + + The can be used with methods such as + . + + An array of message threads. + The threading algorithm to use. + The search query. + The cancellation token. + + + + Thread the messages in the folder that match the search query using the specified threading algorithm. + + + The can be used with methods such as + . + + An array of message threads. + The subset of UIDs + The threading algorithm to use. + The search query. + The cancellation token. + + + + Asynchronously thread the messages in the folder that match the search query using the specified threading algorithm. + + + The can be used with methods such as + . + + An array of message threads. + The subset of UIDs + The threading algorithm to use. + The search query. + The cancellation token. + + + + Occurs when the folder is opened. + + + Emitted when the folder is opened. + + + + + Occurs when the folder is closed. + + + Emitted when the folder is closed. + + + + + Occurs when the folder is deleted. + + + Emitted when the folder is deleted. + + + + + Occurs when the folder is renamed. + + + Emitted when the folder is renamed. + + + + + Occurs when the folder is subscribed. + + + Emitted when the folder is subscribed. + + + + + Occurs when the folder is unsubscribed. + + + Emitted when the folder is unsubscribed. + + + + + Occurs when a message is expunged from the folder. + + + Emitted when a message is expunged from the folder. + + + + + + + + Occurs when messages vanish from the folder. + + + Emitted when a messages vanish from the folder. + + + + + Occurs when flags changed on a message. + + + Emitted when flags changed on a message. + + + + + + + + Occurs when labels changed on a message. + + + Emitted when labels changed on a message. + + + + + Occurs when annotations changed on a message. + + + Emitted when annotations changed on a message. + + + + + Occurs when a message summary is fetched from the folder. + + + Emitted when a message summary is fetched from the folder. + When multiple message summaries are being fetched from a remote folder, + it is possible that the connection will drop or some other exception will + occur, causing the Fetch method to fail, requiring the client to request the + same set of message summaries again after it reconnects. This is obviously + inefficient. To alleviate this potential problem, this event will be emitted + as soon as the successfully retrieves the complete + for each requested message. + The Fetch + methods will return a list of all message summaries that any information was + retrieved for, regardless of whether or not all of the requested items were fetched, + therefore there may be a discrepency between the number of times this event is + emitetd and the number of summary items returned from the Fetch method. + + + + + Occurs when metadata changes. + + + The event is emitted when metadata changes. + + + + + Occurs when the mod-sequence changed on a message. + + + Emitted when the mod-sequence changed on a message. + + + + + Occurs when the highest mod-sequence changes. + + + The event is emitted whenever the value changes. + + + + + Occurs when the next UID changes. + + + Emitted when the property changes. + + + + + Occurs when the UID validity changes. + + + Emitted when the property changes. + + + + + Occurs when the ID changes. + + + Emitted when the property changes. + + + + + Occurs when the size of the folder changes. + + + Emitted when the property changes. + + + + + Occurs when the message count changes. + + + Emitted when the property changes. + + + + + + + + Occurs when the recent message count changes. + + + Emitted when the property changes. + + + + + Occurs when the message unread count changes. + + + Emitted when the property changes. + + + + + Extension methods for that provide backwards API compatability. + + + Extension methods for that provide backwards API compatability. + + + + + Append the specified message to the folder. + + + Appends the specified message to the folder and returns the UniqueId assigned to the message. + + The UID of the appended message, if available; otherwise, null. + The folder. + The message. + The message flags. + The cancellation token. + The progress reporting mechanism. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The does not exist. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously append the specified message to the folder. + + + Asynchronously appends the specified message to the folder and returns the UniqueId assigned to the message. + + The UID of the appended message, if available; otherwise, null. + The folder. + The message. + The message flags. + The cancellation token. + The progress reporting mechanism. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The does not exist. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Append the specified message to the folder. + + + Appends the specified message to the folder and returns the UniqueId assigned to the message. + + The UID of the appended message, if available; otherwise, null. + The folder. + The message. + The message flags. + The received date of the message. + The cancellation token. + The progress reporting mechanism. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The does not exist. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously append the specified message to the folder. + + + Asynchronously appends the specified message to the folder and returns the UniqueId assigned to the message. + + The UID of the appended message, if available; otherwise, null. + The folder. + The message. + The message flags. + The received date of the message. + The cancellation token. + The progress reporting mechanism. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The does not exist. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Append the specified message to the folder. + + + Appends the specified message to the folder and returns the UniqueId assigned to the message. + + The UID of the appended message, if available; otherwise, null. + The folder. + The message. + The message flags. + The received date of the message. + The message annotations. + The cancellation token. + The progress reporting mechanism. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The does not exist. + + + One or more does not define any properties. + " + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously append the specified message to the folder. + + + Asynchronously appends the specified message to the folder and returns the UniqueId assigned to the message. + + The UID of the appended message, if available; otherwise, null. + The folder. + The message. + The message flags. + The received date of the message. + The message annotations. + The cancellation token. + The progress reporting mechanism. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The does not exist. + + + One or more does not define any properties. + " + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Append the specified message to the folder. + + + Appends the specified message to the folder and returns the UniqueId assigned to the message. + + The UID of the appended message, if available; otherwise, null. + The folder. + The formatting options. + The message. + The message flags. + The cancellation token. + The progress reporting mechanism. + + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The does not exist. + + + Internationalized formatting was requested but has not been enabled. + + + The operation was canceled via the cancellation token. + + + Internationalized formatting was requested but is not supported by the server. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously append the specified message to the folder. + + + Asynchronously appends the specified message to the folder and returns the UniqueId assigned to the message. + + The UID of the appended message, if available; otherwise, null. + The folder. + The formatting options. + The message. + The message flags. + The cancellation token. + The progress reporting mechanism. + + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The does not exist. + + + Internationalized formatting was requested but has not been enabled. + + + The operation was canceled via the cancellation token. + + + Internationalized formatting was requested but is not supported by the server. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Append the specified message to the folder. + + + Appends the specified message to the folder and returns the UniqueId assigned to the message. + + The UID of the appended message, if available; otherwise, null. + The folder. + The formatting options. + The message. + The message flags. + The received date of the message. + The cancellation token. + The progress reporting mechanism. + + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The does not exist. + + + Internationalized formatting was requested but has not been enabled. + + + The operation was canceled via the cancellation token. + + + Internationalized formatting was requested but is not supported by the server. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously append the specified message to the folder. + + + Asynchronously appends the specified message to the folder and returns the UniqueId assigned to the message. + + The UID of the appended message, if available; otherwise, null. + The folder. + The formatting options. + The message. + The message flags. + The received date of the message. + The cancellation token. + The progress reporting mechanism. + + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The does not exist. + + + Internationalized formatting was requested but has not been enabled. + + + The operation was canceled via the cancellation token. + + + Internationalized formatting was requested but is not supported by the server. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Append the specified message to the folder. + + + Appends the specified message to the folder and returns the UniqueId assigned to the message. + + The UID of the appended message, if available; otherwise, null. + The folder. + The formatting options. + The message. + The message flags. + The received date of the message. + The message annotations. + The cancellation token. + The progress reporting mechanism. + + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The does not exist. + + + Internationalized formatting was requested but has not been enabled. + + + The operation was canceled via the cancellation token. + + + Internationalized formatting was requested but is not supported by the server. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously append the specified message to the folder. + + + Asynchronously appends the specified message to the folder and returns the UniqueId assigned to the message. + + The UID of the appended message, if available; otherwise, null. + The folder. + The formatting options. + The message. + The message flags. + The received date of the message. + The message annotations. + The cancellation token. + The progress reporting mechanism. + + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The does not exist. + + + Internationalized formatting was requested but has not been enabled. + + + The operation was canceled via the cancellation token. + + + Internationalized formatting was requested but is not supported by the server. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Append the specified messages to the folder. + + + Appends the specified messages to the folder and returns the UniqueIds assigned to the messages. + + The UIDs of the appended messages, if available; otherwise an empty array. + The folder. + The array of messages to append to the folder. + The message flags to use for each message. + The cancellation token. + The progress reporting mechanism. + + is null. + -or- + is null. + + + One or more of the is null. + -or- + The number of messages does not match the number of flags. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The does not exist. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously append the specified messages to the folder. + + + Asynchronously appends the specified messages to the folder and returns the UniqueIds assigned to the messages. + + The UIDs of the appended messages, if available; otherwise an empty array. + The folder. + The array of messages to append to the folder. + The message flags to use for each message. + The cancellation token. + The progress reporting mechanism. + + is null. + -or- + is null. + + + One or more of the is null. + -or- + The number of messages does not match the number of flags. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The does not exist. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Append the specified messages to the folder. + + + Appends the specified messages to the folder and returns the UniqueIds assigned to the messages. + + The UIDs of the appended messages, if available; otherwise an empty array. + The folder. + The array of messages to append to the folder. + The message flags to use for each of the messages. + The received dates to use for each of the messages. + The cancellation token. + The progress reporting mechanism. + + is null. + -or- + is null. + -or- + is null. + + + One or more of the is null. + -or- + The number of messages, flags, and dates do not match. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The does not exist. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously append the specified messages to the folder. + + + Asynchronously appends the specified messages to the folder and returns the UniqueIds assigned to the messages. + + The UIDs of the appended messages, if available; otherwise an empty array. + The folder. + The array of messages to append to the folder. + The message flags to use for each of the messages. + The received dates to use for each of the messages. + The cancellation token. + The progress reporting mechanism. + + is null. + -or- + is null. + -or- + is null. + + + One or more of the is null. + -or- + The number of messages, flags, and dates do not match. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The does not exist. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Append the specified messages to the folder. + + + Appends the specified messages to the folder and returns the UniqueIds assigned to the messages. + + The UIDs of the appended messages, if available; otherwise an empty array. + The folder. + The formatting options. + The array of messages to append to the folder. + The message flags to use for each message. + The cancellation token. + The progress reporting mechanism. + + is null. + -or- + is null. + -or- + is null. + + + One or more of the is null. + -or- + The number of messages does not match the number of flags. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The does not exist. + + + Internationalized formatting was requested but has not been enabled. + + + The operation was canceled via the cancellation token. + + + Internationalized formatting was requested but is not supported by the server. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously append the specified messages to the folder. + + + Asynchronously appends the specified messages to the folder and returns the UniqueIds assigned to the messages. + + The UIDs of the appended messages, if available; otherwise an empty array. + The folder. + The formatting options. + The array of messages to append to the folder. + The message flags to use for each message. + The cancellation token. + The progress reporting mechanism. + + is null. + -or- + is null. + -or- + is null. + + + One or more of the is null. + -or- + The number of messages does not match the number of flags. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The does not exist. + + + Internationalized formatting was requested but has not been enabled. + + + The operation was canceled via the cancellation token. + + + Internationalized formatting was requested but is not supported by the server. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Append the specified messages to the folder. + + + Appends the specified messages to the folder and returns the UniqueIds assigned to the messages. + + The UIDs of the appended messages, if available; otherwise an empty array. + The folder. + The formatting options. + The array of messages to append to the folder. + The message flags to use for each of the messages. + The received dates to use for each of the messages. + The cancellation token. + The progress reporting mechanism. + + is null. + -or- + is null. + -or- + is null. + -or- + is null. + + + One or more of the is null. + -or- + The number of messages, flags, and dates do not match. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The does not exist. + + + Internationalized formatting was requested but has not been enabled. + + + The operation was canceled via the cancellation token. + + + Internationalized formatting was requested but is not supported by the server. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously append the specified messages to the folder. + + + Asynchronously appends the specified messages to the folder and returns the UniqueIds assigned to the messages. + + The UIDs of the appended messages, if available; otherwise an empty array. + The folder. + The formatting options. + The array of messages to append to the folder. + The message flags to use for each of the messages. + The received dates to use for each of the messages. + The cancellation token. + The progress reporting mechanism. + + is null. + -or- + is null. + -or- + is null. + -or- + is null. + + + One or more of the is null. + -or- + The number of messages, flags, and dates do not match. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The does not exist. + + + Internationalized formatting was requested but has not been enabled. + + + The operation was canceled via the cancellation token. + + + Internationalized formatting was requested but is not supported by the server. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Replace a message in the folder. + + + Replaces the specified message in the folder and returns the UniqueId assigned to the new message. + + The UID of the new message, if available; otherwise, null. + The folder. + The UID of the message to be replaced. + The message. + The message flags. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + Internationalized formatting was requested but has not been enabled. + + + The does not exist. + + + The is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously replace a message in the folder. + + + Asynchronously replaces the specified message in the folder and returns the UniqueId assigned to the new message. + + The UID of the new message, if available; otherwise, null. + The folder. + The UID of the message to be replaced. + The message. + The message flags. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + Internationalized formatting was requested but has not been enabled. + + + The does not exist. + + + The is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Replace a message in the folder. + + + Replaces the specified message in the folder and returns the UniqueId assigned to the new message. + + The UID of the new message, if available; otherwise, null. + The folder. + The UID of the message to be replaced. + The message. + The message flags. + The received date of the message. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The does not exist. + + + The is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously replace a message in the folder. + + + Asynchronously replaces the specified message in the folder and returns the UniqueId assigned to the new message. + + The UID of the new message, if available; otherwise, null. + The folder. + The UID of the message to be replaced. + The message. + The message flags. + The received date of the message. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The does not exist. + + + The is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Replace a message in the folder. + + + Replaces the specified message in the folder and returns the UniqueId assigned to the new message. + + The UID of the new message, if available; otherwise, null. + The folder. + The formatting options. + The UID of the message to be replaced. + The message. + The message flags. + The cancellation token. + The progress reporting mechanism. + + is null. + -or- + is null. + + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + Internationalized formatting was requested but has not been enabled. + + + The does not exist. + + + The is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + Internationalized formatting was requested but is not supported by the server. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously replace a message in the folder. + + + Replaces the specified message in the folder and returns the UniqueId assigned to the new message. + + The UID of the new message, if available; otherwise, null. + The folder. + The formatting options. + The UID of the message to be replaced. + The message. + The message flags. + The cancellation token. + The progress reporting mechanism. + + is null. + -or- + is null. + + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + Internationalized formatting was requested but has not been enabled. + + + The does not exist. + + + The is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + Internationalized formatting was requested but is not supported by the server. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Replace a message in the folder. + + + Replaces the specified message in the folder and returns the UniqueId assigned to the new message. + + The UID of the new message, if available; otherwise, null. + The folder. + The formatting options. + The UID of the message to be replaced. + The message. + The message flags. + The received date of the message. + The cancellation token. + The progress reporting mechanism. + + is null. + -or- + is null. + + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + Internationalized formatting was requested but has not been enabled. + + + The does not exist. + + + The is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + Internationalized formatting was requested but is not supported by the server. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously replace a message in the folder. + + + Asynchronously replaces the specified message in the folder and returns the UniqueId assigned to the new message. + + The UID of the new message, if available; otherwise, null. + The folder. + The formatting options. + The UID of the message to be replaced. + The message. + The message flags. + The received date of the message. + The cancellation token. + The progress reporting mechanism. + + is null. + -or- + is null. + + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + Internationalized formatting was requested but has not been enabled. + + + The does not exist. + + + The is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + Internationalized formatting was requested but is not supported by the server. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Replace a message in the folder. + + + Replaces the specified message in the folder and returns the UniqueId assigned to the new message. + + The UID of the new message, if available; otherwise, null. + The folder. + The index of the message to be replaced. + The message. + The message flags. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is out of range. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + Internationalized formatting was requested but has not been enabled. + + + The does not exist. + + + The is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously replace a message in the folder. + + + Asynchronously replaces the specified message in the folder and returns the UniqueId assigned to the new message. + + The UID of the new message, if available; otherwise, null. + The folder. + The index of the message to be replaced. + The message. + The message flags. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is out of range. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + Internationalized formatting was requested but has not been enabled. + + + The does not exist. + + + The is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Replace a message in the folder. + + + Replaces the specified message in the folder and returns the UniqueId assigned to the new message. + + The UID of the new message, if available; otherwise, null. + The folder. + The index of the message to be replaced. + The message. + The message flags. + The received date of the message. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is out of range. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The does not exist. + + + The is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously replace a message in the folder. + + + Asynchronously replaces the specified message in the folder and returns the UniqueId assigned to the new message. + + The UID of the new message, if available; otherwise, null. + The folder. + The index of the message to be replaced. + The message. + The message flags. + The received date of the message. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is out of range. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The does not exist. + + + The is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Replace a message in the folder. + + + Replaces the specified message in the folder and returns the UniqueId assigned to the new message. + + The UID of the new message, if available; otherwise, null. + The folder. + The formatting options. + The index of the message to be replaced. + The message. + The message flags. + The cancellation token. + The progress reporting mechanism. + + is null. + -or- + is null. + + + is out of range. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + Internationalized formatting was requested but has not been enabled. + + + The does not exist. + + + The is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + Internationalized formatting was requested but is not supported by the server. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously replace a message in the folder. + + + Asynchronously replaces the specified message in the folder and returns the UniqueId assigned to the new message. + + The UID of the new message, if available; otherwise, null. + The folder. + The formatting options. + The index of the message to be replaced. + The message. + The message flags. + The cancellation token. + The progress reporting mechanism. + + is null. + -or- + is null. + + + is out of range. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + Internationalized formatting was requested but has not been enabled. + + + The does not exist. + + + The is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + Internationalized formatting was requested but is not supported by the server. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Replace a message in the folder. + + + Replaces the specified message in the folder and returns the UniqueId assigned to the new message. + + The UID of the new message, if available; otherwise, null. + The folder. + The formatting options. + The index of the message to be replaced. + The message. + The message flags. + The received date of the message. + The cancellation token. + The progress reporting mechanism. + + is null. + -or- + is null. + + + is out of range. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + Internationalized formatting was requested but has not been enabled. + + + The does not exist. + + + The is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + Internationalized formatting was requested but is not supported by the server. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously replace a message in the folder. + + + Replaces the specified message in the folder and returns the UniqueId assigned to the new message. + + The UID of the new message, if available; otherwise, null. + The folder. + The formatting options. + The index of the message to be replaced. + The message. + The message flags. + The received date of the message. + The cancellation token. + The progress reporting mechanism. + + is null. + -or- + is null. + + + is out of range. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + Internationalized formatting was requested but has not been enabled. + + + The does not exist. + + + The is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + Internationalized formatting was requested but is not supported by the server. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Fetch the message summaries for the specified message UIDs. + + + Fetches the message summaries for the specified message UIDs. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + + + + An enumeration of summaries for the requested messages. + The folder. + The UIDs. + The message summary items to fetch. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously fetch the message summaries for the specified message UIDs. + + + Asynchronously fetches the message summaries for the specified message + UIDs. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + + + + An enumeration of summaries for the requested messages. + The folder. + The UIDs. + The message summary items to fetch. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Fetch the message summaries for the specified message UIDs. + + + Fetches the message summaries for the specified message UIDs. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The folder. + The UIDs. + The message summary items to fetch. + The desired header fields. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + -or- + One or more of the specified is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously fetch the message summaries for the specified message UIDs. + + + Asynchronously fetches the message summaries for the specified message + UIDs. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The folder. + The UIDs. + The message summary items to fetch. + The desired header fields. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + -or- + One or more of the specified is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Fetch the message summaries for the specified message UIDs. + + + Fetches the message summaries for the specified message UIDs. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The folder. + The UIDs. + The message summary items to fetch. + The desired header fields. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + -or- + One or more of the specified is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously fetch the message summaries for the specified message UIDs. + + + Asynchronously fetches the message summaries for the specified message + UIDs. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The folder. + The UIDs. + The message summary items to fetch. + The desired header fields. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + -or- + One or more of the specified is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Fetch the message summaries for the specified message UIDs that have a + higher mod-sequence value than the one specified. + + + Fetches the message summaries for the specified message UIDs that + have a higher mod-sequence value than the one specified. + If the mail store supports quick resynchronization and the application has + enabled this feature via , + then this method will emit events for messages that + have vanished since the specified mod-sequence value. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The folder. + The UIDs. + The mod-sequence value. + The message summary items to fetch. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously fetch the message summaries for the specified message UIDs that have a + higher mod-sequence value than the one specified. + + + Asynchronously fetches the message summaries for the specified message UIDs that + have a higher mod-sequence value than the one specified. + If the mail store supports quick resynchronization and the application has + enabled this feature via , + then this method will emit events for messages that + have vanished since the specified mod-sequence value. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The folder. + The UIDs. + The mod-sequence value. + The message summary items to fetch. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Fetch the message summaries for the specified message UIDs that have a + higher mod-sequence value than the one specified. + + + Fetches the message summaries for the specified message UIDs that + have a higher mod-sequence value than the one specified. + If the mail store supports quick resynchronization and the application has + enabled this feature via , + then this method will emit events for messages that + have vanished since the specified mod-sequence value. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The folder. + The UIDs. + The mod-sequence value. + The message summary items to fetch. + The desired header fields. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + -or- + One or more of the specified is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously fetch the message summaries for the specified message UIDs that have a + higher mod-sequence value than the one specified. + + + Asynchronously fetches the message summaries for the specified message UIDs that + have a higher mod-sequence value than the one specified. + If the mail store supports quick resynchronization and the application has + enabled this feature via , + then this method will emit events for messages that + have vanished since the specified mod-sequence value. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The folder. + The UIDs. + The mod-sequence value. + The message summary items to fetch. + The desired header fields. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + -or- + One or more of the specified is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Fetch the message summaries for the specified message UIDs that have a + higher mod-sequence value than the one specified. + + + Fetches the message summaries for the specified message UIDs that + have a higher mod-sequence value than the one specified. + If the mail store supports quick resynchronization and the application has + enabled this feature via , + then this method will emit events for messages that + have vanished since the specified mod-sequence value. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The folder. + The UIDs. + The mod-sequence value. + The message summary items to fetch. + The desired header fields. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + -or- + One or more of the specified is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously fetch the message summaries for the specified message UIDs that have a + higher mod-sequence value than the one specified. + + + Asynchronously fetches the message summaries for the specified message UIDs that + have a higher mod-sequence value than the one specified. + If the mail store supports quick resynchronization and the application has + enabled this feature via , + then this method will emit events for messages that + have vanished since the specified mod-sequence value. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The folder. + The UIDs. + The mod-sequence value. + The message summary items to fetch. + The desired header fields. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + -or- + One or more of the specified is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Fetch the message summaries for the specified message indexes. + + + Fetches the message summaries for the specified message indexes. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The folder. + The indexes. + The message summary items to fetch. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously fetch the message summaries for the specified message indexes. + + + Asynchronously fetches the message summaries for the specified message + indexes. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The folder. + The indexes. + The message summary items to fetch. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Fetch the message summaries for the specified message indexes. + + + Fetches the message summaries for the specified message indexes. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The folder. + The indexes. + The message summary items to fetch. + The desired header fields. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + -or- + One or more of the specified is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously fetch the message summaries for the specified message indexes. + + + Asynchronously fetches the message summaries for the specified message + indexes. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The folder. + The indexes. + The message summary items to fetch. + The desired header fields. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + -or- + One or more of the specified is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Fetch the message summaries for the specified message indexes. + + + Fetches the message summaries for the specified message indexes. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The folder. + The indexes. + The message summary items to fetch. + The desired header fields. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + -or- + One or more of the specified is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously fetch the message summaries for the specified message indexes. + + + Asynchronously fetches the message summaries for the specified message + indexes. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The folder. + The indexes. + The message summary items to fetch. + The desired header fields. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + -or- + One or more of the specified is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Fetch the message summaries for the specified message indexes that have a + higher mod-sequence value than the one specified. + + + Fetches the message summaries for the specified message indexes that + have a higher mod-sequence value than the one specified. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The folder. + The indexes. + The mod-sequence value. + The message summary items to fetch. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously fetch the message summaries for the specified message indexes that have a + higher mod-sequence value than the one specified. + + + Asynchronously fetches the message summaries for the specified message + indexes that have a higher mod-sequence value than the one specified. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The folder. + The indexes. + The mod-sequence value. + The message summary items to fetch. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Fetch the message summaries for the specified message indexes that have a + higher mod-sequence value than the one specified. + + + Fetches the message summaries for the specified message indexes that + have a higher mod-sequence value than the one specified. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The folder. + The indexes. + The mod-sequence value. + The message summary items to fetch. + The desired header fields. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + -or- + One or more of the specified is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously fetch the message summaries for the specified message indexes + that have a higher mod-sequence value than the one specified. + + + Asynchronously fetches the message summaries for the specified message + indexes that have a higher mod-sequence value than the one specified. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The folder. + The indexes. + The mod-sequence value. + The message summary items to fetch. + The desired header fields. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + -or- + One or more of the specified is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Fetch the message summaries for the specified message indexes that + have a higher mod-sequence value than the one specified. + + + Fetches the message summaries for the specified message indexes that + have a higher mod-sequence value than the one specified. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The folder. + The indexes. + The mod-sequence value. + The message summary items to fetch. + The desired header fields. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + -or- + One or more of the specified is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously fetch the message summaries for the specified message indexes + that have a higher mod-sequence value than the one specified. + + + Asynchronously fetches the message summaries for the specified message + indexes that have a higher mod-sequence value than the one specified. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The folder. + The indexes. + The mod-sequence value. + The message summary items to fetch. + The desired header fields. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + -or- + One or more of the specified is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Fetch the message summaries for the messages between the two indexes, inclusive. + + + Fetches the message summaries for the messages between the two + indexes, inclusive. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The folder. + The minimum index. + The maximum index, or -1 to specify no upper bound. + The message summary items to fetch. + The cancellation token. + + is out of range. + -or- + is out of range. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously fetch the message summaries for the messages between the two indexes, inclusive. + + + Asynchronously fetches the message summaries for the messages between + the two indexes, inclusive. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The folder. + The minimum index. + The maximum index, or -1 to specify no upper bound. + The message summary items to fetch. + The cancellation token. + + is out of range. + -or- + is out of range. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Fetch the message summaries for the messages between the two indexes, inclusive. + + + Fetches the message summaries for the messages between the two + indexes, inclusive. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The folder. + The minimum index. + The maximum index, or -1 to specify no upper bound. + The message summary items to fetch. + The desired header fields. + The cancellation token. + + is out of range. + -or- + is out of range. + + + is null. + + + One or more of the specified is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously fetch the message summaries for the messages between the two indexes, inclusive. + + + Asynchronously fetches the message summaries for the messages between + the two indexes, inclusive. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The folder. + The minimum index. + The maximum index, or -1 to specify no upper bound. + The message summary items to fetch. + The desired header fields. + The cancellation token. + + is out of range. + -or- + is out of range. + + + is null. + + + One or more of the specified is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Fetch the message summaries for the messages between the two indexes, inclusive. + + + Fetches the message summaries for the messages between the two + indexes, inclusive. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The folder. + The minimum index. + The maximum index, or -1 to specify no upper bound. + The message summary items to fetch. + The desired header fields. + The cancellation token. + + is out of range. + -or- + is out of range. + + + is null. + + + One or more of the specified is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously fetch the message summaries for the messages between the two indexes, inclusive. + + + Asynchronously fetches the message summaries for the messages between + the two indexes, inclusive. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The folder. + The minimum index. + The maximum index, or -1 to specify no upper bound. + The message summary items to fetch. + The desired header fields. + The cancellation token. + + is out of range. + -or- + is out of range. + + + is null. + + + One or more of the specified is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Fetch the message summaries for the messages between the two indexes (inclusive) + that have a higher mod-sequence value than the one specified. + + + Fetches the message summaries for the messages between the two + indexes (inclusive) that have a higher mod-sequence value than the one + specified. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The folder. + The minimum index. + The maximum index, or -1 to specify no upper bound. + The mod-sequence value. + The message summary items to fetch. + The cancellation token. + + is out of range. + -or- + is out of range. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously fetch the message summaries for the messages between the two indexes + (inclusive) that have a higher mod-sequence value than the one specified. + + + Asynchronously fetches the message summaries for the messages between + the two indexes (inclusive) that have a higher mod-sequence value than the + one specified. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The folder. + The minimum index. + The maximum index, or -1 to specify no upper bound. + The mod-sequence value. + The message summary items to fetch. + The cancellation token. + + is out of range. + -or- + is out of range. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Fetch the message summaries for the messages between the two indexes (inclusive) + that have a higher mod-sequence value than the one specified. + + + Fetches the message summaries for the messages between the two + indexes (inclusive) that have a higher mod-sequence value than the one + specified. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The folder. + The minimum index. + The maximum index, or -1 to specify no upper bound. + The mod-sequence value. + The message summary items to fetch. + The desired header fields. + The cancellation token. + + is out of range. + -or- + is out of range. + + + is null. + + + One or more of the specified is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously fetch the message summaries for the messages between the two indexes + (inclusive) that have a higher mod-sequence value than the one specified. + + + Asynchronously fetches the message summaries for the messages between + the two indexes (inclusive) that have a higher mod-sequence value than the + one specified. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The folder. + The minimum index. + The maximum index, or -1 to specify no upper bound. + The mod-sequence value. + The message summary items to fetch. + The desired header fields. + The cancellation token. + + is out of range. + -or- + is out of range. + + + is null. + + + One or more of the specified is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Fetch the message summaries for the messages between the two indexes (inclusive) + that have a higher mod-sequence value than the one specified. + + + Fetches the message summaries for the messages between the two + indexes (inclusive) that have a higher mod-sequence value than the one + specified. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The folder. + The minimum index. + The maximum index, or -1 to specify no upper bound. + The mod-sequence value. + The message summary items to fetch. + The desired header fields. + The cancellation token. + + is out of range. + -or- + is out of range. + + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously fetch the message summaries for the messages between the two indexes + (inclusive) that have a higher mod-sequence value than the one specified. + + + Asynchronously fetches the message summaries for the messages between + the two indexes (inclusive) that have a higher mod-sequence value than the + one specified. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The folder. + The minimum index. + The maximum index, or -1 to specify no upper bound. + The mod-sequence value. + The message summary items to fetch. + The desired header fields. + The cancellation token. + + is out of range. + -or- + is out of range. + + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Add a set of flags to the specified message. + + + Adds a set of flags to the specified message. + + The folder. + The UID of the message. + The message flags to add. + If set to true, no events will be emitted. + The cancellation token. + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously add a set of flags to the specified message. + + + Asynchronously adds a set of flags to the specified message. + + An asynchronous task context. + The folder. + The UID of the message. + The message flags to add. + If set to true, no events will be emitted. + The cancellation token. + + is invalid. + + + The has been disposed. + + + The folder is not currently open in read-write mode. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Add a set of flags to the specified message. + + + Adds a set of flags to the specified message. + + The folder. + The UID of the message. + The message flags to add. + A set of user-defined flags to add. + If set to true, no events will be emitted. + The cancellation token. + + is invalid. + + + The has been disposed. + + + The folder is not currently open in read-write mode. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously add a set of flags to the specified message. + + + Asynchronously adds a set of flags to the specified message. + + An asynchronous task context. + The folder. + The UID of the message. + The message flags to add. + A set of user-defined flags to add. + If set to true, no events will be emitted. + The cancellation token. + + is invalid. + + + The has been disposed. + + + The folder is not currently open in read-write mode. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Add a set of flags to the specified messages. + + + Adds a set of flags to the specified messages. + + The folder. + The UIDs of the messages. + The message flags to add. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The folder is not currently open in read-write mode. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously add a set of flags to the specified messages. + + + Asynchronously adds a set of flags to the specified messages. + + An asynchronous task context. + The folder. + The UIDs of the messages. + The message flags to add. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The folder is not currently open in read-write mode. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Add a set of flags to the specified messages. + + + Adds a set of flags to the specified messages. + + The folder. + The UIDs of the messages. + The message flags to add. + A set of user-defined flags to add. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The folder is not currently open in read-write mode. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously add a set of flags to the specified messages. + + + Asynchronously adds a set of flags to the specified messages. + + An asynchronous task context. + The folder. + The UIDs of the messages. + The message flags to add. + A set of user-defined flags to add. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The folder is not currently open in read-write mode. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Remove a set of flags from the specified message. + + + Removes a set of flags from the specified message. + + The folder. + The UIDs of the message. + The message flags to remove. + If set to true, no events will be emitted. + The cancellation token. + + is invalid. + + + The has been disposed. + + + The folder is not currently open in read-write mode. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously remove a set of flags from the specified message. + + + Asynchronously removes a set of flags from the specified message. + + An asynchronous task context. + The folder. + The UID of the message. + The message flags to remove. + If set to true, no events will be emitted. + The cancellation token. + + is invalid. + + + The has been disposed. + + + The folder is not currently open in read-write mode. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Remove a set of flags from the specified message. + + + Removes a set of flags from the specified message. + + The folder. + The UIDs of the message. + The message flags to remove. + A set of user-defined flags to remove. + If set to true, no events will be emitted. + The cancellation token. + + is invalid. + + + The has been disposed. + + + The folder is not currently open in read-write mode. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously remove a set of flags from the specified message. + + + Asynchronously removes a set of flags from the specified message. + + An asynchronous task context. + The folder. + The UID of the message. + The message flags to remove. + A set of user-defined flags to remove. + If set to true, no events will be emitted. + The cancellation token. + + is invalid. + + + The has been disposed. + + + The folder is not currently open in read-write mode. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Remove a set of flags from the specified messages. + + + Removes a set of flags from the specified messages. + + The folder. + The UIDs of the messages. + The message flags to remove. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The folder is not currently open in read-write mode. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously remove a set of flags from the specified messages. + + + Asynchronously removes a set of flags from the specified messages. + + An asynchronous task context. + The folder. + The UIDs of the messages. + The message flags to remove. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The folder is not currently open in read-write mode. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Remove a set of flags from the specified messages. + + + Removes a set of flags from the specified messages. + + The folder. + The UIDs of the messages. + The message flags to remove. + A set of user-defined flags to remove. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The folder is not currently open in read-write mode. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously remove a set of flags from the specified messages. + + + Asynchronously removes a set of flags from the specified messages. + + An asynchronous task context. + The folder. + The UIDs of the messages. + The message flags to remove. + A set of user-defined flags to remove. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The folder is not currently open in read-write mode. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Set the flags of the specified message. + + + Sets the flags of the specified message. + + The folder. + The UIDs of the message. + The message flags to set. + If set to true, no events will be emitted. + The cancellation token. + + is invalid. + + + The has been disposed. + + + The folder is not currently open in read-write mode. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously set the flags of the specified message. + + + Asynchronously sets the flags of the specified message. + + An asynchronous task context. + The folder. + The UID of the message. + The message flags to set. + If set to true, no events will be emitted. + The cancellation token. + + is invalid. + + + The has been disposed. + + + The folder is not currently open in read-write mode. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Set the flags of the specified message. + + + Sets the flags of the specified message. + + The folder. + The UIDs of the message. + The message flags to set. + A set of user-defined flags to set. + If set to true, no events will be emitted. + The cancellation token. + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously set the flags of the specified message. + + + Asynchronously sets the flags of the specified message. + + An asynchronous task context. + The folder. + The UID of the message. + The message flags to set. + A set of user-defined flags to set. + If set to true, no events will be emitted. + The cancellation token. + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Set the flags of the specified messages. + + + Sets the flags of the specified messages. + + The folder. + The UIDs of the messages. + The message flags to set. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously set the flags of the specified messages. + + + Asynchronously sets the flags of the specified messages. + + An asynchronous task context. + The folder. + The UIDs of the messages. + The message flags to set. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Set the flags of the specified messages. + + + Sets the flags of the specified messages. + + The folder. + The UIDs of the messages. + The message flags to set. + A set of user-defined flags to set. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously set the flags of the specified messages. + + + Asynchronously sets the flags of the specified messages. + + An asynchronous task context. + The folder. + The UIDs of the messages. + The message flags to set. + A set of user-defined flags to set. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Add a set of flags to the specified messages only if their mod-sequence value is less than the specified value. + + + Adds a set of flags to the specified messages only if their mod-sequence value is less than the specified value. + + The unique IDs of the messages that were not updated. + The folder. + The UIDs of the messages. + The mod-sequence value. + The message flags to add. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously add a set of flags to the specified messages only if their mod-sequence value is less than the specified value. + + + Asynchronously adds a set of flags to the specified messages only if their mod-sequence value is less than the specified value. + + The unique IDs of the messages that were not updated. + The folder. + The UIDs of the messages. + The mod-sequence value. + The message flags to add. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Add a set of flags to the specified messages only if their mod-sequence value is less than the specified value. + + + Adds a set of flags to the specified messages only if their mod-sequence value is less than the specified value. + + The unique IDs of the messages that were not updated. + The folder. + The UIDs of the messages. + The mod-sequence value. + The message flags to add. + A set of user-defined flags to add. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously add a set of flags to the specified messages only if their mod-sequence value is less than the specified value. + + + Asynchronously adds a set of flags to the specified messages only if their mod-sequence value is less than the specified value. + + The unique IDs of the messages that were not updated. + The folder. + The UIDs of the messages. + The mod-sequence value. + The message flags to add. + A set of user-defined flags to add. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Remove a set of flags from the specified messages only if their mod-sequence value is less than the specified value. + + + Removes a set of flags from the specified messages only if their mod-sequence value is less than the specified value. + + The unique IDs of the messages that were not updated. + The folder. + The UIDs of the messages. + The mod-sequence value. + The message flags to remove. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously remove a set of flags from the specified messages only if their mod-sequence value is less than the specified value. + + + Asynchronously removes a set of flags from the specified messages only if their mod-sequence value is less than the specified value. + + The unique IDs of the messages that were not updated. + The folder. + The UIDs of the messages. + The mod-sequence value. + The message flags to remove. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Remove a set of flags from the specified messages only if their mod-sequence value is less than the specified value. + + + Removes a set of flags from the specified messages only if their mod-sequence value is less than the specified value. + + The unique IDs of the messages that were not updated. + The folder. + The UIDs of the messages. + The mod-sequence value. + The message flags to remove. + A set of user-defined flags to remove. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously remove a set of flags from the specified messages only if their mod-sequence value is less than the specified value. + + + Asynchronously removes a set of flags from the specified messages only if their mod-sequence value is less than the specified value. + + The unique IDs of the messages that were not updated. + The folder. + The UIDs of the messages. + The mod-sequence value. + The message flags to remove. + A set of user-defined flags to remove. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Set the flags of the specified messages only if their mod-sequence value is less than the specified value. + + + Sets the flags of the specified messages only if their mod-sequence value is less than the specified value. + + The unique IDs of the messages that were not updated. + The folder. + The UIDs of the messages. + The mod-sequence value. + The message flags to set. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously set the flags of the specified messages only if their mod-sequence value is less than the specified value. + + + Asynchronously sets the flags of the specified messages only if their mod-sequence value is less than the specified value. + + The unique IDs of the messages that were not updated. + The folder. + The UIDs of the messages. + The mod-sequence value. + The message flags to set. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Set the flags of the specified messages only if their mod-sequence value is less than the specified value. + + + Sets the flags of the specified messages only if their mod-sequence value is less than the specified value. + + The unique IDs of the messages that were not updated. + The folder. + The UIDs of the messages. + The mod-sequence value. + The message flags to set. + A set of user-defined flags to set. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously set the flags of the specified messages only if their mod-sequence value is less than the specified value. + + + Asynchronously sets the flags of the specified messages only if their mod-sequence value is less than the specified value. + + The unique IDs of the messages that were not updated. + The folder. + The UIDs of the messages. + The mod-sequence value. + The message flags to set. + A set of user-defined flags to set. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Add a set of flags to the specified message. + + + Adds a set of flags to the specified message. + + The folder. + The index of the message. + The message flags to add. + If set to true, no events will be emitted. + The cancellation token. + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously add a set of flags to the specified message. + + + Asynchronously adds a set of flags to the specified message. + + An asynchronous task context. + The folder. + The index of the messages. + The message flags to add. + If set to true, no events will be emitted. + The cancellation token. + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Add a set of flags to the specified message. + + + Adds a set of flags to the specified message. + + The folder. + The index of the message. + The message flags to add. + A set of user-defined flags to add. + If set to true, no events will be emitted. + The cancellation token. + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously add a set of flags to the specified message. + + + Asynchronously adds a set of flags to the specified message. + + An asynchronous task context. + The folder. + The index of the messages. + The message flags to add. + A set of user-defined flags to add. + If set to true, no events will be emitted. + The cancellation token. + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Add a set of flags to the specified messages. + + + Adds a set of flags to the specified messages. + + The folder. + The indexes of the messages. + The message flags to add. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously add a set of flags to the specified messages. + + + Asynchronously adds a set of flags to the specified messages. + + An asynchronous task context. + The folder. + The indexes of the messages. + The message flags to add. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Add a set of flags to the specified messages. + + + Adds a set of flags to the specified messages. + + The folder. + The indexes of the messages. + The message flags to add. + A set of user-defined flags to add. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously add a set of flags to the specified messages. + + + Asynchronously adds a set of flags to the specified messages. + + An asynchronous task context. + The folder. + The indexes of the messages. + The message flags to add. + A set of user-defined flags to add. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Remove a set of flags from the specified message. + + + Removes a set of flags from the specified message. + + The folder. + The index of the message. + The message flags to remove. + If set to true, no events will be emitted. + The cancellation token. + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously remove a set of flags from the specified message. + + + Asynchronously removes a set of flags from the specified message. + + An asynchronous task context. + The folder. + The index of the message. + The message flags to remove. + If set to true, no events will be emitted. + The cancellation token. + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Remove a set of flags from the specified message. + + + Removes a set of flags from the specified message. + + The folder. + The index of the message. + The message flags to remove. + A set of user-defined flags to remove. + If set to true, no events will be emitted. + The cancellation token. + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously remove a set of flags from the specified message. + + + Asynchronously removes a set of flags from the specified message. + + An asynchronous task context. + The folder. + The index of the message. + The message flags to remove. + A set of user-defined flags to remove. + If set to true, no events will be emitted. + The cancellation token. + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Remove a set of flags from the specified messages. + + + Removes a set of flags from the specified messages. + + The folder. + The indexes of the messages. + The message flags to remove. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously remove a set of flags from the specified messages. + + + Asynchronously removes a set of flags from the specified messages. + + An asynchronous task context. + The folder. + The indexes of the messages. + The message flags to remove. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Remove a set of flags from the specified messages. + + + Removes a set of flags from the specified messages. + + The folder. + The indexes of the messages. + The message flags to remove. + A set of user-defined flags to remove. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously remove a set of flags from the specified messages. + + + Asynchronously removes a set of flags from the specified messages. + + An asynchronous task context. + The folder. + The indexes of the messages. + The message flags to remove. + A set of user-defined flags to remove. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Set the flags of the specified message. + + + Sets the flags of the specified message. + + The folder. + The index of the message. + The message flags to set. + If set to true, no events will be emitted. + The cancellation token. + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously set the flags of the specified message. + + + Asynchronously sets the flags of the specified message. + + An asynchronous task context. + The folder. + The index of the message. + The message flags to set. + If set to true, no events will be emitted. + The cancellation token. + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Set the flags of the specified message. + + + Sets the flags of the specified message. + + The folder. + The index of the message. + The message flags to set. + A set of user-defined flags to set. + If set to true, no events will be emitted. + The cancellation token. + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously set the flags of the specified message. + + + Asynchronously sets the flags of the specified message. + + An asynchronous task context. + The folder. + The index of the message. + The message flags to set. + A set of user-defined flags to set. + If set to true, no events will be emitted. + The cancellation token. + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Set the flags of the specified messages. + + + Sets the flags of the specified messages. + + The folder. + The indexes of the messages. + The message flags to set. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously set the flags of the specified messages. + + + Asynchronously sets the flags of the specified messages. + + An asynchronous task context. + The folder. + The indexes of the messages. + The message flags to set. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Set the flags of the specified messages. + + + Sets the flags of the specified messages. + + The folder. + The indexes of the messages. + The message flags to set. + A set of user-defined flags to set. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously set the flags of the specified messages. + + + Asynchronously sets the flags of the specified messages. + + An asynchronous task context. + The folder. + The indexes of the messages. + The message flags to set. + A set of user-defined flags to set. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Add a set of flags to the specified messages only if their mod-sequence value is less than the specified value. + + + Adds a set of flags to the specified messages only if their mod-sequence value is less than the specified value. + + The indexes of the messages that were not updated. + The folder. + The indexes of the messages. + The mod-sequence value. + The message flags to add. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously add a set of flags to the specified messages only if their mod-sequence value is less than the specified value. + + + Asynchronously adds a set of flags to the specified messages only if their mod-sequence value is less than the specified value. + + The indexes of the messages that were not updated. + The folder. + The indexes of the messages. + The mod-sequence value. + The message flags to add. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Add a set of flags to the specified messages only if their mod-sequence value is less than the specified value. + + + Adds a set of flags to the specified messages only if their mod-sequence value is less than the specified value. + + The indexes of the messages that were not updated. + The folder. + The indexes of the messages. + The mod-sequence value. + The message flags to add. + A set of user-defined flags to add. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously add a set of flags to the specified messages only if their mod-sequence value is less than the specified value. + + + Asynchronously adds a set of flags to the specified messages only if their mod-sequence value is less than the specified value. + + The indexes of the messages that were not updated. + The folder. + The indexes of the messages. + The mod-sequence value. + The message flags to add. + A set of user-defined flags to add. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Remove a set of flags from the specified messages only if their mod-sequence value is less than the specified value. + + + Removes a set of flags from the specified messages only if their mod-sequence value is less than the specified value. + + The indexes of the messages that were not updated. + The folder. + The indexes of the messages. + The mod-sequence value. + The message flags to remove. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously remove a set of flags from the specified messages only if their mod-sequence value is less than the specified value. + + + Asynchronously removes a set of flags from the specified messages only if their mod-sequence value is less than the specified value. + + The indexes of the messages that were not updated. + The folder. + The indexes of the messages. + The mod-sequence value. + The message flags to remove. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Remove a set of flags from the specified messages only if their mod-sequence value is less than the specified value. + + + Removes a set of flags from the specified messages only if their mod-sequence value is less than the specified value. + + The indexes of the messages that were not updated. + The folder. + The indexes of the messages. + The mod-sequence value. + The message flags to remove. + A set of user-defined flags to remove. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously remove a set of flags from the specified messages only if their mod-sequence value is less than the specified value. + + + Asynchronously removes a set of flags from the specified messages only if their mod-sequence value is less than the specified value. + + The indexes of the messages that were not updated. + The folder. + The indexes of the messages. + The mod-sequence value. + The message flags to remove. + A set of user-defined flags to remove. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Set the flags of the specified messages only if their mod-sequence value is less than the specified value. + + + Sets the flags of the specified messages only if their mod-sequence value is less than the specified value. + + The indexes of the messages that were not updated. + The folder. + The indexes of the messages. + The mod-sequence value. + The message flags to set. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously set the flags of the specified messages only if their mod-sequence value is less than the specified value. + + + Asynchronously sets the flags of the specified messages only if their mod-sequence value is less than the specified value. + + The indexes of the messages that were not updated. + The folder. + The indexes of the messages. + The mod-sequence value. + The message flags to set. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Set the flags of the specified messages only if their mod-sequence value is less than the specified value. + + + Sets the flags of the specified messages only if their mod-sequence value is less than the specified value. + + The indexes of the messages that were not updated. + The folder. + The indexes of the messages. + The mod-sequence value. + The message flags to set. + A set of user-defined flags to set. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously set the flags of the specified messages only if their mod-sequence value is less than the specified value. + + + Asynchronously sets the flags of the specified messages only if their mod-sequence value is less than the specified value. + + The indexes of the messages that were not updated. + The folder. + The indexes of the messages. + The mod-sequence value. + The message flags to set. + A set of user-defined flags to set. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Add a set of labels to the specified message. + + + Adds a set of labels to the specified message. + + The folder. + The UID of the message. + The labels to add. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously add a set of labels to the specified message. + + + Asynchronously adds a set of labels to the specified message. + + An asynchronous task context. + The folder. + The UID of the message. + The labels to add. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Add a set of labels to the specified messages. + + + Adds a set of labels to the specified messages. + + The folder. + The UIDs of the messages. + The labels to add. + If set to true, no events will be emitted. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously add a set of labels to the specified messages. + + + Asynchronously adds a set of labels to the specified messages. + + An asynchronous task context. + The folder. + The UIDs of the messages. + The labels to add. + If set to true, no events will be emitted. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Remove a set of labels from the specified message. + + + Removes a set of labels from the specified message. + + The folder. + The UIDs of the message. + The labels to remove. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously remove a set of labels from the specified message. + + + Asynchronously removes a set of labels from the specified message. + + An asynchronous task context. + The folder. + The UID of the message. + The labels to remove. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Remove a set of labels from the specified messages. + + + Removes a set of labels from the specified messages. + + The folder. + The UIDs of the messages. + The labels to remove. + If set to true, no events will be emitted. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously remove a set of labels from the specified messages. + + + Asynchronously removes a set of labels from the specified messages. + + An asynchronous task context. + The folder. + The UIDs of the messages. + The labels to remove. + If set to true, no events will be emitted. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Set the labels of the specified message. + + + Sets the labels of the specified message. + + The folder. + The UIDs of the message. + The labels to set. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously set the labels of the specified message. + + + Asynchronously sets the labels of the specified message. + + An asynchronous task context. + The folder. + The UID of the message. + The labels to set. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Set the labels of the specified messages. + + + Sets the labels of the specified messages. + + The folder. + The UIDs of the messages. + The labels to set. + If set to true, no events will be emitted. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously set the labels of the specified messages. + + + Asynchronously sets the labels of the specified messages. + + An asynchronous task context. + The folder. + The UIDs of the messages. + The labels to set. + If set to true, no events will be emitted. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Add a set of labels to the specified messages only if their mod-sequence value is less than the specified value. + + + Adds a set of labels to the specified messages only if their mod-sequence value is less than the specified value. + + The unique IDs of the messages that were not updated. + The folder. + The UIDs of the messages. + The mod-sequence value. + The labels to add. + If set to true, no events will be emitted. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously add a set of labels to the specified messages only if their mod-sequence value is less than the specified value. + + + Asynchronously adds a set of labels to the specified messages only if their mod-sequence value is less than the specified value. + + The unique IDs of the messages that were not updated. + The folder. + The UIDs of the messages. + The mod-sequence value. + The labels to add. + If set to true, no events will be emitted. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Remove a set of labels from the specified messages only if their mod-sequence value is less than the specified value. + + + Removes a set of labels from the specified messages only if their mod-sequence value is less than the specified value. + + The unique IDs of the messages that were not updated. + The folder. + The UIDs of the messages. + The mod-sequence value. + The labels to remove. + If set to true, no events will be emitted. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously remove a set of labels from the specified messages only if their mod-sequence value is less than the specified value. + + + Asynchronously removes a set of labels from the specified messages only if their mod-sequence value is less than the specified value. + + The unique IDs of the messages that were not updated. + The folder. + The UIDs of the messages. + The mod-sequence value. + The labels to remove. + If set to true, no events will be emitted. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Set the labels of the specified messages only if their mod-sequence value is less than the specified value. + + + Sets the labels of the specified messages only if their mod-sequence value is less than the specified value. + + The unique IDs of the messages that were not updated. + The folder. + The UIDs of the messages. + The mod-sequence value. + The labels to set. + If set to true, no events will be emitted. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously set the labels of the specified messages only if their mod-sequence value is less than the specified value. + + + Asynchronously sets the labels of the specified messages only if their mod-sequence value is less than the specified value. + + The unique IDs of the messages that were not updated. + The folder. + The UIDs of the messages. + The mod-sequence value. + The labels to set. + If set to true, no events will be emitted. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Add a set of labels to the specified message. + + + Adds a set of labels to the specified message. + + The folder. + The index of the message. + The labels to add. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously add a set of labels to the specified message. + + + Asynchronously adds a set of labels to the specified message. + + An asynchronous task context. + The folder. + The index of the messages. + The labels to add. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Add a set of labels to the specified messages. + + + Adds a set of labels to the specified messages. + + The folder. + The indexes of the messages. + The labels to add. + If set to true, no events will be emitted. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously add a set of labels to the specified messages. + + + Asynchronously adds a set of labels to the specified messages. + + An asynchronous task context. + The folder. + The indexes of the messages. + The labels to add. + If set to true, no events will be emitted. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Remove a set of labels from the specified message. + + + Removes a set of labels from the specified message. + + The folder. + The index of the message. + The labels to remove. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously remove a set of labels from the specified message. + + + Asynchronously removes a set of labels from the specified message. + + An asynchronous task context. + The folder. + The index of the message. + The labels to remove. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Remove a set of labels from the specified messages. + + + Removes a set of labels from the specified messages. + + The folder. + The indexes of the messages. + The labels to remove. + If set to true, no events will be emitted. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously remove a set of labels from the specified messages. + + + Asynchronously removes a set of labels from the specified messages. + + An asynchronous task context. + The folder. + The indexes of the messages. + The labels to remove. + If set to true, no events will be emitted. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Set the labels of the specified message. + + + Sets the labels of the specified message. + + The folder. + The index of the message. + The labels to set. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously set the labels of the specified message. + + + Asynchronously sets the labels of the specified message. + + An asynchronous task context. + The folder. + The index of the message. + The labels to set. + If set to true, no events will be emitted. + The cancellation token. + + is null. + + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Set the labels of the specified messages. + + + Sets the labels of the specified messages. + + The folder. + The indexes of the messages. + The labels to set. + If set to true, no events will be emitted. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously set the labels of the specified messages. + + + Asynchronously sets the labels of the specified messages. + + An asynchronous task context. + The folder. + The indexes of the messages. + The labels to set. + If set to true, no events will be emitted. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Add a set of labels to the specified messages only if their mod-sequence value is less than the specified value. + + + Adds a set of labels to the specified messages only if their mod-sequence value is less than the specified value. + + The indexes of the messages that were not updated. + The folder. + The indexes of the messages. + The mod-sequence value. + The labels to add. + If set to true, no events will be emitted. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously add a set of labels to the specified messages only if their mod-sequence value is less than the specified value. + + + Asynchronously adds a set of labels to the specified messages only if their mod-sequence value is less than the specified value. + + The indexes of the messages that were not updated. + The folder. + The indexes of the messages. + The mod-sequence value. + The labels to add. + If set to true, no events will be emitted. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Remove a set of labels from the specified messages only if their mod-sequence value is less than the specified value. + + + Removes a set of labels from the specified messages only if their mod-sequence value is less than the specified value. + + The indexes of the messages that were not updated. + The folder. + The indexes of the messages. + The mod-sequence value. + The labels to remove. + If set to true, no events will be emitted. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously remove a set of labels from the specified messages only if their mod-sequence value is less than the specified value. + + + Asynchronously removes a set of labels from the specified messages only if their mod-sequence value is less than the specified value. + + The indexes of the messages that were not updated. + The folder. + The indexes of the messages. + The mod-sequence value. + The labels to remove. + If set to true, no events will be emitted. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Set the labels of the specified messages only if their mod-sequence value is less than the specified value. + + + Sets the labels of the specified messages only if their mod-sequence value is less than the specified value. + + The indexes of the messages that were not updated. + The folder. + The indexes of the messages. + The mod-sequence value. + The labels to set. + If set to true, no events will be emitted. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously set the labels of the specified messages only if their mod-sequence value is less than the specified value. + + + Asynchronously sets the labels of the specified messages only if their mod-sequence value is less than the specified value. + + The indexes of the messages that were not updated. + The folder. + The indexes of the messages. + The mod-sequence value. + The labels to set. + If set to true, no events will be emitted. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + An interface for message services such as SMTP, POP3, or IMAP. + + + Implemented by , + and + . + + + + + Get an object that can be used to synchronize access to the folder. + + + Gets an object that can be used to synchronize access to the folder. + + The sync root. + + + + Get or set the set of enabled SSL and/or TLS protocol versions that the client is allowed to use. + + + By default, MailKit initializes this value to enable only TLS v1.2 and greater. + TLS v1.1, TLS v1.0 and all versions of SSL are not enabled by default due to them all being + susceptible to security vulnerabilities such as POODLE. + This property should be set before calling any of the + Connect methods. + + The SSL and TLS protocol versions that are supported. + + + + Get or set the client SSL certificates. + + + Some servers may require the client SSL certificates in order + to allow the user to connect. + This property should be set before calling any of the + Connect methods. + + The client SSL certificates. + + + + Get or set whether connecting via SSL/TLS should check certificate revocation. + + + Gets or sets whether connecting via SSL/TLS should check certificate revocation. + Normally, the value of this property should be set to true (the default) for security + reasons, but there are times when it may be necessary to set it to false. + For example, most Certificate Authorities are probably pretty good at keeping their CRL and/or + OCSP servers up 24/7, but occasionally they do go down or are otherwise unreachable due to other + network problems between the client and the Certificate Authority. When this happens, it becomes + impossible to check the revocation status of one or more of the certificates in the chain + resulting in an being thrown in the + Connect method. If this becomes a problem, + it may become desirable to set to false. + + true if certificate revocation should be checked; otherwise, false. + + + + Get or set a callback function to validate the server certificate. + + + Gets or sets a callback function to validate the server certificate. + This property should be set before calling any of the + Connect methods. + + + + + The server certificate validation callback function. + + + + Get or set the local IP end point to use when connecting to a remote host. + + + Gets or sets the local IP end point to use when connecting to a remote host. + + The local IP end point or null to use the default end point. + + + + Get or set the proxy client to use when connecting to a remote host. + + + Gets or sets the proxy client to use when connecting to a remote host via any of the + Connect methods. + + + + + The proxy client. + + + + Get the authentication mechanisms supported by the message service. + + + The authentication mechanisms are queried durring the + Connect method. + + The supported authentication mechanisms. + + + + Get whether or not the client is currently authenticated with the mail server. + + + Gets whether or not the client is currently authenticated with the mail server. + To authenticate with the mail server, use one of the + Authenticate methods + or any of the Async alternatives. + + true if the client is authenticated; otherwise, false. + + + + Get whether or not the service is currently connected. + + + The state is set to true immediately after + one of the Connect + methods succeeds and is not set back to false until either the client + is disconnected via or until a + is thrown while attempting to read or write to + the underlying network socket. + When an is caught, the connection state of the + should be checked before continuing. + + true if the service connected; otherwise, false. + + + + Get whether or not the connection is secure (typically via SSL or TLS). + + + Gets whether or not the connection is secure (typically via SSL or TLS). + + true if the connection is secure; otherwise, false. + + + + Get whether or not the connection is encrypted (typically via SSL or TLS). + + + Gets whether or not the connection is encrypted (typically via SSL or TLS). + + true if the connection is encrypted; otherwise, false. + + + + Get whether or not the connection is signed (typically via SSL or TLS). + + + Gets whether or not the connection is signed (typically via SSL or TLS). + + true if the connection is signed; otherwise, false. + + + + Get the negotiated SSL or TLS protocol version. + + + Gets the negotiated SSL or TLS protocol version once an SSL or TLS connection has been made. + + The negotiated SSL or TLS protocol version. + + + + Get the negotiated SSL or TLS cipher algorithm. + + + Gets the negotiated SSL or TLS cipher algorithm once an SSL or TLS connection has been made. + + The negotiated SSL or TLS cipher algorithm. + + + + Get the negotiated SSL or TLS cipher algorithm strength. + + + Gets the negotiated SSL or TLS cipher algorithm strength once an SSL or TLS connection has been made. + + The negotiated SSL or TLS cipher algorithm strength. + + + + Get the negotiated SSL or TLS hash algorithm. + + + Gets the negotiated SSL or TLS hash algorithm once an SSL or TLS connection has been made. + + The negotiated SSL or TLS hash algorithm. + + + + Get the negotiated SSL or TLS hash algorithm strength. + + + Gets the negotiated SSL or TLS hash algorithm strength once an SSL or TLS connection has been made. + + The negotiated SSL or TLS hash algorithm strength. + + + + Get the negotiated SSL or TLS key exchange algorithm. + + + Gets the negotiated SSL or TLS key exchange algorithm once an SSL or TLS connection has been made. + + The negotiated SSL or TLS key exchange algorithm. + + + + Get the negotiated SSL or TLS key exchange algorithm strength. + + + Gets the negotiated SSL or TLS key exchange algorithm strength once an SSL or TLS connection has been made. + + The negotiated SSL or TLS key exchange algorithm strength. + + + + Get or set the timeout for network streaming operations, in milliseconds. + + + Gets or sets the underlying socket stream's + and values. + + The timeout in milliseconds. + + + + Establish a connection to the specified mail server. + + + Establish a connection to the specified mail server. + If a successful connection is made, the + property will be populated. + + The host name to connect to. + The port to connect to. If the specified port is 0, then the default port will be used. + true if the client should make an SSL-wrapped connection to the server; otherwise, false. + The cancellation token. + + is null. + + + is not between 0 and 65535. + + + The is a zero-length string. + + + The is already connected. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command was rejected by the mail server. + + + The server responded with an unexpected token. + + + + + Asynchronously establish a connection to the specified mail server. + + + Asynchronously establishes a connection to the specified mail server. + If a successful connection is made, the + property will be populated. + + An asynchronous task context. + The host name to connect to. + The port to connect to. If the specified port is 0, then the default port will be used. + true if the client should make an SSL-wrapped connection to the server; otherwise, false. + The cancellation token. + + The is null. + + + is not between 0 and 65535. + + + The is a zero-length string. + + + The has been disposed. + + + The is already connected. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + A protocol error occurred. + + + + + Establish a connection to the specified mail server. + + + Establish a connection to the specified mail server. + If a successful connection is made, the + property will be populated. + + The host name to connect to. + The port to connect to. If the specified port is 0, then the default port will be used. + The secure socket options to when connecting. + The cancellation token. + + is null. + + + is not between 0 and 65535. + + + The is a zero-length string. + + + The is already connected. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command was rejected by the mail server. + + + The server responded with an unexpected token. + + + + + Asynchronously establish a connection to the specified mail server. + + + Asynchronously establishes a connection to the specified mail server. + If a successful connection is made, the + property will be populated. + + An asynchronous task context. + The host name to connect to. + The port to connect to. If the specified port is 0, then the default port will be used. + The secure socket options to when connecting. + The cancellation token. + + The is null. + + + is not between 0 and 65535. + + + The is a zero-length string. + + + The has been disposed. + + + The is already connected. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + A protocol error occurred. + + + + + Establish a connection to the specified mail server using the provided socket. + + + Establish a connection to the specified mail server using the provided socket. + If a successful connection is made, the + property will be populated. + + The socket to use for the connection. + The host name to connect to. + The port to connect to. If the specified port is 0, then the default port will be used. + The secure socket options to when connecting. + The cancellation token. + + is null. + -or- + is null. + + + is not between 0 and 65535. + + + is not connected. + -or- + The is a zero-length string. + + + The is already connected. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command was rejected by the mail server. + + + The server responded with an unexpected token. + + + + + Asynchronously establish a connection to the specified mail server using the provided socket. + + + Asynchronously establishes a connection to the specified mail server using the provided socket. + If a successful connection is made, the + property will be populated. + + An asynchronous task context. + The socket to use for the connection. + The host name to connect to. + The port to connect to. If the specified port is 0, then the default port will be used. + The secure socket options to when connecting. + The cancellation token. + + is null. + -or- + is null. + + + is not between 0 and 65535. + + + is not connected. + -or- + The is a zero-length string. + + + The is already connected. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command was rejected by the mail server. + + + The server responded with an unexpected token. + + + + + Establish a connection to the specified mail server using the provided stream. + + + Establish a connection to the specified mail server using the provided stream. + If a successful connection is made, the + property will be populated. + + The stream to use for the connection. + The host name to connect to. + The port to connect to. If the specified port is 0, then the default port will be used. + The secure socket options to when connecting. + The cancellation token. + + is null. + -or- + is null. + + + is not between 0 and 65535. + + + The is a zero-length string. + + + The is already connected. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command was rejected by the mail server. + + + The server responded with an unexpected token. + + + + + Asynchronously establish a connection to the specified mail server using the provided stream. + + + Asynchronously establishes a connection to the specified mail server using the provided stream. + If a successful connection is made, the + property will be populated. + + An asynchronous task context. + The stream to use for the connection. + The host name to connect to. + The port to connect to. If the specified port is 0, then the default port will be used. + The secure socket options to when connecting. + The cancellation token. + + is null. + -or- + is null. + + + is not between 0 and 65535. + + + The is a zero-length string. + + + The is already connected. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command was rejected by the mail server. + + + The server responded with an unexpected token. + + + + + Authenticate using the supplied credentials. + + + Authenticates using the supplied credentials. + If the server supports one or more SASL authentication mechanisms, then + the SASL mechanisms that both the client and server support (not including any + OAUTH mechanisms) are tried in order of greatest security to weakest security. + Once a SASL authentication mechanism is found that both client and server support, + the credentials are used to authenticate. + If the server does not support SASL or if no common SASL mechanisms + can be found, then the default login command is used as a fallback. + + The user's credentials. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is already authenticated. + + + The operation was canceled via the cancellation token. + + + Authentication using the supplied credentials has failed. + + + A SASL authentication error occurred. + + + An I/O error occurred. + + + A protocol error occurred. + + + + + Asynchronously authenticate using the supplied credentials. + + + Asynchronously authenticates using the supplied credentials. + If the server supports one or more SASL authentication mechanisms, then + the SASL mechanisms that both the client and server support (not including any + OAUTH mechanisms) are tried in order of greatest security to weakest security. + Once a SASL authentication mechanism is found that both client and server support, + the credentials are used to authenticate. + If the server does not support SASL or if no common SASL mechanisms + can be found, then the default login command is used as a fallback. + + An asynchronous task context. + The user's credentials. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is already authenticated. + + + The operation was canceled via the cancellation token. + + + Authentication using the supplied credentials has failed. + + + A SASL authentication error occurred. + + + An I/O error occurred. + + + A protocol error occurred. + + + + + Authenticate using the supplied credentials. + + + Authenticates using the supplied credentials. + If the server supports one or more SASL authentication mechanisms, then + the SASL mechanisms that both the client and server support (not including any + OAUTH mechanisms) are tried in order of greatest security to weakest security. + Once a SASL authentication mechanism is found that both client and server support, + the credentials are used to authenticate. + If the server does not support SASL or if no common SASL mechanisms + can be found, then the default login command is used as a fallback. + + The encoding to use for the user's credentials. + The user's credentials. + The cancellation token. + + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected. + + + The is already authenticated. + + + The operation was canceled via the cancellation token. + + + Authentication using the supplied credentials has failed. + + + A SASL authentication error occurred. + + + An I/O error occurred. + + + A protocol error occurred. + + + + + Asynchronously authenticate using the supplied credentials. + + + Asynchronously authenticates using the supplied credentials. + If the server supports one or more SASL authentication mechanisms, then + the SASL mechanisms that both the client and server support (not including any + OAUTH mechanisms) are tried in order of greatest security to weakest security. + Once a SASL authentication mechanism is found that both client and server support, + the credentials are used to authenticate. + If the server does not support SASL or if no common SASL mechanisms + can be found, then the default login command is used as a fallback. + + An asynchronous task context. + The encoding to use for the user's credentials. + The user's credentials. + The cancellation token. + + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected. + + + The is already authenticated. + + + The operation was canceled via the cancellation token. + + + Authentication using the supplied credentials has failed. + + + A SASL authentication error occurred. + + + An I/O error occurred. + + + A protocol error occurred. + + + + + Authenticate using the specified user name and password. + + + Authenticates using the supplied credentials. + If the server supports one or more SASL authentication mechanisms, then + the SASL mechanisms that both the client and server support (not including any + OAUTH mechanisms) are tried in order of greatest security to weakest security. + Once a SASL authentication mechanism is found that both client and server support, + the credentials are used to authenticate. + If the server does not support SASL or if no common SASL mechanisms + can be found, then the default login command is used as a fallback. + To prevent the usage of certain authentication mechanisms, + simply remove them from the hash set + before calling this method. + + The encoding to use for the user's credentials. + The user name. + The password. + The cancellation token. + + is null. + -or- + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected or is already authenticated. + + + The operation was canceled via the cancellation token. + + + Authentication using the supplied credentials has failed. + + + A SASL authentication error occurred. + + + An I/O error occurred. + + + A protocol error occurred. + + + + + Asynchronously authenticate using the specified user name and password. + + + Asynchronously authenticates using the supplied credentials. + If the server supports one or more SASL authentication mechanisms, then + the SASL mechanisms that both the client and server support (not including any + OAUTH mechanisms) are tried in order of greatest security to weakest security. + Once a SASL authentication mechanism is found that both client and server support, + the credentials are used to authenticate. + If the server does not support SASL or if no common SASL mechanisms + can be found, then the default login command is used as a fallback. + To prevent the usage of certain authentication mechanisms, + simply remove them from the hash set + before calling this method. + + An asynchronous task context. + The encoding to use for the user's credentials. + The user name. + The password. + The cancellation token. + + is null. + -or- + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected or is already authenticated. + + + The operation was canceled via the cancellation token. + + + Authentication using the supplied credentials has failed. + + + A SASL authentication error occurred. + + + An I/O error occurred. + + + A protocol error occurred. + + + + + Authenticate using the specified user name and password. + + + Authenticates using the supplied credentials. + If the server supports one or more SASL authentication mechanisms, then + the SASL mechanisms that both the client and server support (not including any + OAUTH mechanisms) are tried in order of greatest security to weakest security. + Once a SASL authentication mechanism is found that both client and server support, + the credentials are used to authenticate. + If the server does not support SASL or if no common SASL mechanisms + can be found, then the default login command is used as a fallback. + To prevent the usage of certain authentication mechanisms, + simply remove them from the hash set + before calling this method. + + + + + The user name. + The password. + The cancellation token. + + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected or is already authenticated. + + + The operation was canceled via the cancellation token. + + + Authentication using the supplied credentials has failed. + + + A SASL authentication error occurred. + + + An I/O error occurred. + + + A protocol error occurred. + + + + + Asynchronously authenticate using the specified user name and password. + + + Asynchronously authenticates using the supplied credentials. + If the server supports one or more SASL authentication mechanisms, then + the SASL mechanisms that both the client and server support (not including any + OAUTH mechanisms) are tried in order of greatest security to weakest security. + Once a SASL authentication mechanism is found that both client and server support, + the credentials are used to authenticate. + If the server does not support SASL or if no common SASL mechanisms + can be found, then the default login command is used as a fallback. + To prevent the usage of certain authentication mechanisms, + simply remove them from the hash set + before calling this method. + + An asynchronous task context. + The user name. + The password. + The cancellation token. + + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected or is already authenticated. + + + The operation was canceled via the cancellation token. + + + Authentication using the supplied credentials has failed. + + + A SASL authentication error occurred. + + + An I/O error occurred. + + + A protocol error occurred. + + + + + Authenticate using the specified SASL mechanism. + + + Authenticates using the specified SASL mechanism. + For a list of available SASL authentication mechanisms supported by the server, + check the property after the service has been + connected. + + The SASL mechanism. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected or is already authenticated. + + + The operation was canceled via the cancellation token. + + + Authentication using the supplied credentials has failed. + + + A SASL authentication error occurred. + + + An I/O error occurred. + + + A protocol error occurred. + + + + + Asynchronously authenticate using the specified SASL mechanism. + + + Authenticates using the specified SASL mechanism. + For a list of available SASL authentication mechanisms supported by the server, + check the property after the service has been + connected. + + An asynchronous task context. + The SASL mechanism. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected or is already authenticated. + + + The operation was canceled via the cancellation token. + + + Authentication using the supplied credentials has failed. + + + A SASL authentication error occurred. + + + An I/O error occurred. + + + A protocol error occurred. + + + + + Disconnect the service. + + + Disconnects from the service. + If is true, a "QUIT" command will be issued in order to disconnect cleanly. + + If set to true, a "QUIT" command will be issued in order to disconnect cleanly. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command was rejected by the mail server. + + + The server responded with an unexpected token. + + + + + Asynchronously disconnect the service. + + + Asynchronously disconnects from the service. + If is true, a "QUIT" command will be issued in order to disconnect cleanly. + + An asynchronous task context. + If set to true, a logout/quit command will be issued in order to disconnect cleanly. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command was rejected by the mail server. + + + The server responded with an unexpected token. + + + + + Ping the message service to keep the connection alive. + + + Mail servers, if left idle for too long, will automatically drop the connection. + + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command was rejected by the mail server. + + + The server responded with an unexpected token. + + + + + Asynchronously ping the mail server to keep the connection alive. + + + Mail servers, if left idle for too long, will automatically drop the connection. + + An asynchronous task context. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command was rejected by the mail server. + + + The server responded with an unexpected token. + + + + + Occurs when the client has been successfully connected. + + + The event is raised when the client + successfully connects to the mail server. + + + + + Occurs when the client has been disconnected. + + + The event is raised whenever the client + has been disconnected. + + + + + Occurs when the client has been successfully authenticated. + + + The event is raised whenever the client + has been authenticated. + + + + + An interface for retreiving messages from a spool. + + + An interface for retreiving messages from a spool. + Implemented by . + + + + + Get the number of messages available in the message spool. + + + Gets the number of messages available in the message spool. + Once authenticated, the property will be set + to the number of available messages in the spool. + + The message count. + + + + Get whether or not the service supports referencing messages by UIDs. + + + Not all servers support referencing messages by UID, so this property should + be checked before using + and . + If the server does not support UIDs, then all methods that take UID arguments + along with and + will fail. + + true if supports uids; otherwise, false. + + + + Get the message count. + + + Gets the message count. + + The message count. + The cancellation token. + + + + Asynchronously get the message count. + + + Asynchronously gets the message count. + + The message count. + The cancellation token. + + + + Get the UID of the message at the specified index. + + + Not all servers support UIDs, so you should first check + the property. + + The message UID. + The message index. + The cancellation token. + + + + Asynchronously get the UID of the message at the specified index. + + + Not all servers support UIDs, so you should first check + the property. + + The message UID. + The message index. + The cancellation token. + + + + Get the full list of available message UIDs. + + + Not all servers support UIDs, so you should first check + the property. + + The message UIDs. + The cancellation token. + + + + Asynchronously get the full list of available message UIDs. + + + Not all servers support UIDs, so you should first check + the property. + + The message UIDs. + The cancellation token. + + + + Get the size of the specified message, in bytes. + + + Gets the size of the specified message, in bytes. + + The message size, in bytes. + The index of the message. + The cancellation token. + + + + Asynchronously get the size of the specified message, in bytes. + + + Asynchronously gets the size of the specified message, in bytes. + + The message size, in bytes. + The index of the message. + The cancellation token. + + + + Get the sizes for all available messages, in bytes. + + + Gets the sizes for all available messages, in bytes. + + The message sizes, in bytes. + The cancellation token. + + + + Asynchronously get the sizes for all available messages, in bytes. + + + Asynchronously gets the sizes for all available messages, in bytes. + + The message sizes, in bytes. + The cancellation token. + + + + Get the headers for the specified message. + + + Gets the headers for the specified message. + + The message headers. + The index of the message. + The cancellation token. + + + + Asynchronously get the headers for the specified message. + + + Asynchronously gets the headers for the specified message. + + The message headers. + The index of the message. + The cancellation token. + + + + Get the headers for the specified messages. + + + Gets the headers for the specified messages. + + The headers for the specified messages. + The indexes of the messages. + The cancellation token. + + + + Asynchronously get the headers for the specified messages. + + + Asynchronously gets the headers for the specified messages. + + The headers for the specified messages. + The indexes of the messages. + The cancellation token. + + + + Get the headers of the messages within the specified range. + + + Gets the headers of the messages within the specified range. + + The headers of the messages within the specified range. + The index of the first message to get. + The number of messages to get. + The cancellation token. + + + + Get the headers of the messages within the specified range. + + + Gets the headers of the messages within the specified range. + + The headers of the messages within the specified range. + The index of the first message to get. + The number of messages to get. + The cancellation token. + + + + Get the message at the specified index. + + + Gets the message at the specified index. + + The message. + The index of the message. + The cancellation token. + The progress reporting mechanism. + + + + Asynchronously get the message at the specified index. + + + Asynchronously gets the message at the specified index. + + The message. + The index of the message. + The cancellation token. + The progress reporting mechanism. + + + + Get the messages at the specified indexes. + + + Gets the messages at the specified indexes. + + The messages. + The indexes of the messages. + The cancellation token. + The progress reporting mechanism. + + + + Asynchronously get the messages at the specified indexes. + + + Asynchronously gets the messages at the specified indexes. + + The messages. + The indexes of the messages. + The cancellation token. + The progress reporting mechanism. + + + + Get the messages within the specified range. + + + Gets the messages within the specified range. + + The messages. + The index of the first message to get. + The number of messages to get. + The cancellation token. + The progress reporting mechanism. + + + + Asynchronously get the messages within the specified range. + + + Asynchronously gets the messages within the specified range. + + The messages. + The index of the first message to get. + The number of messages to get. + The cancellation token. + The progress reporting mechanism. + + + + Get the message or header stream at the specified index. + + + Gets the message or header stream at the specified index. + + The message or header stream. + The index of the message. + true if only the headers should be retrieved; otherwise, false. + The cancellation token. + The progress reporting mechanism. + + + + Asynchronously get the message or header stream at the specified index. + + + Asynchronously gets the message or header stream at the specified index. + + The message or header stream. + The index of the message. + true if only the headers should be retrieved; otherwise, false. + The cancellation token. + The progress reporting mechanism. + + + + Get the message or header streams at the specified index. + + + Gets the message or header streams at the specified index. + + The message or header streams. + The indexes of the messages. + true if only the headers should be retrieved; otherwise, false. + The cancellation token. + The progress reporting mechanism. + + + + Asynchronously get the message or header streams at the specified indexes. + + + Asynchronously gets the message or header streams at the specified indexes. + + The message or header streams. + The indexes of the messages. + true if only the headers should be retrieved; otherwise, false. + The cancellation token. + The progress reporting mechanism. + + + + Get the message or header streams within the specified range. + + + Gets the message or header streams within the specified range. + + The message or header streams. + The index of the first stream to get. + The number of streams to get. + true if only the headers should be retrieved; otherwise, false. + The cancellation token. + The progress reporting mechanism. + + + + Asynchronously get the message or header streams within the specified range. + + + Asynchronously gets the message or header streams within the specified range. + + The messages. + The index of the first stream to get. + The number of streams to get. + true if only the headers should be retrieved; otherwise, false. + The cancellation token. + The progress reporting mechanism. + + + + Mark the specified message for deletion. + + + Messages marked for deletion are not actually deleted until the session + is cleanly disconnected + (see ). + + The index of the message. + The cancellation token. + + + + Asynchronously mark the specified message for deletion. + + + Messages marked for deletion are not actually deleted until the session + is cleanly disconnected + (see ). + + An asynchronous task context. + The index of the message. + The cancellation token. + + + + Mark the specified messages for deletion. + + + Messages marked for deletion are not actually deleted until the session + is cleanly disconnected + (see ). + + The indexes of the messages. + The cancellation token. + + + + Asynchronously mark the specified messages for deletion. + + + Messages marked for deletion are not actually deleted until the session + is cleanly disconnected + (see ). + + An asynchronous task context. + The indexes of the messages. + The cancellation token. + + + + Mark the specified range of messages for deletion. + + + Messages marked for deletion are not actually deleted until the session + is cleanly disconnected + (see ). + + The index of the first message to mark for deletion. + The number of messages to mark for deletion. + The cancellation token. + + + + Asynchronously mark the specified range of messages for deletion. + + + Messages marked for deletion are not actually deleted until the session + is cleanly disconnected + (see ). + + An asynchronous task context. + The index of the first message to mark for deletion. + The number of messages to mark for deletion. + The cancellation token. + + + + Mark all messages for deletion. + + + Messages marked for deletion are not actually deleted until the session + is cleanly disconnected + (see ). + + The cancellation token. + + + + Asynchronously mark all messages for deletion. + + + Messages marked for deletion are not actually deleted until the session + is cleanly disconnected + (see ). + + An asynchronous task context. + The cancellation token. + + + + Reset the state of all messages marked for deletion. + + + Messages marked for deletion are not actually deleted until the session + is cleanly disconnected + (see ). + + The cancellation token. + + + + Asynchronously reset the state of all messages marked for deletion. + + + Messages marked for deletion are not actually deleted until the session + is cleanly disconnected + (see ). + + An asynchronous task context. + The cancellation token. + + + + An interface for retreiving messages from a message store. + + + An interface for retreiving messages from a message store. + Implemented by . + + + + + Get the personal namespaces. + + + The personal folder namespaces contain a user's personal mailbox folders. + + The personal namespaces. + + + + Get the shared namespaces. + + + The shared folder namespaces contain mailbox folders that are shared with the user. + + The shared namespaces. + + + + Get the other namespaces. + + + The other folder namespaces contain other mailbox folders. + + The other namespaces. + + + + Get whether or not the mail store supports quotas. + + + Gets whether or not the mail store supports quotas. + + true if the mail store supports quotas; otherwise, false. + + + + Get the threading algorithms supported by the mail store. + + + The threading algorithms are queried as part of the + Connect + and Authenticate methods. + + + + + The threading algorithms. + + + + Get the Inbox folder. + + + The Inbox folder is the default folder and is typically the folder + where all new messages are delivered. + + The Inbox folder. + + + + Enable the quick resynchronization feature. + + + Enables quick resynchronization when a folder is opened using the + + method. + If this feature is enabled, the event + is replaced with the event. + This method needs to be called immediately after + , + before the opening of any folders. + + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + Quick resynchronization needs to be enabled before selecting a folder. + + + The mail store does not support quick resynchronization. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + A protocol error occurred. + + + The command failed. + + + + + Asynchronously enable the quick resynchronization feature. + + + Enables quick resynchronization when a folder is opened using the + + method. + If this feature is enabled, the event + is replaced with the event. + This method needs to be called immediately after + , + before the opening of any folders. + + An asynchronous task context. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + Quick resynchronization needs to be enabled before selecting a folder. + + + The mail store does not support quick resynchronization. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + A protocol error occurred. + + + The command failed. + + + + + Get the specified special folder. + + + Not all message stores support the concept of special folders, + so this method may return null. + + The folder if available; otherwise null. + The type of special folder. + + is out of range. + + + + + Get the folder for the specified namespace. + + + The main reason to get the toplevel folder in a namespace is + to list its child folders. + + The folder. + The namespace. + + is null. + + + The folder could not be found. + + + + + Get all of the folders within the specified namespace. + + + Gets all of the folders within the specified namespace. + + The folders. + The namespace. + If set to true, only subscribed folders will be listed. + The cancellation token. + + is null. + + + The has been disposed. + + + The operation was canceled via the cancellation token. + + + The is not connected. + + + The is not authenticated. + + + The namespace folder could not be found. + + + An I/O error occurred. + + + A protocol error occurred. + + + The command failed. + + + + + Asynchronously get all of the folders within the specified namespace. + + + Asynchronously gets all of the folders within the specified namespace. + + The folders. + The namespace. + If set to true, only subscribed folders will be listed. + The cancellation token. + + is null. + + + The has been disposed. + + + The operation was canceled via the cancellation token. + + + The is not connected. + + + The is not authenticated. + + + The namespace folder could not be found. + + + An I/O error occurred. + + + A protocol error occurred. + + + The command failed. + + + + + Get all of the folders within the specified namespace. + + + Gets all of the folders within the specified namespace. + + The folders. + The namespace. + The status items to pre-populate. + If set to true, only subscribed folders will be listed. + The cancellation token. + + is null. + + + The has been disposed. + + + The operation was canceled via the cancellation token. + + + The is not connected. + + + The is not authenticated. + + + The namespace folder could not be found. + + + An I/O error occurred. + + + A protocol error occurred. + + + The command failed. + + + + + Asynchronously get all of the folders within the specified namespace. + + + Asynchronously gets all of the folders within the specified namespace. + + The folders. + The namespace. + The status items to pre-populate. + If set to true, only subscribed folders will be listed. + The cancellation token. + + is null. + + + The has been disposed. + + + The operation was canceled via the cancellation token. + + + The is not connected. + + + The is not authenticated. + + + The namespace folder could not be found. + + + An I/O error occurred. + + + A protocol error occurred. + + + The command failed. + + + + + Get the folder for the specified path. + + + Gets the folder for the specified path. + + The folder. + The folder path. + The cancellation token. + + is null. + + + The operation was canceled via the cancellation token. + + + The folder could not be found. + + + An I/O error occurred. + + + A protocol error occurred. + + + The command failed. + + + + + Asynchronously get the folder for the specified path. + + + Asynchronously gets the folder for the specified path. + + The folder. + The folder path. + The cancellation token. + + is null. + + + The operation was canceled via the cancellation token. + + + The folder could not be found. + + + An I/O error occurred. + + + A protocol error occurred. + + + The command failed. + + + + + Gets the specified metadata. + + + Gets the specified metadata. + + The requested metadata value. + The metadata tag. + The cancellation token. + + + + Asynchronously gets the specified metadata. + + + Asynchronously gets the specified metadata. + + The requested metadata value. + The metadata tag. + The cancellation token. + + + + Gets the specified metadata. + + + Gets the specified metadata. + + The requested metadata. + The metadata tags. + The cancellation token. + + + + Asynchronously gets the specified metadata. + + + Asynchronously gets the specified metadata. + + The requested metadata. + The metadata tags. + The cancellation token. + + + + Gets the specified metadata. + + + Gets the specified metadata. + + The requested metadata. + The metadata options. + The metadata tags. + The cancellation token. + + + + Asynchronously gets the specified metadata. + + + Asynchronously gets the specified metadata. + + The requested metadata. + The metadata options. + The metadata tags. + The cancellation token. + + + + Sets the specified metadata. + + + Sets the specified metadata. + + The metadata. + The cancellation token. + + + + Asynchronously sets the specified metadata. + + + Asynchronously sets the specified metadata. + + An asynchronous task context. + The metadata. + The cancellation token. + + + + Occurs when a remote message store receives an alert message from the server. + + + Some implementations, such as , + will emit Alert events when they receive alert messages from the server. + + + + + Occurs when a folder is created. + + + The event is emitted when a new folder is created. + + + + + Occurs when metadata changes. + + + The event is emitted when metadata changes. + + + + + An interface for sending messages. + + + An interface for sending messages. + Implemented by . + + + + + Send the specified message. + + + Sends the specified message. + The sender address is determined by checking the following + message headers (in order of precedence): Resent-Sender, + Resent-From, Sender, and From. + If either the Resent-Sender or Resent-From addresses are present, + the recipients are collected from the Resent-To, Resent-Cc, and + Resent-Bcc headers, otherwise the To, Cc, and Bcc headers are used. + + The final free-form text response from the server. + The message. + The cancellation token. + The progress reporting mechanism. + + + + Asynchronously send the specified message. + + + Asynchronously sends the specified message. + The sender address is determined by checking the following + message headers (in order of precedence): Resent-Sender, + Resent-From, Sender, and From. + If either the Resent-Sender or Resent-From addresses are present, + the recipients are collected from the Resent-To, Resent-Cc, and + Resent-Bcc headers, otherwise the To, Cc, and Bcc headers are used. + + The final free-form text response from the server. + The message. + The cancellation token. + The progress reporting mechanism. + + + + Send the specified message using the supplied sender and recipients. + + + Sends the specified message using the supplied sender and recipients. + + The final free-form text response from the server. + The message. + The mailbox address to use for sending the message. + The mailbox addresses that should receive the message. + The cancellation token. + The progress reporting mechanism. + + + + Asynchronously send the specified message using the supplied sender and recipients. + + + Asynchronously sends the specified message using the supplied sender and recipients. + + The final free-form text response from the server. + The message. + The mailbox address to use for sending the message. + The mailbox addresses that should receive the message. + The cancellation token. + The progress reporting mechanism. + + + + Send the specified message. + + + Sends the specified message. + The sender address is determined by checking the following + message headers (in order of precedence): Resent-Sender, + Resent-From, Sender, and From. + If either the Resent-Sender or Resent-From addresses are present, + the recipients are collected from the Resent-To, Resent-Cc, and + Resent-Bcc headers, otherwise the To, Cc, and Bcc headers are used. + + The final free-form text response from the server. + The formatting options. + The message. + The cancellation token. + The progress reporting mechanism. + + + + Asynchronously send the specified message. + + + Asynchronously sends the specified message. + The sender address is determined by checking the following + message headers (in order of precedence): Resent-Sender, + Resent-From, Sender, and From. + If either the Resent-Sender or Resent-From addresses are present, + the recipients are collected from the Resent-To, Resent-Cc, and + Resent-Bcc headers, otherwise the To, Cc, and Bcc headers are used. + + The final free-form text response from the server. + The formatting options. + The message. + The cancellation token. + The progress reporting mechanism. + + + + Send the specified message using the supplied sender and recipients. + + + Sends the specified message using the supplied sender and recipients. + + The final free-form text response from the server. + The formatting options. + The message. + The mailbox address to use for sending the message. + The mailbox addresses that should receive the message. + The cancellation token. + The progress reporting mechanism. + + + + Asynchronously send the specified message using the supplied sender and recipients. + + + Asynchronously sends the specified message using the supplied sender and recipients. + + The final free-form text response from the server. + The formatting options. + The message. + The mailbox address to use for sending the message. + The mailbox addresses that should receive the message. + The cancellation token. + The progress reporting mechanism. + + + + Occurs when a message is successfully sent via the transport. + + + The event will be emitted each time a message is successfully sent. + + + + + A summary of a message. + + + The Fetch and + FetchAsync methods + return lists of items. + The properties of the that will be available + depend on the passed to the aformentioned method. + + + + + Get the folder that the message belongs to. + + + Gets the folder that the message belongs to, if available. + + The folder. + + + + Get a bitmask of fields that have been populated. + + + Gets a bitmask of fields that have been populated. + + The fields that have been populated. + + + + Gets the body structure of the message, if available. + + + The body will be one of , + , , + or . + This property will only be set if either the + flag or the + flag is passed to + one of the Fetch + or FetchAsync + methods. + + The body structure of the message. + + + + Gets the text body part of the message if it exists. + + + Gets the text/plain body part of the message. + This property will only be usable if the + flag is passed to + one of the Fetch + or FetchAsync + methods. + + + + + The text body if it exists; otherwise, null. + + + + Gets the html body part of the message if it exists. + + + Gets the text/html body part of the message. + This property will only be usable if the + flag is passed to + one of the Fetch + or FetchAsync + methods. + + + + + The html body if it exists; otherwise, null. + + + + Gets the body parts of the message. + + + Traverses over the , enumerating all of the + objects. + This property will only be usable if either the + flag or the + flag is passed to + one of the Fetch + or FetchAsync + methods. + + The body parts. + + + + Gets the attachments. + + + Traverses over the , enumerating all of the + objects that have a Content-Disposition + header set to "attachment". + This property will only be usable if the + flag is passed to + one of the Fetch + or FetchAsync + methods. + + + + + The attachments. + + + + Gets the preview text of the message. + + + The preview text is a short snippet of the beginning of the message + text, typically shown in a mail client's message list to provide the user + with a sense of what the message is about. + This property will only be set if the + flag is passed to + one of the Fetch + or FetchAsync + methods. + + The preview text. + + + + Gets the envelope of the message, if available. + + + The envelope of a message contains information such as the + date the message was sent, the subject of the message, + the sender of the message, who the message was sent to, + which message(s) the message may be in reply to, + and the message id. + This property will only be set if the + flag is passed to + one of the Fetch + or FetchAsync + methods. + + The envelope of the message. + + + + Gets the normalized subject. + + + A normalized Subject header value where prefixes such as "Re:", "Re[#]:" and "FWD:" have been pruned. + This property is typically used for threading messages by subject. + + The normalized subject. + + + + Gets the Date header value. + + + Gets the Date header value. If the Date header is not present, the arrival date is used. + If neither are known, is returned. + + The date. + + + + Gets whether or not the message is a reply. + + + This value should be based on whether the message subject contained any "Re:", "Re[#]:" or "FWD:" prefixes. + + true if the message is a reply; otherwise, false. + + + + Gets the message flags, if available. + + + Gets the message flags, if available. + This property will only be set if the + flag is passed to + one of the Fetch + or FetchAsync + methods. + + The message flags. + + + + Gets the user-defined message flags, if available. + + + Gets the user-defined message flags, if available. + This property will only be set if the + flag is passed to + one of the Fetch + or FetchAsync + methods. + + The user-defined message flags. + + + + Gets the message annotations, if available. + + + Gets the message annotations, if available. + This property will only be set if the + flag is passed to + one of the Fetch + or FetchAsync + methods. + + The message annotations. + + + + Gets the list of headers, if available. + + + Gets the list of headers, if available. + This property will only be set if the used with + Fetch or + FetchAsync has the + flag set on or if the list is non-empty. + + + The list of headers. + + + + Gets the internal date of the message, if available. + + + Gets the internal date of the message (often the same date as found in the Received header), if available. + This property will only be set if the + flag is passed to + one of the Fetch + or FetchAsync + methods. + + The internal date of the message. + + + + Gets the date and time that the message was saved to the current mailbox, if available. + + + Gets the date and time that the message was saved to the current mailbox, if available. + This property will only be set if the + flag is passed to + one of the Fetch + or FetchAsync + methods. + + The save date of the message. + + + + Gets the size of the message, in bytes, if available. + + + Gets the size of the message, in bytes, if available. + This property will only be set if the + flag is passed to + one of the Fetch + or FetchAsync + methods. + + The size of the message. + + + + Gets the mod-sequence value for the message, if available. + + + Gets the mod-sequence value for the message, if available. + This property will only be set if the + flag is passed to + one of the Fetch + or FetchAsync + methods. + + The mod-sequence value. + + + + Gets the message-ids that the message references, if available. + + + Gets the message-ids that the message references, if available. + This property will only be set if the + flag is passed to + one of the Fetch + or FetchAsync + methods. + + The references. + + + + Get the globally unique identifier for the message, if available. + + + Gets the globally unique identifier of the message, if available. + This property will only be set if the + flag is passed to + one of the Fetch + or FetchAsync + methods. + This property maps to the EMAILID value defined in the + OBJECTID extension. + + The globally unique message identifier. + + + + Get the globally unique thread identifier for the message, if available. + + + Gets the globally unique thread identifier for the message, if available. + This property will only be set if the + flag is passed to + one of the Fetch + or FetchAsync + methods. + This property maps to the THREADID value defined in the + OBJECTID extension. + + The globally unique thread identifier. + + + + Gets the unique identifier of the message, if available. + + + Gets the unique identifier of the message, if available. + This property will only be set if the + flag is passed to + one of the Fetch + or FetchAsync + methods. + + The uid of the message. + + + + Gets the index of the message. + + + Gets the index of the message. + This property is always set. + + The index of the message. + + + + Gets the GMail message identifier, if available. + + + Gets the GMail message identifier, if available. + This property will only be set if the + flag is passed to + one of the Fetch + or FetchAsync + methods. + + The GMail message identifier. + + + + Gets the GMail thread identifier, if available. + + + Gets the GMail thread identifier, if available. + This property will only be set if the + flag is passed to + one of the Fetch + or FetchAsync + methods. + + The GMail thread identifier. + + + + Gets the list of GMail labels, if available. + + + Gets the list of GMail labels, if available. + This property will only be set if the + flag is passed to + one of the Fetch + or FetchAsync + methods. + + The GMail labels. + + + + An interface for logging the communication between a client and server. + + + An interface for logging the communication between a client and server. + + + + + + + + Get or set the authentication secret detector. + + + Gets or sets the authentication secret detector. + + The authentication secret detector. + + + + Logs a connection to the specified URI. + + + Logs a connection to the specified URI. + + The URI. + + is null. + + + The logger has been disposed. + + + An I/O error occurred. + + + + + Logs a sequence of bytes sent by the client. + + + Logs a sequence of bytes sent by the client. + is called by the upon every successful + write operation to its underlying network stream, passing the exact same , + , and arguments to the logging function. + + The buffer to log. + The offset of the first byte to log. + The number of bytes to log. + + is null. + + + is less than zero or greater than the length of . + -or- + The is not large enough to contain bytes strting + at the specified . + + + The logger has been disposed. + + + An I/O error occurred. + + + + + Logs a sequence of bytes sent by the server. + + + Logs a sequence of bytes sent by the server. + is called by the upon every successful + read of its underlying network stream with the exact buffer that was read. + + The buffer to log. + The offset of the first byte to log. + The number of bytes to log. + + is null. + + + is less than zero or greater than the length of . + -or- + The is not large enough to contain bytes strting + at the specified . + + + The logger has been disposed. + + + An I/O error occurred. + + + + + A request for replacing a message in a folder. + + + A request for replacing a message in a folder. + + + + + Get or set the folder where the replacement message should be appended. + + + Gets or sets the folder where the replacement message should be appended. + If no destination folder is specified, then the replacement message will be + appended to the original folder. + + The destination folder. + + + + A request for storing message flags. + + + A request for storing message flags. + + + + + Get the store action to perform. + + + Gets the store action to perform. + + The store action. + + + + Get or set the message flags that should be added, removed, or set. + + + Gets or sets the message flags that should be added, removed, or set. + + The message flags. + + + + Get the keywords that should be added, removed, or set. + + + Gets the keywords that should be added, removed, or set. + + The keywords. + + + + Get or set whether the store operation should run silently. + + + Gets or sets whether the store operation should run silently. + Normally, when flags or keywords are changed on a message, a event is emitted. + By setting to true, this event will not be emitted as a result of this store operation. + + true if the store operation should run silently (not emitting events for flag changes); otherwise, false. + + + + A request for storing GMail-style labels for a message. + + + A request for storing GMail-style labels for a message. + + + + + Get the store action to perform. + + + Gets the store action to perform. + + The store action. + + + + Get the GMail-style labels that should be added, removed, or set. + + + Gets the GMail-style labels that should be added, removed, or set. + + The GMail-style labels. + + + + Get or set whether the store operation should run silently. + + + Gets or sets whether the store operation should run silently. + Normally, when flags or keywords are changed on a message, a event is emitted. + By setting to true, this event will not be emitted as a result of this store operation. + + true if the store operation should run silently (not emitting events for label changes); otherwise, false. + + + + A request for storing flags, labels, or annotations for a message. + + + A request for storing flags, labels, or annotations for a message. + + + + + Get or set the mod-sequence value that indicates the last known state of the message(s) being updated. + + + Gets or sets the mod-sequence value that indicates the last known state of the message(s) being updated. + If this property is set, only messages that have not had their flags modified since the specified mod-sequence + state will have their flags updated by the Store + or StoreAsync mnethods. + + The mod-sequence value that indicates the last known state of the message(s) being updated. + + + + An interface for reporting progress of uploading or downloading messages. + + + An interface for reporting progress of uploading or downloading messages. + + + + + Report the progress of the transfer operation. + + + Reports the progress of the transfer operation. + This method is only used if the operation knows the size + of the message, part, or stream being transferred without doing + extra work to calculate it. + + The number of bytes transferred. + The total size, in bytes, of the message, part, or stream being transferred. + + + + Report the progress of the transfer operation. + + + Reports the progress of the transfer operation. + + The number of bytes transferred. + + + + An abstract mail folder implementation. + + + An abstract mail folder implementation. + + + + + The bit mask of settable flags. + + + Only flags in the list of settable flags may be set on a message by the client. + + + + + Initialize a new instance of the class. + + + Initializes a new instance of the class. + + + + + Get an object that can be used to synchronize access to the folder. + + + Gets an object that can be used to synchronize access to the folder. + + The sync root. + + + + Get the parent folder. + + + Root-level folders do not have a parent folder. + + The parent folder. + + + + Get the folder attributes. + + + Gets the folder attributes. + + The folder attributes. + + + + Get the annotation access level. + + + If annotations are supported, this property can be used to determine whether or not + the supports reading and writing annotations. + + The annotation access level. + + + + Get the supported annotation scopes. + + + If annotations are supported, this property can be used to determine which + annotation scopes are supported by the . + + The supported annotation scopes. + + + + Get the maximum size of annotation values supported by the folder. + + + If annotations are supported, this property can be used to determine the + maximum size of annotation values supported by the . + + The maximum size of annotation values supported by the folder. + + + + Get the permanent flags. + + + The permanent flags are the message flags that will persist between sessions. + If the flag is set, then the folder allows + storing of user-defined keywords. + + The permanent flags. + + + + Get the permanent keywords. + + + The permanent keywords are the keywords that will persist between sessions. + If the flag is set in , + then the folder allows storing of user-defined keywords as well. + + The permanent keywords. + + + + Get the accepted flags. + + + The accepted flags are the message flags that will be accepted and persist + for the current session. For the set of flags that will persist between + sessions, see the property. + + The accepted flags. + + + + Get the accepted keywords. + + + The accepted keywords are the keywords that will be accepted and persist + for the current session. For the set of keywords that will persist between + sessions, see the property. + + The accepted keywords. + + + + Get the directory separator. + + + Gets the directory separator. + + The directory separator. + + + + Get the read/write access of the folder. + + + Gets the read/write access of the folder. + + The read/write access. + + + + Get whether or not the folder is a namespace folder. + + + Gets whether or not the folder is a namespace folder. + + true if the folder is a namespace folder; otherwise, false. + + + + Get the full name of the folder. + + + This is the equivalent of the full path of a file on a file system. + + The full name of the folder. + + + + Get the name of the folder. + + + This is the equivalent of the file name of a file on the file system. + + The name of the folder. + + + + Get the unique identifier for the folder, if available. + + + Gets a unique identifier for the folder, if available. This is useful for clients + implementing a message cache that want to track the folder after it is renamed by another + client. + This property will only be available if the server supports the + OBJECTID extension. + + The unique folder identifier. + + + + Get a value indicating whether the folder is subscribed. + + + Gets a value indicating whether the folder is subscribed. + + true if the folder is subscribed; otherwise, false. + + + + Get a value indicating whether the folder is currently open. + + + Gets a value indicating whether the folder is currently open. + + true if the folder is currently open; otherwise, false. + + + + Get a value indicating whether the folder exists. + + + Gets a value indicating whether the folder exists. + + true if the folder exists; otherwise, false. + + + + Get the highest mod-sequence value of all messages in the mailbox. + + + Gets the highest mod-sequence value of all messages in the mailbox. + + The highest mod-sequence value. + + + + Get the UID validity. + + + UIDs are only valid so long as the UID validity value remains unchanged. If and when + the folder's is changed, a client MUST discard its cache of UIDs + along with any summary information that it may have and re-query the folder. + This value will only be set after the folder has been opened. + + The UID validity. + + + + Get the UID that the folder will assign to the next message that is added. + + + This value will only be set after the folder has been opened. + + The next UID. + + + + Get the maximum size of a message that can be appended to the folder. + + + Gets the maximum size of a message that can be appended to the folder. + If the value is not set, then the limit is unspecified. + + The append limit. + + + + Get the size of the folder. + + + Gets the size of the folder in bytes. + If the value is not set, then the size is unspecified. + + The size. + + + + Get the index of the first unread message in the folder. + + + This value will only be set after the folder has been opened. + + The index of the first unread message. + + + + Get the number of unread messages in the folder. + + + Gets the number of unread messages in the folder. + This value will only be set after calling + + with . + + The number of unread messages. + + + + Get the number of recently added messages in the folder. + + + Gets the number of recently delivered messages in the folder. + This value will only be set after calling + + with or by opening the folder. + + The number of recently added messages. + + + + Get the total number of messages in the folder. + + + Gets the total number of messages in the folder. + This value will only be set after calling + + with or by opening the folder. + + + + + The total number of messages. + + + + Get the threading algorithms supported by the folder. + + + Get the threading algorithms supported by the folder. + + The supported threading algorithms. + + + + Determine whether or not a supports a feature. + + + Determines whether or not a supports a feature. + + The desired feature. + true if the feature is supported; otherwise, false. + + + + Opens the folder using the requested folder access. + + + This variant of the + method is meant for quick resynchronization of the folder. Before calling this method, + the method MUST be called. + You should also make sure to add listeners to the and + events to get notifications of changes since + the last time the folder was opened. + + The state of the folder. + The requested folder access. + The last known value. + The last known value. + The last known list of unique message identifiers. + The cancellation token. + + is not a valid value. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The does not exist. + + + The quick resynchronization feature has not been enabled. + + + The mail store does not support the quick resynchronization feature. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously opens the folder using the requested folder access. + + + This variant of the + method is meant for quick resynchronization of the folder. Before calling this method, + the method MUST be called. + You should also make sure to add listeners to the and + events to get notifications of changes since + the last time the folder was opened. + + The state of the folder. + The requested folder access. + The last known value. + The last known value. + The last known list of unique message identifiers. + The cancellation token. + + is not a valid value. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The does not exist. + + + The quick resynchronization feature has not been enabled. + + + The mail store does not support the quick resynchronization feature. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Open the folder using the requested folder access. + + + Opens the folder using the requested folder access. + + The state of the folder. + The requested folder access. + The cancellation token. + + is not a valid value. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The does not exist. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously open the folder using the requested folder access. + + + Asynchronously opens the folder using the requested folder access. + + The state of the folder. + The requested folder access. + The cancellation token. + + is not a valid value. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The does not exist. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Close the folder, optionally expunging the messages marked for deletion. + + + Closes the folder, optionally expunging the messages marked for deletion. + + If set to true, expunge. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously close the folder, optionally expunging the messages marked for deletion. + + + Asynchronously closes the folder, optionally expunging the messages marked for deletion. + + An asynchronous task context. + If set to true, expunge. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Create a new subfolder with the given name. + + + Creates a new subfolder with the given name. + + The created folder. + The name of the folder to create. + true if the folder will be used to contain messages; otherwise, false. + The cancellation token. + + is null. + + + is empty. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is nil, and thus child folders cannot be created. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously create a new subfolder with the given name. + + + Asynchronously creates a new subfolder with the given name. + + The created folder. + The name of the folder to create. + true if the folder will be used to contain messages; otherwise, false. + The cancellation token. + + is null. + + + is empty. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is nil, and thus child folders cannot be created. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Create a new subfolder with the given name. + + + Creates a new subfolder with the given name. + + The created folder. + The name of the folder to create. + A list of special uses for the folder being created. + The cancellation token. + + is null. + -or- + is null. + + + is empty. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is nil, and thus child folders cannot be created. + + + The does not support the creation of special folders. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously create a new subfolder with the given name. + + + Asynchronously creates a new subfolder with the given name. + + The created folder. + The name of the folder to create. + A list of special uses for the folder being created. + The cancellation token. + + is null. + -or- + is null. + + + is empty. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is nil, and thus child folders cannot be created. + + + The does not support the creation of special folders. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Create a new subfolder with the given name. + + + Creates a new subfolder with the given name. + + The created folder. + The name of the folder to create. + The special use for the folder being created. + The cancellation token. + + is null. + + + is empty. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is nil, and thus child folders cannot be created. + + + The does not support the creation of special folders. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously create a new subfolder with the given name. + + + Asynchronously creates a new subfolder with the given name. + + The created folder. + The name of the folder to create. + The special use for the folder being created. + The cancellation token. + + is null. + + + is empty. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is nil, and thus child folders cannot be created. + + + The does not support the creation of special folders. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Rename the folder. + + + Renames the folder. + + The new parent folder. + The new name of the folder. + The cancellation token. + + is null. + -or- + is null. + + + does not belong to the . + -or- + is not a legal folder name. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder cannot be renamed (it is either a namespace or the Inbox). + + + The does not exist. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously rename the folder. + + + Asynchronously renames the folder. + + An asynchronous task context. + The new parent folder. + The new name of the folder. + The cancellation token. + + is null. + -or- + is null. + + + does not belong to the . + -or- + is not a legal folder name. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder cannot be renamed (it is either a namespace or the Inbox). + + + The does not exist. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Delete the folder. + + + Deletes the folder. + + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder cannot be deleted (it is either a namespace or the Inbox). + + + The does not exist. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously delete the folder. + + + Asynchronously deletes the folder. + + An asynchronous task context. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder cannot be deleted (it is either a namespace or the Inbox). + + + The does not exist. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Subscribe to the folder. + + + Subscribes to the folder. + + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously subscribe to the folder. + + + Asynchronously subscribes to the folder. + + An asynchronous task context. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Unsubscribe from the folder. + + + Unsubscribes from the folder. + + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously unsubscribe from the folder. + + + Asynchronously unsubscribes from the folder. + + An asynchronous task context. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Get the subfolders. + + + Gets the subfolders as well as queries the server for the status of the requested items. + When the argument is non-empty, this has the equivalent functionality + of calling and then calling + on each of the returned folders. + + The subfolders. + The status items to pre-populate. + If set to true, only subscribed folders will be listed. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously get the subfolders. + + + Asynchronously gets the subfolders as well as queries the server for the status of the requested items. + When the argument is non-empty, this has the equivalent functionality + of calling and then calling + on each of the returned folders. + + The subfolders. + The status items to pre-populate. + If set to true, only subscribed folders will be listed. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Get the subfolders. + + + Gets the subfolders. + + The subfolders. + If set to true, only subscribed folders will be listed. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously get the subfolders. + + + Asynchronously gets the subfolders. + + The subfolders. + If set to true, only subscribed folders will be listed. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Get the specified subfolder. + + + Gets the specified subfolder. + + The subfolder. + The name of the subfolder. + The cancellation token. + + is null. + + + is either an empty string or contains the . + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The requested folder could not be found. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously get the specified subfolder. + + + Asynchronously gets the specified subfolder. + + The subfolder. + The name of the subfolder. + The cancellation token. + + is null. + + + is either an empty string or contains the . + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The requested folder could not be found. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Force the server to flush its state for the folder. + + + Forces the server to flush its state for the folder. + + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously force the server to flush its state for the folder. + + + Asynchronously forces the server to flush its state for the folder. + + An asynchronous task context. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Update the values of the specified items. + + + Updates the values of the specified items. + The method + MUST NOT be used on a folder that is already in the opened state. Instead, other ways + of getting the desired information should be used. + For example, a common use for the + method is to get the number of unread messages in the folder. When the folder is open, however, it is + possible to use the + method to query for the list of unread messages. + + The items to update. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The does not exist. + + + The mail store does not support the STATUS command. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously update the values of the specified items. + + + Updates the values of the specified items. + The method + MUST NOT be used on a folder that is already in the opened state. Instead, other ways + of getting the desired information should be used. + For example, a common use for the + method is to get the number of unread messages in the folder. When the folder is open, however, it is + possible to use the + method to query for the list of unread messages. + + An asynchronous task context. + The items to update. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The mail store does not support the STATUS command. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Get the complete access control list for the folder. + + + Gets the complete access control list for the folder. + + The access control list. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The mail store does not support the ACL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously get the complete access control list for the folder. + + + Asynchronously gets the complete access control list for the folder. + + The access control list. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The mail store does not support the ACL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Get the access rights for a particular identifier. + + + Gets the access rights for a particular identifier. + + The access rights. + The identifier name. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The mail store does not support the ACL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously get the access rights for a particular identifier. + + + Asynchronously gets the access rights for a particular identifier. + + The access rights. + The identifier name. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The mail store does not support the ACL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Get the access rights for the current authenticated user. + + + Gets the access rights for the current authenticated user. + + The access rights. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The mail store does not support the ACL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously get the access rights for the current authenticated user. + + + Asynchronously gets the access rights for the current authenticated user. + + The access rights. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The mail store does not support the ACL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Add access rights for the specified identity. + + + Adds the given access rights for the specified identity. + + The identity name. + The access rights. + The cancellation token. + + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The mail store does not support the ACL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously add access rights for the specified identity. + + + Asynchronously adds the given access rights for the specified identity. + + An asynchronous task context. + The identity name. + The access rights. + The cancellation token. + + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The mail store does not support the ACL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Remove access rights for the specified identity. + + + Removes the given access rights for the specified identity. + + The identity name. + The access rights. + The cancellation token. + + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The mail store does not support the ACL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously remove access rights for the specified identity. + + + Asynchronously removes the given access rights for the specified identity. + + An asynchronous task context. + The identity name. + The access rights. + The cancellation token. + + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The mail store does not support the ACL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Set the access rights for the specified identity. + + + Sets the access rights for the specified identity. + + The identity name. + The access rights. + The cancellation token. + + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The mail store does not support the ACL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously set the access rights for the specified identity. + + + Asynchronously sets the access rights for the specified identity. + + An asynchronous task context. + The identity name. + The access rights. + The cancellation token. + + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The mail store does not support the ACL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Remove all access rights for the given identity. + + + Removes all access rights for the given identity. + + The identity name. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The mail store does not support the ACL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously remove all access rights for the given identity. + + + Asynchronously removes all access rights for the given identity. + + An asynchronous task context. + The identity name. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The mail store does not support the ACL extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Get the quota information for the folder. + + + Gets the quota information for the folder. + To determine if a quotas are supported, check the + property. + + The folder quota. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The mail store does not support quotas. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously get the quota information for the folder. + + + Asynchronously gets the quota information for the folder. + To determine if a quotas are supported, check the + property. + + The folder quota. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The mail store does not support quotas. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Set the quota limits for the folder. + + + Sets the quota limits for the folder. + To determine if a quotas are supported, check the + property. + + The updated folder quota. + If not null, sets the maximum number of messages to allow. + If not null, sets the maximum storage size (in kilobytes). + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The mail store does not support quotas. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously set the quota limits for the folder. + + + Asynchronously sets the quota limits for the folder. + To determine if a quotas are supported, check the + property. + + The updated folder quota. + If not null, sets the maximum number of messages to allow. + If not null, sets the maximum storage size (in kilobytes). + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The mail store does not support quotas. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Get the specified metadata. + + + Gets the specified metadata. + + The requested metadata value. + The metadata tag. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder does not support metadata. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously gets the specified metadata. + + + Asynchronously gets the specified metadata. + + The requested metadata value. + The metadata tag. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder does not support metadata. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Get the specified metadata. + + + Gets the specified metadata. + + The requested metadata. + The metadata tags. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder does not support metadata. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously gets the specified metadata. + + + Asynchronously gets the specified metadata. + + The requested metadata. + The metadata tags. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder does not support metadata. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Get the specified metadata. + + + Gets the specified metadata. + + The requested metadata. + The metadata options. + The metadata tags. + The cancellation token. + + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder does not support metadata. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously gets the specified metadata. + + + Asynchronously gets the specified metadata. + + The requested metadata. + The metadata options. + The metadata tags. + The cancellation token. + + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder does not support metadata. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Sets the specified metadata. + + + Sets the specified metadata. + + The metadata. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder does not support metadata. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously sets the specified metadata. + + + Asynchronously sets the specified metadata. + + An asynchronous task context. + The metadata. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder does not support metadata. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Expunge the folder, permanently removing all messages marked for deletion. + + + Expunges the folder, permanently removing all messages marked for deletion. + Normally, an event will be emitted for + each message that is expunged. However, if the mail store supports the quick + resynchronization feature and it has been enabled via the + method, then + the event will be emitted rather than the + event. + + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously expunge the folder, permanently removing all messages marked for deletion. + + + Asynchronously expunges the folder, permanently removing all messages marked for deletion. + Normally, an event will be emitted for + each message that is expunged. However, if the mail store supports the quick + resynchronization feature and it has been enabled via the + method, then + the event will be emitted rather than the + event. + + An asynchronous task context. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Expunge the specified uids, permanently removing them from the folder. + + + Expunges the specified uids, permanently removing them from the folder. + Normally, an event will be emitted for + each message that is expunged. However, if the mail store supports the quick + resynchronization feature and it has been enabled via the + method, then + the event will be emitted rather than the + event. + + The message uids. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously expunge the specified uids, permanently removing them from the folder. + + + Asynchronously expunges the specified uids, permanently removing them from the folder. + Normally, an event will be emitted for + each message that is expunged. However, if the mail store supports the quick + resynchronization feature and it has been enabled via the + method, then + the event will be emitted rather than the + event. + + An asynchronous task context. + The message uids. + The cancellation token. + + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Append a message to the folder. + + + Appends a message to the folder and returns the UniqueId assigned to the message. + + The UID of the appended message, if available; otherwise, null. + The append request. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + Internationalized formatting was requested but has not been enabled. + + + The does not exist. + + + The operation was canceled via the cancellation token. + + + Internationalized formatting was requested but is not supported by the server. + -or- + The request included annotations but the folder does not support annotations. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously append a message to the folder. + + + Asynchronously appends a message to the folder and returns the UniqueId assigned to the message. + + The UID of the appended message, if available; otherwise, null. + The append request. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + Internationalized formatting was requested but has not been enabled. + + + The does not exist. + + + The operation was canceled via the cancellation token. + + + Internationalized formatting was requested but is not supported by the server. + -or- + The request included annotations but the folder does not support annotations. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Append a message to the folder. + + + Appends a message to the folder and returns the UniqueId assigned to the message. + + The UID of the appended message, if available; otherwise, null. + The formatting options. + The append request. + The cancellation token. + + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + Internationalized formatting was requested but has not been enabled. + + + The does not exist. + + + The operation was canceled via the cancellation token. + + + Internationalized formatting was requested but is not supported by the server. + -or- + The request included annotations but the folder does not support annotations. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously append a message to the folder. + + + Asynchronously appends a message to the folder and returns the UniqueId assigned to the message. + + The UID of the appended message, if available; otherwise, null. + The formatting options. + The append request. + The cancellation token. + + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + Internationalized formatting was requested but has not been enabled. + + + The does not exist. + + + The operation was canceled via the cancellation token. + + + Internationalized formatting was requested but is not supported by the server. + -or- + The request included annotations but the folder does not support annotations. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Append multiple messages to the folder. + + + Appends multiple messages to the folder and returns the UniqueIds assigned to the messages. + + The UIDs of the appended messages, if available; otherwise an empty array. + The append requests. + The cancellation token. + + is null. + + + One or more of the is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + Internationalized formatting was requested but has not been enabled. + + + The does not exist. + + + The operation was canceled via the cancellation token. + + + Internationalized formatting was requested but is not supported by the server. + -or- + One ore more requests included annotations but the folder does not support annotations. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously append multiple messages to the folder. + + + Asynchronously appends multiple messages to the folder and returns the UniqueIds assigned to the messages. + + The UIDs of the appended messages, if available; otherwise an empty array. + The append requests. + The cancellation token. + + is null. + + + One or more of the is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + Internationalized formatting was requested but has not been enabled. + + + The does not exist. + + + The operation was canceled via the cancellation token. + + + Internationalized formatting was requested but is not supported by the server. + -or- + One ore more requests included annotations but the folder does not support annotations. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Append multiple messages to the folder. + + + Appends multiple messages to the folder and returns the UniqueIds assigned to the messages. + + The UIDs of the appended messages, if available; otherwise an empty array. + The formatting options. + The append requests. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + Internationalized formatting was requested but has not been enabled. + + + The does not exist. + + + The operation was canceled via the cancellation token. + + + Internationalized formatting was requested but is not supported by the server. + -or- + One ore more requests included annotations but the folder does not support annotations. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously append multiple messages to the folder. + + + Asynchronously appends multiple messages to the folder and returns the UniqueIds assigned to the messages. + + The UIDs of the appended messages, if available; otherwise an empty array. + The formatting options. + The append requests. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + Internationalized formatting was requested but has not been enabled. + + + The does not exist. + + + The operation was canceled via the cancellation token. + + + Internationalized formatting was requested but is not supported by the server. + -or- + One ore more requests included annotations but the folder does not support annotations. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Replace a message in the folder. + + + Replaces a message in the folder and returns the UniqueId assigned to the new message. + + The UID of the new message, if available; otherwise, null. + The UID of the message to be replaced. + The replace request. + The cancellation token. + + is null. + + + is invalid. + -or- + The destination folder does not belong to this . + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + Internationalized formatting was requested but has not been enabled. + + + The does not exist. + + + The is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously replace a message in the folder. + + + Asynchronously replaces a message in the folder and returns the UniqueId assigned to the new message. + + The UID of the appended message, if available; otherwise, null. + The UID of the message to be replaced. + The replace request. + The cancellation token. + + is null. + + + is invalid. + -or- + The destination folder does not belong to this . + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + Internationalized formatting was requested but has not been enabled. + + + The does not exist. + + + The is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Replace a message in the folder. + + + Replaces a message in the folder and returns the UniqueId assigned to the new message. + + The UID of the new message, if available; otherwise, null. + The formatting options. + The UID of the message to be replaced. + The replace request. + The cancellation token. + + is null. + -or- + is null. + + + is invalid. + -or- + The destination folder does not belong to this . + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + Internationalized formatting was requested but has not been enabled. + + + The does not exist. + + + The is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + Internationalized formatting was requested but is not supported by the server. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously replace a message in the folder. + + + Asynchronously replaces a message in the folder and returns the UniqueId assigned to the new message. + + The UID of the new message, if available; otherwise, null. + The formatting options. + The UID of the message to be replaced. + The replace request. + The cancellation token. + + is null. + -or- + is null. + + + is invalid. + -or- + The destination folder does not belong to this . + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + Internationalized formatting was requested but has not been enabled. + + + The does not exist. + + + The is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + Internationalized formatting was requested but is not supported by the server. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Replace a message in the folder. + + + Replaces a message in the folder and returns the UniqueId assigned to the new message. + + The UID of the new message, if available; otherwise, null. + The index of the message to be replaced. + The replace request. + The cancellation token. + + is null. + + + is out of range. + + + The destination folder does not belong to this . + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + Internationalized formatting was requested but has not been enabled. + + + The does not exist. + + + The is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously replace a message in the folder. + + + Asynchronously replaces a message in the folder and returns the UniqueId assigned to the new message. + + The UID of the appended message, if available; otherwise, null. + The index of the message to be replaced. + The replace request. + The cancellation token. + + is null. + + + is out of range. + + + The destination folder does not belong to this . + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + Internationalized formatting was requested but has not been enabled. + + + The does not exist. + + + The is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Replace a message in the folder. + + + Replaces a message in the folder and returns the UniqueId assigned to the new message. + + The UID of the new message, if available; otherwise, null. + The formatting options. + The index of the message to be replaced. + The replace request. + The cancellation token. + + is null. + -or- + is null. + + + is out of range. + + + The destination folder does not belong to this . + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + Internationalized formatting was requested but has not been enabled. + + + The does not exist. + + + The is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + Internationalized formatting was requested but is not supported by the server. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Asynchronously replace a message in the folder. + + + Asynchronously replaces a message in the folder and returns the UniqueId assigned to the new message. + + The UID of the new message, if available; otherwise, null. + The formatting options. + The index of the message to be replaced. + The replace request. + The cancellation token. + + is null. + -or- + is null. + + + is out of range. + + + The destination folder does not belong to this . + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + Internationalized formatting was requested but has not been enabled. + + + The does not exist. + + + The is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + Internationalized formatting was requested but is not supported by the server. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The server replied with a NO or BAD response. + + + + + Copy the specified message to the destination folder. + + + Copies the specified message to the destination folder. + + The UID of the message in the destination folder, if available; otherwise, null. + The UID of the message to copy. + The destination folder. + The cancellation token. + + is null. + + + is invalid. + -or- + The destination folder does not belong to the . + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The mail store does not support the UIDPLUS extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously copy the specified message to the destination folder. + + + Asynchronously copies the specified message to the destination folder. + + The UID of the message in the destination folder, if available; otherwise, null. + The UID of the message to copy. + The destination folder. + The cancellation token. + + is null. + + + is invalid. + -or- + The destination folder does not belong to the . + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The mail store does not support the UIDPLUS extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Copy the specified messages to the destination folder. + + + Copies the specified messages to the destination folder. + + The UID mapping of the messages in the destination folder, if available; otherwise an empty mapping. + The UIDs of the messages to copy. + The destination folder. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + -or- + The destination folder does not belong to the . + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The mail store does not support the UIDPLUS extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously copy the specified messages to the destination folder. + + + Asynchronously copies the specified messages to the destination folder. + + The UID mapping of the messages in the destination folder, if available; otherwise an empty mapping. + The UIDs of the messages to copy. + The destination folder. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + -or- + The destination folder does not belong to the . + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The mail store does not support the UIDPLUS extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Move the specified message to the destination folder. + + + Moves the specified message to the destination folder. + + The UID of the message in the destination folder, if available; otherwise, null. + The UID of the message to move. + The destination folder. + The cancellation token. + + is null. + + + is invalid. + -or- + The destination folder does not belong to the . + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The mail store does not support the UIDPLUS extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously move the specified message to the destination folder. + + + Asynchronously moves the specified message to the destination folder. + + The UID of the message in the destination folder, if available; otherwise, null. + The UID of the message to move. + The destination folder. + The cancellation token. + + is null. + + + is invalid. + -or- + The destination folder does not belong to the . + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The mail store does not support the UIDPLUS extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Move the specified messages to the destination folder. + + + Moves the specified messages to the destination folder. + + The UID mapping of the messages in the destination folder, if available; otherwise an empty mapping. + The UIDs of the messages to move. + The destination folder. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + -or- + The destination folder does not belong to the . + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The mail store does not support the UIDPLUS extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously move the specified messages to the destination folder. + + + Asynchronously moves the specified messages to the destination folder. + + The UID mapping of the messages in the destination folder, if available; otherwise an empty mapping. + The UIDs of the messages to move. + The destination folder. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + -or- + The destination folder does not belong to the . + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The mail store does not support the UIDPLUS extension. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Copy the specified message to the destination folder. + + + Copies the specified message to the destination folder. + + The index of the message to copy. + The destination folder. + The cancellation token. + + is null. + + + does not refer to a valid message index. + + + The destination folder does not belong to the . + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously copy the specified message to the destination folder. + + + Asynchronously copies the specified message to the destination folder. + + An asynchronous task context. + The indexes of the message to copy. + The destination folder. + The cancellation token. + + is null. + + + does not refer to a valid message index. + + + The destination folder does not belong to the . + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Copy the specified messages to the destination folder. + + + Copies the specified messages to the destination folder. + + The indexes of the messages to copy. + The destination folder. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + -or- + The destination folder does not belong to the . + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously copy the specified messages to the destination folder. + + + Asynchronously copies the specified messages to the destination folder. + + An asynchronous task context. + The indexes of the messages to copy. + The destination folder. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + -or- + The destination folder does not belong to the . + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Move the specified message to the destination folder. + + + Moves the specified message to the destination folder. + + The index of the message to move. + The destination folder. + The cancellation token. + + is null. + + + does not refer to a valid message index. + + + The destination folder does not belong to the . + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously move the specified message to the destination folder. + + + Asynchronously moves the specified message to the destination folder. + + An asynchronous task context. + The index of the message to move. + The destination folder. + The cancellation token. + + is null. + + + does not refer to a valid message index. + + + The destination folder does not belong to the . + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Move the specified messages to the destination folder. + + + Moves the specified messages to the destination folder. + + The indexes of the messages to move. + The destination folder. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + -or- + The destination folder does not belong to the . + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously move the specified messages to the destination folder. + + + Asynchronously moves the specified messages to the destination folder. + + An asynchronous task context. + The indexes of the messages to move. + The destination folder. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + -or- + The destination folder does not belong to the . + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Fetch the message summaries for the specified message UIDs. + + + Fetches the message summaries for the specified message UIDs. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + + + + An enumeration of summaries for the requested messages. + The UIDs. + The fetch request. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously fetch the message summaries for the specified message UIDs. + + + Asynchronously fetches the message summaries for the specified message + UIDs. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The UIDs. + The fetch request. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Fetch the message summaries for the specified message indexes. + + + Fetches the message summaries for the specified message indexes. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The indexes. + The fetch request. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously fetch the message summaries for the specified message indexes. + + + Asynchronously fetches the message summaries for the specified message + indexes. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The indexes. + The fetch request. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Fetch the message summaries for the messages between the two indexes, inclusive. + + + Fetches the message summaries for the messages between the two + indexes, inclusive. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The minimum index. + The maximum index, or -1 to specify no upper bound. + The fetch request. + The cancellation token. + + is null. + + + is out of range. + -or- + is out of range. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously fetch the message summaries for the messages between the two indexes, inclusive. + + + Asynchronously fetches the message summaries for the messages between + the two indexes, inclusive. + It should be noted that if another client has modified any message + in the folder, the mail service may choose to return information that was + not explicitly requested. It is therefore important to be prepared to + handle both additional fields on a for + messages that were requested as well as summaries for messages that were + not requested at all. + + An enumeration of summaries for the requested messages. + The minimum index. + The maximum index, or -1 to specify no upper bound. + The fetch request. + The cancellation token. + + is null. + + + is out of range. + -or- + is out of range. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Get the specified message headers. + + + Gets the specified message headers. + + The message headers. + The UID of the message. + The cancellation token. + The progress reporting mechanism. + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The did not return the requested message headers. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously get the specified message headers. + + + Asynchronously gets the specified message headers. + + The message headers. + The UID of the message. + The cancellation token. + The progress reporting mechanism. + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The did not return the requested message headers. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Get the specified body part headers. + + + Gets the specified body part headers. + + The body part headers. + The UID of the message. + The body part. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The did not return the requested body part headers. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously get the specified body part headers. + + + Asynchronously gets the specified body part headers. + + The body part headers. + The UID of the message. + The body part. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The did not return the requested body part headers. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Get the specified message headers. + + + Gets the specified message headers. + + The message headers. + The index of the message. + The cancellation token. + The progress reporting mechanism. + + is out of range. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The did not return the requested message headers. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously get the specified message headers. + + + Asynchronously gets the specified message headers. + + The message headers. + The index of the message. + The cancellation token. + The progress reporting mechanism. + + is out of range. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The did not return the requested message headers. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Get the specified body part headers. + + + Gets the specified body part headers. + + The body part headers. + The index of the message. + The body part. + The cancellation token. + The progress reporting mechanism. + + is out of range. + + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The did not return the requested body part headers. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously get the specified body part headers. + + + Asynchronously gets the specified body part headers. + + The body part headers. + The index of the message. + The body part. + The cancellation token. + The progress reporting mechanism. + + is out of range. + + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The did not return the requested body part headers. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Get the specified message. + + + Gets the specified message. + + + + + The message. + The UID of the message. + The cancellation token. + The progress reporting mechanism. + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The did not return the requested message. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously get the specified message. + + + Asynchronously gets the specified message. + + + + + The message. + The UID of the message. + The cancellation token. + The progress reporting mechanism. + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The did not return the requested message. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Get the specified message. + + + Gets the specified message. + + + + + The message. + The index of the message. + The cancellation token. + The progress reporting mechanism. + + is out of range. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The did not return the requested message. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously get the specified message. + + + Asynchronously gets the specified message. + + + + + The message. + The index of the message. + The cancellation token. + The progress reporting mechanism. + + is out of range. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The did not return the requested message. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Get the specified body part. + + + Gets the specified body part. + + + + + The body part. + The UID of the message. + The body part. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The did not return the requested message body. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously get the specified body part. + + + Asynchronously gets the specified body part. + + The body part. + The UID of the message. + The body part. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The did not return the requested message body. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Get the specified body part. + + + Gets the specified body part. + + The body part. + The index of the message. + The body part. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is out of range. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The did not return the requested message body. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously get the specified body part. + + + Asynchronously gets the specified body part. + + The body part. + The index of the message. + The body part. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is out of range. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The did not return the requested message body. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Get a message stream. + + + Gets a message stream. + + + + + The message stream. + The UID of the message. + The cancellation token. + The progress reporting mechanism. + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The did not return the requested message stream. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously get a message stream. + + + Asynchronously gets a message stream. + + + + + The message stream. + The UID of the message. + The cancellation token. + The progress reporting mechanism. + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The did not return the requested message stream. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Get a message stream. + + + Gets a message stream. + + + + + The message stream. + The index of the message. + The cancellation token. + The progress reporting mechanism. + + is out of range. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The did not return the requested message stream. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously get a message stream. + + + Asynchronously gets a message stream. + + + + + The message stream. + The index of the message. + The cancellation token. + The progress reporting mechanism. + + is out of range. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The did not return the requested message stream. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Get a substream of the specified message. + + + Gets a substream of the message. If the starting offset is beyond + the end of the message, an empty stream is returned. If the number of + bytes desired extends beyond the end of the message, a truncated stream + will be returned. + + The stream. + The UID of the message. + The starting offset of the first desired byte. + The number of bytes desired. + The cancellation token. + The progress reporting mechanism. + + is invalid. + + + is negative. + -or- + is negative. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The did not return the requested message stream. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously get a substream of the specified message. + + + Asynchronously gets a substream of the message. If the starting offset is beyond + the end of the message, an empty stream is returned. If the number of + bytes desired extends beyond the end of the message, a truncated stream + will be returned. + + The stream. + The UID of the message. + The starting offset of the first desired byte. + The number of bytes desired. + The cancellation token. + The progress reporting mechanism. + + is invalid. + + + is negative. + -or- + is negative. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The did not return the requested message stream. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Get a substream of the specified message. + + + Gets a substream of the message. If the starting offset is beyond + the end of the message, an empty stream is returned. If the number of + bytes desired extends beyond the end of the message, a truncated stream + will be returned. + + The stream. + The index of the message. + The starting offset of the first desired byte. + The number of bytes desired. + The cancellation token. + The progress reporting mechanism. + + is out of range. + -or- + is negative. + -or- + is negative. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The did not return the requested message stream. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously get a substream of the specified message. + + + Asynchronously gets a substream of the message. If the starting offset is beyond + the end of the message, an empty stream is returned. If the number of + bytes desired extends beyond the end of the message, a truncated stream + will be returned. + + The stream. + The index of the message. + The starting offset of the first desired byte. + The number of bytes desired. + The cancellation token. + The progress reporting mechanism. + + is out of range. + -or- + is negative. + -or- + is negative. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The did not return the requested message stream. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Get a body part as a stream. + + + Gets a body part as a stream. + + + + + The body part stream. + The UID of the message. + The desired body part. + The cancellation token. + The progress reporting mechanism. + + is invalid. + + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The did not return the requested message stream. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously get a body part as a stream. + + + Asynchronously gets a body part as a stream. + + + + + The body part stream. + The UID of the message. + The desired body part. + The cancellation token. + The progress reporting mechanism. + + is invalid. + + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The did not return the requested message stream. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Get a body part as a stream. + + + Gets a body part as a stream. + + The body part stream. + The index of the message. + The desired body part. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is out of range. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The did not return the requested message stream. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously get a body part as a stream. + + + Asynchronously gets a body part as a stream. + + The body part stream. + The index of the message. + The desired body part. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is out of range. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The did not return the requested message stream. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Get a substream of the specified body part. + + + Gets a substream of the body part. If the starting offset is beyond + the end of the body part, an empty stream is returned. If the number of + bytes desired extends beyond the end of the body part, a truncated stream + will be returned. + + The stream. + The UID of the message. + The desired body part. + The starting offset of the first desired byte. + The number of bytes desired. + The cancellation token. + The progress reporting mechanism. + + is invalid. + + + is null. + + + is negative. + -or- + is negative. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The did not return the requested message stream. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously get a substream of the specified body part. + + + Asynchronously gets a substream of the body part. If the starting offset is beyond + the end of the body part, an empty stream is returned. If the number of + bytes desired extends beyond the end of the body part, a truncated stream + will be returned. + + The stream. + The UID of the message. + The desired body part. + The starting offset of the first desired byte. + The number of bytes desired. + The cancellation token. + The progress reporting mechanism. + + is invalid. + + + is null. + + + is negative. + -or- + is negative. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The did not return the requested message stream. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Get a substream of the specified body part. + + + Gets a substream of the body part. If the starting offset is beyond + the end of the body part, an empty stream is returned. If the number of + bytes desired extends beyond the end of the body part, a truncated stream + will be returned. + + The stream. + The index of the message. + The desired body part. + The starting offset of the first desired byte. + The number of bytes desired. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is out of range. + -or- + is negative. + -or- + is negative. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The did not return the requested message stream. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously get a substream of the specified body part. + + + Asynchronously gets a substream of the body part. If the starting offset is beyond + the end of the body part, an empty stream is returned. If the number of + bytes desired extends beyond the end of the body part, a truncated stream + will be returned. + + The stream. + The index of the message. + The desired body part. + The starting offset of the first desired byte. + The number of bytes desired. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is out of range. + -or- + is negative. + -or- + is negative. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The did not return the requested message stream. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Get a substream of the specified message. + + + Gets a substream of the specified message. + For more information about how to construct the , + see Section 6.4.5 of RFC3501. + + + + + The stream. + The UID of the message. + The desired section of the message. + The cancellation token. + The progress reporting mechanism. + + is invalid. + + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The did not return the requested message stream. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously get a substream of the specified message. + + + Asynchronously gets a substream of the specified message. + For more information about how to construct the , + see Section 6.4.5 of RFC3501. + + + + + The stream. + The UID of the message. + The desired section of the message. + The cancellation token. + The progress reporting mechanism. + + is invalid. + + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The did not return the requested message stream. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Get a substream of the specified message. + + + Gets a substream of the specified message. If the starting offset is beyond + the end of the specified section of the message, an empty stream is returned. If + the number of bytes desired extends beyond the end of the section, a truncated + stream will be returned. + For more information about how to construct the , + see Section 6.4.5 of RFC3501. + + The stream. + The UID of the message. + The desired section of the message. + The starting offset of the first desired byte. + The number of bytes desired. + The cancellation token. + The progress reporting mechanism. + + is invalid. + + + is null. + + + is negative. + -or- + is negative. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The did not return the requested message stream. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously get a substream of the specified message. + + + Asynchronously gets a substream of the specified message. If the starting + offset is beyond the end of the specified section of the message, an empty stream + is returned. If the number of bytes desired extends beyond the end of the section, + a truncated stream will be returned. + For more information about how to construct the , + see Section 6.4.5 of RFC3501. + + The stream. + The UID of the message. + The desired section of the message. + The starting offset of the first desired byte. + The number of bytes desired. + The cancellation token. + The progress reporting mechanism. + + is invalid. + + + is null. + + + is negative. + -or- + is negative. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The did not return the requested message stream. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Get a substream of the specified message. + + + Gets a substream of the specified message. + For more information about how to construct the , + see Section 6.4.5 of RFC3501. + + The stream. + The index of the message. + The desired section of the message. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is out of range. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The did not return the requested message stream. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously get a substream of the specified body part. + + + Asynchronously gets a substream of the specified message. + For more information about how to construct the , + see Section 6.4.5 of RFC3501. + + The stream. + The index of the message. + The desired section of the message. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is out of range. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The did not return the requested message stream. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Get a substream of the specified message. + + + Gets a substream of the specified message. If the starting offset is beyond + the end of the specified section of the message, an empty stream is returned. If + the number of bytes desired extends beyond the end of the section, a truncated + stream will be returned. + For more information about how to construct the , + see Section 6.4.5 of RFC3501. + + The stream. + The index of the message. + The desired section of the message. + The starting offset of the first desired byte. + The number of bytes desired. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is out of range. + -or- + is negative. + -or- + is negative. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The did not return the requested message stream. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously get a substream of the specified body part. + + + Asynchronously gets a substream of the specified message. If the starting + offset is beyond the end of the specified section of the message, an empty stream + is returned. If the number of bytes desired extends beyond the end of the section, + a truncated stream will be returned. + For more information about how to construct the , + see Section 6.4.5 of RFC3501. + + The stream. + The index of the message. + The desired section of the message. + The starting offset of the first desired byte. + The number of bytes desired. + The cancellation token. + The progress reporting mechanism. + + is null. + + + is out of range. + -or- + is negative. + -or- + is negative. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The did not return the requested message stream. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Store message flags and keywords for a message. + + + Updates the message flags and keywords for a message. + + true if the store operation was successful; otherwise, false. + The UID of the message. + The message flags and keywords to store. + The cancellation token. + + is invalid. + + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The specified an + value but the folder does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously store message flags and keywords for a message. + + + Asynchronously updates the message flags and keywords for a message. + + true if the store operation was successful; otherwise, false. + The UID of the message. + The message flags and keywords to store. + The cancellation token. + + is invalid. + + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The specified an + value but the folder does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Store message flags and keywords for a set of messages. + + + Updates the message flags and keywords for a set of messages. + + The UIDs of the messages that were not updated. + The message UIDs. + The message flags and keywords to store. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The specified an + value but the folder does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously store message flags and keywords for a set of messages. + + + Asynchronously updates the message flags and keywords for a set of messages. + + The UIDs of the messages that were not updated. + The message UIDs. + The message flags and keywords to store. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The specified an + value but the folder does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Store message flags and keywords for a message. + + + Updates the message flags and keywords for a message. + + true if the store operation was successful; otherwise, false. + The index of the message. + The message flags and keywords to store. + The cancellation token. + + is invalid. + + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The specified an + value but the folder does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously store message flags and keywords for a message. + + + Asynchronously updates the message flags and keywords for a message. + + true if the store operation was successful; otherwise, false. + The index of the message. + The message flags and keywords to store. + The cancellation token. + + is invalid. + + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The specified an + value but the folder does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Store message flags and keywords for a set of messages. + + + Updates the message flags and keywords for a set of messages. + + The indexes of the messages that were not updated. + The message indexes. + The message flags and keywords to store. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The specified an + value but the folder does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously store message flags and keywords for a set of messages. + + + Asynchronously updates the message flags and keywords for a set of messages. + + The indexes of the messages that were not updated. + The message indexes. + The message flags and keywords to store. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The specified an + value but the folder does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Store GMail-style labels for a message. + + + Updates the GMail-style labels for a message. + + true if the store operation was successful; otherwise, false. + The UID of the message. + The GMail-style labels to store. + The cancellation token. + + is invalid. + + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The folder does not support storing labels. + -or- + The specified an + value but the folder does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously store GMail-style labels for a message. + + + Asynchronously updates the GMail-style labels for a message. + + true if the store operation was successful; otherwise, false. + The UID of the message. + The GMail-style labels to store. + The cancellation token. + + is invalid. + + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The folder does not support storing labels. + -or- + The specified an + value but the folder does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Store GMail-style labels for a set of messages. + + + Updates the GMail-style labels for a set of messages. + + The UIDs of the messages that were not updated. + The message UIDs. + The GMail-style labels to store. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The folder does not support storing labels. + -or- + The specified an + value but the folder does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously store GMail-style labels for a set of messages. + + + Asynchronously updates the GMail-style labels for a set of messages. + + The UIDs of the messages that were not updated. + The message UIDs. + The GMail-style labels to store. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The folder does not support storing labels. + -or- + The specified an + value but the folder does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Store GMail-style labels for a message. + + + Updates the GMail-style labels for a message. + + true if the store operation was successful; otherwise, false. + The index of the message. + The GMail-style labels to store. + The cancellation token. + + is invalid. + + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The folder does not support storing labels. + -or- + The specified an + value but the folder does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously store GMail-style labels for a message. + + + Asynchronously updates the GMail-style labels for a message. + + true if the store operation was successful; otherwise, false. + The index of the message. + The GMail-style labels to store. + The cancellation token. + + is invalid. + + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The folder does not support storing labels. + -or- + The specified an + value but the folder does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Store GMail-style labels for a set of messages. + + + Updates the GMail-style labels for a set of messages. + + The indexes of the messages that were not updated. + The message indexes. + The GMail-style labels to store. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The folder does not support storing labels. + -or- + The specified an + value but the folder does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously store GMail-style labels for a set of messages. + + + Asynchronously updates the GMail-style labels for a set of messages. + + The indexes of the messages that were not updated. + The message indexes. + The GMail-style labels to store. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open in read-write mode. + + + The folder does not support storing labels. + -or- + The specified an + value but the folder does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Store the annotations for the specified message. + + + Stores the annotations for the specified message. + + The UID of the message. + The annotations to store. + The cancellation token. + + is null. + + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open in read-write mode. + + + Cannot store annotations without any properties defined. + + + The does not support annotations. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously store the annotations for the specified message. + + + Asynchronously stores the annotations for the specified message. + + An asynchronous task context. + The UID of the message. + The annotations to store. + The cancellation token. + + is null. + + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open in read-write mode. + + + Cannot store annotations without any properties defined. + + + The does not support annotations. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Store the annotations for the specified messages. + + + Stores the annotations for the specified messages. + + The UIDs of the messages. + The annotations to store. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open in read-write mode. + + + Cannot store annotations without any properties defined. + + + The does not support annotations. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously store the annotations for the specified messages. + + + Asynchronously stores the annotations for the specified messages. + + An asynchronous task context. + The UIDs of the messages. + The annotations to store. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open in read-write mode. + + + Cannot store annotations without any properties defined. + + + The does not support annotations. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Store the annotations for the specified messages only if their mod-sequence value is less than the specified value. + + + Stores the annotations for the specified messages only if their mod-sequence value is less than the specified value. + + The unique IDs of the messages that were not updated. + The UIDs of the messages. + The mod-sequence value. + The annotations to store. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open in read-write mode. + + + Cannot store annotations without any properties defined. + + + The does not support annotations. + -or- + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously store the annotations for the specified messages only if their mod-sequence value is less than the specified value. + + + Asynchronously stores the annotations for the specified messages only if their mod-sequence value is less than the specified value. + + The unique IDs of the messages that were not updated. + The UIDs of the messages. + The mod-sequence value. + The annotations to store. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open in read-write mode. + + + Cannot store annotations without any properties defined. + + + The does not support annotations. + -or- + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Store the annotations for the specified message. + + + Stores the annotations for the specified message. + + The index of the message. + The annotations to store. + The cancellation token. + + is null. + + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open in read-write mode. + + + Cannot store annotations without any properties defined. + + + The does not support annotations. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously store the annotations for the specified message. + + + Asynchronously stores the annotations for the specified message. + + An asynchronous task context. + The indexes of the message. + The annotations to store. + The cancellation token. + + is null. + + + is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open in read-write mode. + + + Cannot store annotations without any properties defined. + + + The does not support annotations. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Store the annotations for the specified messages. + + + Stores the annotations for the specified messages. + + The indexes of the messages. + The annotations to store. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open in read-write mode. + + + Cannot store annotations without any properties defined. + + + The does not support annotations. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously store the annotations for the specified messages. + + + Asynchronously stores the annotations for the specified messages. + + An asynchronous task context. + The indexes of the messages. + The annotations to store. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open in read-write mode. + + + Cannot store annotations without any properties defined. + + + The does not support annotations. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Store the annotations for the specified messages only if their mod-sequence value is less than the specified value. + + + Stores the annotations for the specified messages only if their mod-sequence value is less than the specified value. + + The indexes of the messages that were not updated. + The indexes of the messages. + The mod-sequence value. + The annotations to store. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open in read-write mode. + + + Cannot store annotations without any properties defined. + + + The does not support annotations. + -or- + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously store the annotations for the specified messages only if their mod-sequence value is less than the specified value. + + + Asynchronously stores the annotations for the specified messages only if their mod-sequence value is less than the specified value.s + + The indexes of the messages that were not updated. + The indexes of the messages. + The mod-sequence value. + The annotations to store. + The cancellation token. + + is null. + -or- + is null. + + + One or more of the is invalid. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open in read-write mode. + + + Cannot store annotations without any properties defined. + + + The does not support annotations. + -or- + The does not support mod-sequences. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Search the folder for messages matching the specified query. + + + The returned array of unique identifiers can be used with methods such as + . + + An array of matching UIDs. + The search query. + The cancellation token. + + is null. + + + One or more search terms in the are not supported by the mail store. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously search the folder for messages matching the specified query. + + + The returned array of unique identifiers can be used with methods such as + . + + An array of matching UIDs. + The search query. + The cancellation token. + + is null. + + + One or more search terms in the are not supported by the mail store. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Search the subset of UIDs in the folder for messages matching the specified query. + + + The returned array of unique identifiers can be used with methods such as + . + + An array of matching UIDs in the specified sort order. + The subset of UIDs + The search query. + The cancellation token. + + is null. + -or- + is null. + + + is empty. + -or- + One or more of the is invalid. + + + One or more search terms in the are not supported by the mail store. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously search the subset of UIDs in the folder for messages matching the specified query. + + + The returned array of unique identifiers can be used with methods such as + . + + An array of matching UIDs in the specified sort order. + The subset of UIDs + The search query. + The cancellation token. + + is null. + -or- + is null. + + + is empty. + -or- + One or more of the is invalid. + + + One or more search terms in the are not supported. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Search the folder for messages matching the specified query. + + + Searches the folder for messages matching the specified query, + returning only the specified search results. + + The search results. + The search options. + The search query. + The cancellation token. + + is null. + + + One or more search terms in the are not supported. + -or- + The server does not support the specified search options. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously search the folder for messages matching the specified query. + + + Asynchronously searches the folder for messages matching the specified query, + returning only the specified search results. + + The search results. + The search options. + The search query. + The cancellation token. + + is null. + + + One or more search terms in the are not supported. + -or- + The server does not support the specified search options. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Search the subset of UIDs in the folder for messages matching the specified query. + + + Searches the fsubset of UIDs in the folder for messages matching the specified query, + returning only the specified search results. + + The search results. + The search options. + The subset of UIDs + The search query. + The cancellation token. + + is null. + -or- + is null. + + + is empty. + -or- + One or more of the is invalid. + + + One or more search terms in the are not supported. + -or- + The server does not support the specified search options. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously search the subset of UIDs in the folder for messages matching the specified query. + + + Asynchronously searches the fsubset of UIDs in the folder for messages matching the specified query, + returning only the specified search results. + + The search results. + The search options. + The subset of UIDs + The search query. + The cancellation token. + + is null. + -or- + is null. + + + is empty. + -or- + One or more of the is invalid. + + + One or more search terms in the are not supported. + -or- + The server does not support the specified search options. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Sort messages matching the specified query. + + + The returned array of unique identifiers will be sorted in the preferred order and + can be used with . + + /// An array of matching UIDs in the specified sort order. + The search query. + The sort order. + The cancellation token. + + is null. + -or- + is null. + + + is empty. + + + One or more search terms in the are not supported. + -or- + The server does not support sorting search results. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously sort messages matching the specified query. + + + The returned array of unique identifiers will be sorted in the preferred order and + can be used with . + + An array of matching UIDs in the specified sort order. + The search query. + The sort order. + The cancellation token. + + is null. + -or- + is null. + + + is empty. + + + One or more search terms in the are not supported. + -or- + The server does not support sorting search results. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Sort messages matching the specified query. + + + The returned array of unique identifiers will be sorted in the preferred order and + can be used with . + + An array of matching UIDs in the specified sort order. + The subset of UIDs + The search query. + The sort order. + The cancellation token. + + is null. + -or- + is null. + -or- + is null. + + + is empty. + -or- + One or more of the is invalid. + -or- + is empty. + + + One or more search terms in the are not supported. + -or- + The server does not support sorting search results. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously sort messages matching the specified query. + + + The returned array of unique identifiers will be sorted in the preferred order and + can be used with . + + An array of matching UIDs in the specified sort order. + The subset of UIDs + The search query. + The sort order. + The cancellation token. + + is null. + -or- + is null. + -or- + is null. + + + is empty. + -or- + One or more of the is invalid. + -or- + is empty. + + + One or more search terms in the are not supported. + -or- + The server does not support sorting search results. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Sort messages matching the specified query. + + + Searches the folder for messages matching the specified query, returning the search results in the specified sort order. + + The search results. + The search options. + The search query. + The sort order. + The cancellation token. + + is null. + -or- + is null. + + + is empty. + + + One or more search terms in the are not supported. + -or- + The server does not support the specified search options. + -or- + The server does not support sorting search results. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously sort messages matching the specified query. + + + Asynchronously searches the folder for messages matching the specified query, returning the search results in the specified sort order. + + The search results. + The search options. + The search query. + The sort order. + The cancellation token. + + is null. + -or- + is null. + + + is empty. + + + One or more search terms in the are not supported. + -or- + The server does not support the specified search options. + -or- + The server does not support sorting search results. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Sort messages matching the specified query. + + + Searches the folder for messages matching the specified query, returning the search results in the specified sort order. + + The search results. + The search options. + The subset of UIDs + The search query. + The sort order. + The cancellation token. + + is null. + -or- + is null. + -or- + is null. + + + is empty. + -or- + One or more of the is invalid. + -or- + is empty. + + + One or more search terms in the are not supported. + -or- + The server does not support the specified search options. + -or- + The server does not support sorting search results. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously sort messages matching the specified query, returning the search results in the specified sort order. + + + Asynchronously searches the folder for messages matching the specified query, + returning the search results in the specified sort order. + + The search results. + The search options. + The subset of UIDs + The search query. + The sort order. + The cancellation token. + + is null. + -or- + is null. + -or- + is null. + + + is empty. + -or- + One or more of the is invalid. + -or- + is empty. + + + One or more search terms in the are not supported. + -or- + The server does not support the specified search options. + -or- + The server does not support sorting search results. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Thread the messages in the folder that match the search query using the specified threading algorithm. + + + The can be used with methods such as + . + + An array of message threads. + The threading algorithm to use. + The search query. + The cancellation token. + + is not supported. + + + is null. + + + One or more search terms in the are not supported. + -or- + The server does not support threading search results. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously thread the messages in the folder that match the search query using the specified threading algorithm. + + + The can be used with methods such as + . + + An array of message threads. + The threading algorithm to use. + The search query. + The cancellation token. + + is not supported. + + + is null. + + + One or more search terms in the are not supported. + -or- + The server does not support threading search results. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Thread the messages in the folder that match the search query using the specified threading algorithm. + + + The can be used with methods such as + . + + An array of message threads. + The subset of UIDs + The threading algorithm to use. + The search query. + The cancellation token. + + is not supported. + + + is null. + -or- + is null. + + + is empty. + -or- + One or more of the is invalid. + + + One or more search terms in the are not supported. + -or- + The server does not support threading search results. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously thread the messages in the folder that match the search query using the specified threading algorithm. + + + The can be used with methods such as + . + + An array of message threads. + The subset of UIDs + The threading algorithm to use. + The search query. + The cancellation token. + + is not supported. + + + is null. + -or- + is null. + + + is empty. + -or- + One or more of the is invalid. + + + One or more search terms in the are not supported. + -or- + The server does not support threading search results. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Occurs when the folder is opened. + + + The event is emitted when the folder is opened. + + + + + Raise the opened event. + + + Raises the opened event. + + + + + Occurs when the folder is closed. + + + The event is emitted when the folder is closed. + + + + + Raise the closed event. + + + Raises the closed event. + + + + + Occurs when the folder is deleted. + + + The event is emitted when the folder is deleted. + + + + + Raise the deleted event. + + + Raises the deleted event. + + + + + Occurs when the folder is renamed. + + + The event is emitted when the folder is renamed. + + + + + Raise the renamed event. + + + Raises the renamed event. + + The old name of the folder. + The new name of the folder. + + + + Notifies the folder that a parent folder has been renamed. + + + implementations should override this method + to update their state (such as updating their + property). + + + + + Occurs when the folder is subscribed. + + + The event is emitted when the folder is subscribed. + + + + + Raise the subscribed event. + + + Raises the subscribed event. + + + + + Occurs when the folder is unsubscribed. + + + The event is emitted when the folder is unsubscribed. + + + + + Raise the unsubscribed event. + + + Raises the unsubscribed event. + + + + + Occurs when a message is expunged from the folder. + + + The event is emitted when a message is expunged from the folder. + + + + + + + + Raise the message expunged event. + + + Raises the message expunged event. + + The message expunged event args. + + + + Occurs when a message vanishes from the folder. + + + The event is emitted when messages vanish from the folder. + + + + + Raise the messages vanished event. + + + Raises the messages vanished event. + + The messages vanished event args. + + + + Occurs when flags changed on a message. + + + The event is emitted when the flags for a message are changed. + + + + + + + + Raise the message flags changed event. + + + Raises the message flags changed event. + + The message flags changed event args. + + + + Occurs when labels changed on a message. + + + The event is emitted when the labels for a message are changed. + + + + + Raise the message labels changed event. + + + Raises the message labels changed event. + + The message labels changed event args. + + + + Occurs when annotations changed on a message. + + + The event is emitted when the annotations for a message are changed. + + + + + Raise the message annotations changed event. + + + Raises the message annotations changed event. + + The message annotations changed event args. + + + + Occurs when a message summary is fetched from the folder. + + + Emitted when a message summary is fetched from the folder. + When multiple message summaries are being fetched from a remote folder, + it is possible that the connection will drop or some other exception will + occur, causing the Fetch method to fail and lose all of the data that has been + downloaded up to that point, requiring the client to request the same set of + message summaries all over again after it reconnects. This is obviously + inefficient. To alleviate this potential problem, this event will be emitted + as soon as the successfully parses each untagged FETCH + response from the server, allowing the client to commit this data immediately to + its local cache. + Depending on the IMAP server, it is possible that the + event will be emitted for the same message + multiple times if the IMAP server happens to split the requested fields into + multiple untagged FETCH responses. Use the + property to determine which f properties have + been populated. + + + + + Raise the message summary fetched event. + + + Raises the message summary fetched event. + When multiple message summaries are being fetched from a remote folder, + it is possible that the connection will drop or some other exception will + occur, causing the Fetch method to fail and lose all of the data that has been + downloaded up to that point, requiring the client to request the same set of + message summaries all over again after it reconnects. This is obviously + inefficient. To alleviate this potential problem, this event will be emitted + as soon as the successfully parses each untagged FETCH + response from the server, allowing the client to commit this data immediately to + its local cache. + Depending on the IMAP server, it is possible that + will be invoked for the same message + multiple times if the IMAP server happens to split the requested fields into + multiple untagged FETCH responses. Use the + property to determine which f properties have + been populated. + + The message summary. + + + + Occurs when metadata changes. + + + The event is emitted when metadata changes. + + + + + Raise the metadata changed event. + + + Raises the metadata changed event. + + The metadata that changed. + + + + Occurs when the mod-sequence changed on a message. + + + The event is emitted when the mod-sequence for a message is changed. + + + + + Raise the message mod-sequence changed event. + + + Raises the message mod-sequence changed event. + + The mod-sequence changed event args. + + + + Occurs when the highest mod-sequence changes. + + + The event is emitted whenever the value changes. + + + + + Raise the highest mod-sequence changed event. + + + Raises the highest mod-sequence changed event. + + + + + Occurs when the next UID changes. + + + The event is emitted whenever the value changes. + + + + + Raise the next UID changed event. + + + Raises the next UID changed event. + + + + + Occurs when the UID validity changes. + + + The event is emitted whenever the value changes. + + + + + Raise the uid validity changed event. + + + Raises the uid validity changed event. + + + + + Occurs when the folder ID changes. + + + The event is emitted whenever the value changes. + + + + + Raise the ID changed event. + + + Raises the ID changed event. + + + + + Occurs when the folder size changes. + + + The event is emitted whenever the value changes. + + + + + Raise the size changed event. + + + Raises the size changed event. + + + + + Occurs when the message count changes. + + + The event is emitted whenever the value changes. + + + + + + + + Raise the message count changed event. + + + Raises the message count changed event. + + + + + Occurs when the recent message count changes. + + + The event is emitted whenever the value changes. + + + + + Raise the recent message count changed event. + + + Raises the recent message count changed event. + + + + + Occurs when the unread message count changes. + + + The event is emitted whenever the value changes. + + + + + Raise the unread message count changed event. + + + Raises the unread message count changed event. + + + + + Get an enumerator for the messages in the folder. + + + Gets an enumerator for the messages in the folder. + + The enumerator. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + + + Get an enumerator for the messages in the folder. + + + Gets an enumerator for the messages in the folder. + + The enumerator. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder is not currently open. + + + + + Returns a that represents the current . + + + Returns a that represents the current . + + A that represents the current . + + + + An abstract mail service implementation. + + + An abstract mail service implementation. + + + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + + The protocol logger. + + is null. + + + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + + + + + Releases unmanaged resources and performs other cleanup operations before the + is reclaimed by garbage collection. + + + Releases unmanaged resources and performs other cleanup operations before the + is reclaimed by garbage collection. + + + + + Get an object that can be used to synchronize access to the service. + + + Gets an object that can be used to synchronize access to the service. + + The sync root. + + + + Get the protocol supported by the message service. + + + Gets the protocol supported by the message service. + + The protocol. + + + + Get the protocol logger. + + + Gets the protocol logger. + + The protocol logger. + + + + Get or set the set of enabled SSL and/or TLS protocol versions that the client is allowed to use. + + + Gets or sets the enabled SSL and/or TLS protocol versions that the client is allowed to use. + By default, MailKit initializes this value to enable only TLS v1.2 and greater. + TLS v1.1, TLS v1.0 and all versions of SSL are not enabled by default due to them all being + susceptible to security vulnerabilities such as POODLE. + This property should be set before calling any of the + Connect methods. + + The SSL and TLS protocol versions that are enabled. + + + + Get or set the client SSL certificates. + + + Some servers may require the client SSL certificates in order + to allow the user to connect. + This property should be set before calling any of the + Connect methods. + + The client SSL certificates. + + + + Get or set whether connecting via SSL/TLS should check certificate revocation. + + + Gets or sets whether connecting via SSL/TLS should check certificate revocation. + Normally, the value of this property should be set to true (the default) for security + reasons, but there are times when it may be necessary to set it to false. + For example, most Certificate Authorities are probably pretty good at keeping their CRL and/or + OCSP servers up 24/7, but occasionally they do go down or are otherwise unreachable due to other + network problems between the client and the Certificate Authority. When this happens, it becomes + impossible to check the revocation status of one or more of the certificates in the chain + resulting in an being thrown in the + Connect method. If this becomes a problem, + it may become desirable to set to false. + + true if certificate revocation should be checked; otherwise, false. + + + + Get or set a callback function to validate the server certificate. + + + Gets or sets a callback function to validate the server certificate. + This property should be set before calling any of the + Connect methods. + + + + + The server certificate validation callback function. + + + + Get or set the local IP end point to use when connecting to the remote host. + + + Gets or sets the local IP end point to use when connecting to the remote host. + + The local IP end point or null to use the default end point. + + + + Get or set the proxy client to use when connecting to a remote host. + + + Gets or sets the proxy client to use when connecting to a remote host via any of the + Connect methods. + + + + + The proxy client. + + + + Gets the authentication mechanisms supported by the mail server. + + + The authentication mechanisms are queried as part of the + Connect method. + + The authentication mechanisms. + + + + Gets whether or not the client is currently connected to an mail server. + + + The state is set to true immediately after + one of the Connect + methods succeeds and is not set back to false until either the client + is disconnected via or until a + is thrown while attempting to read or write to + the underlying network socket. + When an is caught, the connection state of the + should be checked before continuing. + + true if the client is connected; otherwise, false. + + + + Get whether or not the connection is secure (typically via SSL or TLS). + + + Gets whether or not the connection is secure (typically via SSL or TLS). + + true if the connection is secure; otherwise, false. + + + + Get whether or not the connection is encrypted (typically via SSL or TLS). + + + Gets whether or not the connection is encrypted (typically via SSL or TLS). + + true if the connection is encrypted; otherwise, false. + + + + Get whether or not the connection is signed (typically via SSL or TLS). + + + Gets whether or not the connection is signed (typically via SSL or TLS). + + true if the connection is signed; otherwise, false. + + + + Get the negotiated SSL or TLS protocol version. + + + Gets the negotiated SSL or TLS protocol version once an SSL or TLS connection has been made. + + The negotiated SSL or TLS protocol version. + + + + Get the negotiated SSL or TLS cipher algorithm. + + + Gets the negotiated SSL or TLS cipher algorithm once an SSL or TLS connection has been made. + + The negotiated SSL or TLS cipher algorithm. + + + + Get the negotiated SSL or TLS cipher algorithm strength. + + + Gets the negotiated SSL or TLS cipher algorithm strength once an SSL or TLS connection has been made. + + The negotiated SSL or TLS cipher algorithm strength. + + + + Get the negotiated SSL or TLS hash algorithm. + + + Gets the negotiated SSL or TLS hash algorithm once an SSL or TLS connection has been made. + + The negotiated SSL or TLS hash algorithm. + + + + Get the negotiated SSL or TLS hash algorithm strength. + + + Gets the negotiated SSL or TLS hash algorithm strength once an SSL or TLS connection has been made. + + The negotiated SSL or TLS hash algorithm strength. + + + + Get the negotiated SSL or TLS key exchange algorithm. + + + Gets the negotiated SSL or TLS key exchange algorithm once an SSL or TLS connection has been made. + + The negotiated SSL or TLS key exchange algorithm. + + + + Get the negotiated SSL or TLS key exchange algorithm strength. + + + Gets the negotiated SSL or TLS key exchange algorithm strength once an SSL or TLS connection has been made. + + The negotiated SSL or TLS key exchange algorithm strength. + + + + Get whether or not the client is currently authenticated with the mail server. + + + Gets whether or not the client is currently authenticated with the mail server. + To authenticate with the mail server, use one of the + Authenticate methods + or any of the Async alternatives. + + true if the client is authenticated; otherwise, false. + + + + Gets or sets the timeout for network streaming operations, in milliseconds. + + + Gets or sets the underlying socket stream's + and values. + + The timeout in milliseconds. + + + + The default server certificate validation callback used when connecting via SSL or TLS. + + + The default server certificate validation callback recognizes and accepts the certificates + for a list of commonly used mail servers such as gmail.com, outlook.com, mail.me.com, yahoo.com, + and gmx.net. + + true if the certificate is deemed valid; otherwise, false. + The object that is connecting via SSL or TLS. + The server's SSL certificate. + The server's SSL certificate chain. + The SSL policy errors. + + + + Establish a connection to the specified mail server. + + + Establishes a connection to the specified mail server. + + + + + The host name to connect to. + The port to connect to. If the specified port is 0, then the default port will be used. + The secure socket options to when connecting. + The cancellation token. + + is null. + + + is not between 0 and 65535. + + + The is a zero-length string. + + + The has been disposed. + + + The is already connected. + + + The operation was canceled via the cancellation token. + + + A socket error occurred trying to connect to the remote host. + + + An I/O error occurred. + + + A protocol error occurred. + + + + + Asynchronously establish a connection to the specified mail server. + + + Asynchronously establishes a connection to the specified mail server. + + An asynchronous task context. + The host name to connect to. + The port to connect to. If the specified port is 0, then the default port will be used. + The secure socket options to when connecting. + The cancellation token. + + is null. + + + is not between 0 and 65535. + + + The is a zero-length string. + + + The has been disposed. + + + The is already connected. + + + The operation was canceled via the cancellation token. + + + A socket error occurred trying to connect to the remote host. + + + An I/O error occurred. + + + A protocol error occurred. + + + + + Establish a connection to the specified mail server using the provided socket. + + + Establish a connection to the specified mail server using the provided socket. + If a successful connection is made, the + property will be populated. + + The socket to use for the connection. + The host name to connect to. + The port to connect to. If the specified port is 0, then the default port will be used. + The secure socket options to when connecting. + The cancellation token. + + is null. + -or- + is null. + + + is not between 0 and 65535. + + + is not connected. + -or- + The is a zero-length string. + + + The is already connected. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command was rejected by the mail server. + + + The server responded with an unexpected token. + + + + + Asynchronously establish a connection to the specified mail server using the provided socket. + + + Asynchronously establishes a connection to the specified mail server using the provided socket. + If a successful connection is made, the + property will be populated. + + An asynchronous task context. + The socket to use for the connection. + The host name to connect to. + The port to connect to. If the specified port is 0, then the default port will be used. + The secure socket options to when connecting. + The cancellation token. + + is null. + -or- + is null. + + + is not between 0 and 65535. + + + is not connected. + -or- + The is a zero-length string. + + + The is already connected. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command was rejected by the mail server. + + + The server responded with an unexpected token. + + + + + Establish a connection to the specified mail server using the provided stream. + + + Establish a connection to the specified mail server using the provided stream. + If a successful connection is made, the + property will be populated. + + The stream to use for the connection. + The host name to connect to. + The port to connect to. If the specified port is 0, then the default port will be used. + The secure socket options to when connecting. + The cancellation token. + + is null. + -or- + is null. + + + is not between 0 and 65535. + + + The is a zero-length string. + + + The is already connected. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command was rejected by the mail server. + + + The server responded with an unexpected token. + + + + + Asynchronously establish a connection to the specified mail server using the provided stream. + + + Asynchronously establishes a connection to the specified mail server using the provided stream. + If a successful connection is made, the + property will be populated. + + An asynchronous task context. + The stream to use for the connection. + The host name to connect to. + The port to connect to. If the specified port is 0, then the default port will be used. + The secure socket options to when connecting. + The cancellation token. + + is null. + -or- + is null. + + + is not between 0 and 65535. + + + The is a zero-length string. + + + The is already connected. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command was rejected by the mail server. + + + The server responded with an unexpected token. + + + + + Establish a connection to the specified mail server. + + + Establishes a connection to the specified mail server. + + + + + The server URI. + The cancellation token. + + The is null. + + + The is not an absolute URI. + + + The has been disposed. + + + The is already connected. + + + The operation was canceled via the cancellation token. + + + A socket error occurred trying to connect to the remote host. + + + An I/O error occurred. + + + A protocol error occurred. + + + + + Asynchronously establish a connection to the specified mail server. + + + Asynchronously establishes a connection to the specified mail server. + + An asynchronous task context. + The server URI. + The cancellation token. + + The is null. + + + The is not an absolute URI. + + + The has been disposed. + + + The is already connected. + + + The operation was canceled via the cancellation token. + + + A socket error occurred trying to connect to the remote host. + + + An I/O error occurred. + + + A protocol error occurred. + + + + + Establish a connection to the specified mail server. + + + Establishes a connection to the specified mail server. + + The argument only controls whether or + not the client makes an SSL-wrapped connection. In other words, even if the + parameter is false, SSL/TLS may still be used if + the mail server supports the STARTTLS extension. + To disable all use of SSL/TLS, use the + + overload with a value of + SecureSocketOptions.None + instead. + + + The host to connect to. + The port to connect to. If the specified port is 0, then the default port will be used. + true if the client should make an SSL-wrapped connection to the server; otherwise, false. + The cancellation token. + + The is null. + + + is out of range (0 to 65535, inclusive). + + + The is a zero-length string. + + + The has been disposed. + + + The is already connected. + + + The operation was canceled via the cancellation token. + + + A socket error occurred trying to connect to the remote host. + + + An I/O error occurred. + + + A protocol error occurred. + + + + + Asynchronously establish a connection to the specified mail server. + + + Asynchronously establishes a connection to the specified mail server. + + The argument only controls whether or + not the client makes an SSL-wrapped connection. In other words, even if the + parameter is false, SSL/TLS may still be used if + the mail server supports the STARTTLS extension. + To disable all use of SSL/TLS, use the + + overload with a value of + SecureSocketOptions.None + instead. + + + An asynchronous task context. + The host to connect to. + The port to connect to. If the specified port is 0, then the default port will be used. + true if the client should make an SSL-wrapped connection to the server; otherwise, false. + The cancellation token. + + The is null. + + + is out of range (0 to 65535, inclusive). + + + The is a zero-length string. + + + The has been disposed. + + + The is already connected. + + + The operation was canceled via the cancellation token. + + + A socket error occurred trying to connect to the remote host. + + + An I/O error occurred. + + + A protocol error occurred. + + + + + Authenticate using the supplied credentials. + + + Authenticates using the supplied credentials. + If the server supports one or more SASL authentication mechanisms, then + the SASL mechanisms that both the client and server support (not including any + OAUTH mechanisms) are tried in order of greatest security to weakest security. + Once a SASL authentication mechanism is found that both client and server support, + the credentials are used to authenticate. + If the server does not support SASL or if no common SASL mechanisms + can be found, then the default login command is used as a fallback. + To prevent the usage of certain authentication mechanisms, + simply remove them from the hash set + before calling this method. + + The encoding to use for the user's credentials. + The user's credentials. + The cancellation token. + + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected or is already authenticated. + + + The operation was canceled via the cancellation token. + + + Authentication using the supplied credentials has failed. + + + A SASL authentication error occurred. + + + An I/O error occurred. + + + A protocol error occurred. + + + + + Asynchronously authenticate using the supplied credentials. + + + Asynchronously authenticates using the supplied credentials. + If the server supports one or more SASL authentication mechanisms, then + the SASL mechanisms that both the client and server support (not including any + OAUTH mechanisms) are tried in order of greatest security to weakest security. + Once a SASL authentication mechanism is found that both client and server support, + the credentials are used to authenticate. + If the server does not support SASL or if no common SASL mechanisms + can be found, then the default login command is used as a fallback. + To prevent the usage of certain authentication mechanisms, + simply remove them from the hash set + before calling this method. + + An asynchronous task context. + The encoding to use for the user's credentials. + The user's credentials. + The cancellation token. + + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected or is already authenticated. + + + The operation was canceled via the cancellation token. + + + Authentication using the supplied credentials has failed. + + + A SASL authentication error occurred. + + + An I/O error occurred. + + + A protocol error occurred. + + + + + Authenticate using the supplied credentials. + + + Authenticates using the supplied credentials. + If the server supports one or more SASL authentication mechanisms, then + the SASL mechanisms that both the client and server support (not including any + OAUTH mechanisms) are tried in order of greatest security to weakest security. + Once a SASL authentication mechanism is found that both client and server support, + the credentials are used to authenticate. + If the server does not support SASL or if no common SASL mechanisms + can be found, then the default login command is used as a fallback. + To prevent the usage of certain authentication mechanisms, + simply remove them from the hash set + before calling this method. + + The user's credentials. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected or is already authenticated. + + + The operation was canceled via the cancellation token. + + + Authentication using the supplied credentials has failed. + + + A SASL authentication error occurred. + + + An I/O error occurred. + + + A protocol error occurred. + + + + + Asynchronously authenticate using the supplied credentials. + + + Asynchronously authenticates using the supplied credentials. + If the server supports one or more SASL authentication mechanisms, then + the SASL mechanisms that both the client and server support (not including any + OAUTH mechanisms) are tried in order of greatest security to weakest security. + Once a SASL authentication mechanism is found that both client and server support, + the credentials are used to authenticate. + If the server does not support SASL or if no common SASL mechanisms + can be found, then the default login command is used as a fallback. + To prevent the usage of certain authentication mechanisms, + simply remove them from the hash set + before calling this method. + + An asynchronous task context. + The user's credentials. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected or is already authenticated. + + + The operation was canceled via the cancellation token. + + + Authentication using the supplied credentials has failed. + + + A SASL authentication error occurred. + + + An I/O error occurred. + + + A protocol error occurred. + + + + + Authenticate using the specified user name and password. + + + Authenticates using the supplied credentials. + If the server supports one or more SASL authentication mechanisms, then + the SASL mechanisms that both the client and server support (not including any + OAUTH mechanisms) are tried in order of greatest security to weakest security. + Once a SASL authentication mechanism is found that both client and server support, + the credentials are used to authenticate. + If the server does not support SASL or if no common SASL mechanisms + can be found, then the default login command is used as a fallback. + To prevent the usage of certain authentication mechanisms, + simply remove them from the hash set + before calling this method. + + The encoding to use for the user's credentials. + The user name. + The password. + The cancellation token. + + is null. + -or- + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected or is already authenticated. + + + The operation was canceled via the cancellation token. + + + Authentication using the supplied credentials has failed. + + + A SASL authentication error occurred. + + + An I/O error occurred. + + + A protocol error occurred. + + + + + Asynchronously authenticate using the specified user name and password. + + + Asynchronously authenticates using the supplied credentials. + If the server supports one or more SASL authentication mechanisms, then + the SASL mechanisms that both the client and server support (not including any + OAUTH mechanisms) are tried in order of greatest security to weakest security. + Once a SASL authentication mechanism is found that both client and server support, + the credentials are used to authenticate. + If the server does not support SASL or if no common SASL mechanisms + can be found, then the default login command is used as a fallback. + To prevent the usage of certain authentication mechanisms, + simply remove them from the hash set + before calling this method. + + An asynchronous task context. + The encoding to use for the user's credentials. + The user name. + The password. + The cancellation token. + + is null. + -or- + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected or is already authenticated. + + + The operation was canceled via the cancellation token. + + + Authentication using the supplied credentials has failed. + + + A SASL authentication error occurred. + + + An I/O error occurred. + + + A protocol error occurred. + + + + + Authenticate using the specified user name and password. + + + Authenticates using the supplied credentials. + If the server supports one or more SASL authentication mechanisms, then + the SASL mechanisms that both the client and server support (not including any + OAUTH mechanisms) are tried in order of greatest security to weakest security. + Once a SASL authentication mechanism is found that both client and server support, + the credentials are used to authenticate. + If the server does not support SASL or if no common SASL mechanisms + can be found, then the default login command is used as a fallback. + To prevent the usage of certain authentication mechanisms, + simply remove them from the hash set + before calling this method. + + + + + The user name. + The password. + The cancellation token. + + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected or is already authenticated. + + + The operation was canceled via the cancellation token. + + + Authentication using the supplied credentials has failed. + + + A SASL authentication error occurred. + + + An I/O error occurred. + + + A protocol error occurred. + + + + + Asynchronously authenticate using the specified user name and password. + + + Asynchronously authenticates using the supplied credentials. + If the server supports one or more SASL authentication mechanisms, then + the SASL mechanisms that both the client and server support (not including any + OAUTH mechanisms) are tried in order of greatest security to weakest security. + Once a SASL authentication mechanism is found that both client and server support, + the credentials are used to authenticate. + If the server does not support SASL or if no common SASL mechanisms + can be found, then the default login command is used as a fallback. + To prevent the usage of certain authentication mechanisms, + simply remove them from the hash set + before calling this method. + + An asynchronous task context. + The user name. + The password. + The cancellation token. + + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected or is already authenticated. + + + The operation was canceled via the cancellation token. + + + Authentication using the supplied credentials has failed. + + + A SASL authentication error occurred. + + + An I/O error occurred. + + + A protocol error occurred. + + + + + Authenticate using the specified SASL mechanism. + + + Authenticates using the specified SASL mechanism. + For a list of available SASL authentication mechanisms supported by the server, + check the property after the service has been + connected. + + The SASL mechanism. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected or is already authenticated. + + + The operation was canceled via the cancellation token. + + + Authentication using the supplied credentials has failed. + + + A SASL authentication error occurred. + + + An I/O error occurred. + + + A protocol error occurred. + + + + + Asynchronously authenticate using the specified SASL mechanism. + + + Authenticates using the specified SASL mechanism. + For a list of available SASL authentication mechanisms supported by the server, + check the property after the service has been + connected. + + An asynchronous task context. + The SASL mechanism. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected or is already authenticated. + + + The operation was canceled via the cancellation token. + + + Authentication using the supplied credentials has failed. + + + A SASL authentication error occurred. + + + An I/O error occurred. + + + A protocol error occurred. + + + + + Disconnect the service. + + + If is true, a logout/quit command will be issued in order to disconnect cleanly. + + + + + If set to true, a logout/quit command will be issued in order to disconnect cleanly. + The cancellation token. + + The has been disposed. + + + + + Asynchronously disconnect the service. + + + If is true, a logout/quit command will be issued in order to disconnect cleanly. + + An asynchronous task context. + If set to true, a logout/quit command will be issued in order to disconnect cleanly. + The cancellation token. + + The has been disposed. + + + + + Ping the mail server to keep the connection alive. + + + Mail servers, if left idle for too long, will automatically drop the connection. + + The cancellation token. + + The has been disposed. + + + The is not connected. + -or- + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command was rejected by the mail server. + + + The server responded with an unexpected token. + + + + + Asynchronously ping the mail server to keep the connection alive. + + + Mail servers, if left idle for too long, will automatically drop the connection. + + An asynchronous task context. + The cancellation token. + + The has been disposed. + + + The is not connected. + -or- + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command was rejected by the mail server. + + + The server responded with an unexpected token. + + + + + Occurs when the client has been successfully connected. + + + The event is raised when the client + successfully connects to the mail server. + + + + + Raise the connected event. + + + Raises the connected event. + + The name of the host that the client connected to. + The port that the client connected to on the remote host. + The SSL/TLS options that were used when connecting. + + + + Occurs when the client gets disconnected. + + + The event is raised whenever the client + gets disconnected. + + + + + Raise the disconnected event. + + + Raises the disconnected event. + + The name of the host that the client was connected to. + The port that the client was connected to on the remote host. + The SSL/TLS options that were used by the client. + true if the disconnect was explicitly requested; otherwise, false. + + + + Occurs when the client has been successfully authenticated. + + + The event is raised whenever the client + has been authenticated. + + + + + Raise the authenticated event. + + + Raises the authenticated event. + + The notification sent by the server when the client successfully authenticates. + + + + Releases the unmanaged resources used by the and + optionally releases the managed resources. + + + Releases the unmanaged resources used by the and + optionally releases the managed resources. + + true to release both managed and unmanaged resources; + false to release only the unmanaged resources. + + + + Releases all resource used by the object. + + Call when you are finished using the . The + method leaves the in an unusable state. After + calling , you must release all references to the so + the garbage collector can reclaim the memory that the was occupying. + + + + An abstract mail spool implementation. + + + An abstract mail spool implementation. + + + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + + The protocol logger. + + is null. + + + + + Get the number of messages available in the message spool. + + + Gets the number of messages available in the message spool. + Once authenticated, the property will be set + to the number of available messages in the spool. + + + + + The message count. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + + + Get whether or not the service supports referencing messages by UIDs. + + + Not all servers support referencing messages by UID, so this property should + be checked before using + and . + If the server does not support UIDs, then all methods that take UID arguments + along with and + will fail. + + true if supports uids; otherwise, false. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + + + Get the message count. + + + Gets the message count. + + The message count. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command failed. + + + A protocol error occurred. + + + + + Asynchronously get the message count. + + + Asynchronously gets the message count. + + The message count. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command failed. + + + A protocol error occurred. + + + + + Get the UID of the message at the specified index. + + + Not all servers support UIDs, so you should first check + the property. + + The message UID. + The message index. + The cancellation token. + + is not a valid message index. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The mail spool does not support UIDs. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command failed. + + + A protocol error occurred. + + + + + Asynchronously get the UID of the message at the specified index. + + + Not all servers support UIDs, so you should first check + the property. + + The message UID. + The message index. + The cancellation token. + + is not a valid message index. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The mail spool does not support UIDs. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command failed. + + + A protocol error occurred. + + + + + Get the full list of available message UIDs. + + + Not all servers support UIDs, so you should first check + the property. + + + + + The message uids. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The mail spool does not support UIDs. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command failed. + + + A protocol error occurred. + + + + + Get the full list of available message UIDs. + + + Not all servers support UIDs, so you should first check + the property. + + The message uids. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The mail spool does not support UIDs. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command failed. + + + A protocol error occurred. + + + + + Get the size of the specified message, in bytes. + + + Gets the size of the specified message, in bytes. + + The message size, in bytes. + The index of the message. + The cancellation token. + + is not a valid message index. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command failed. + + + A protocol error occurred. + + + + + Asynchronously get the size of the specified message, in bytes. + + + Asynchronously gets the size of the specified message, in bytes. + + The message size, in bytes. + The index of the message. + The cancellation token. + + is not a valid message index. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command failed. + + + A protocol error occurred. + + + + + Get the sizes for all available messages, in bytes. + + + Gets the sizes for all available messages, in bytes. + + The message sizes, in bytes. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command failed. + + + A protocol error occurred. + + + + + Asynchronously get the sizes for all available messages, in bytes. + + + Asynchronously gets the sizes for all available messages, in bytes. + + The message sizes, in bytes. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command failed. + + + A protocol error occurred. + + + + + Get the headers for the specified message. + + + Gets the headers for the specified message. + + The message headers. + The index of the message. + The cancellation token. + + is not a valid message index. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command failed. + + + A protocol error occurred. + + + + + Asynchronously get the headers for the specified message. + + + Asynchronously gets the headers for the specified message. + + The message headers. + The index of the message. + The cancellation token. + + is not a valid message index. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command failed. + + + A protocol error occurred. + + + + + Get the headers for the specified messages. + + + Gets the headers for the specified messages. + + The headers for the specified messages. + The indexes of the messages. + The cancellation token. + + is null. + + + One or more of the are invalid. + -or- + No indexes were specified. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command failed. + + + A protocol error occurred. + + + + + Asynchronously get the headers for the specified messages. + + + Asynchronously gets the headers for the specified messages. + + The headers for the specified messages. + The indexes of the messages. + The cancellation token. + + is null. + + + One or more of the are invalid. + -or- + No indexes were specified. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command failed. + + + A protocol error occurred. + + + + + Get the headers of the messages within the specified range. + + + Gets the headers of the messages within the specified range. + + The headers of the messages within the specified range. + The index of the first message to get. + The number of messages to get. + The cancellation token. + + and do not specify + a valid range of messages. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command failed. + + + A protocol error occurred. + + + + + Get the headers of the messages within the specified range. + + + Gets the headers of the messages within the specified range. + + The headers of the messages within the specified range. + The index of the first message to get. + The number of messages to get. + The cancellation token. + + and do not specify + a valid range of messages. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command failed. + + + A protocol error occurred. + + + + + Get the message at the specified index. + + + Gets the message at the specified index. + + + + + The message. + The index of the message. + The cancellation token. + The progress reporting mechanism. + + is not a valid message index. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command failed. + + + A protocol error occurred. + + + + + Asynchronously get the message at the specified index. + + + Asynchronously gets the message at the specified index. + + The message. + The index of the message. + The cancellation token. + The progress reporting mechanism. + + is not a valid message index. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command failed. + + + A protocol error occurred. + + + + + Get the messages at the specified indexes. + + + Get the messages at the specified indexes. + + The messages. + The indexes of the messages. + The cancellation token. + The progress reporting mechanism. + + is null. + + + One or more of the are invalid. + -or- + No indexes were specified. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command failed. + + + A protocol error occurred. + + + + + Asynchronously get the messages at the specified indexes. + + + Asynchronously get the messages at the specified indexes. + + The messages. + The indexes of the messages. + The cancellation token. + The progress reporting mechanism. + + is null. + + + One or more of the are invalid. + -or- + No indexes were specified. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command failed. + + + A protocol error occurred. + + + + + Get the messages within the specified range. + + + Gets the messages within the specified range. + + + + + The messages. + The index of the first message to get. + The number of messages to get. + The cancellation token. + The progress reporting mechanism. + + and do not specify + a valid range of messages. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command failed. + + + A protocol error occurred. + + + + + Asynchronously get the messages within the specified range. + + + Asynchronously gets the messages within the specified range. + + The messages. + The index of the first message to get. + The number of messages to get. + The cancellation token. + The progress reporting mechanism. + + and do not specify + a valid range of messages. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command failed. + + + A protocol error occurred. + + + + + Get the message or header stream at the specified index. + + + Gets the message or header stream at the specified index. + + The message or header stream. + The index of the message. + true if only the headers should be retrieved; otherwise, false. + The cancellation token. + The progress reporting mechanism. + + is not a valid message index. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command failed. + + + A protocol error occurred. + + + + + Asynchronously get the message or header stream at the specified index. + + + Asynchronously gets the message or header stream at the specified index. + + The message or header stream. + The index of the message. + true if only the headers should be retrieved; otherwise, false. + The cancellation token. + The progress reporting mechanism. + + is not a valid message index. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command failed. + + + A protocol error occurred. + + + + + Get the message or header streams at the specified indexes. + + + Get the message or header streams at the specified indexes. + If the mail server supports pipelining, this method will likely be more + efficient than using for + each message because it will batch the commands to reduce latency. + + The message or header streams. + The indexes of the messages. + true if only the headers should be retrieved; otherwise, false. + The cancellation token. + The progress reporting mechanism. + + is null. + + + One or more of the are invalid. + -or- + No indexes were specified. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command failed. + + + A protocol error occurred. + + + + + Asynchronously get the message or header streams at the specified indexes. + + + Asynchronously get the message or header streams at the specified indexes. + + The messages. + The indexes of the messages. + true if only the headers should be retrieved; otherwise, false. + The cancellation token. + The progress reporting mechanism. + + is null. + + + One or more of the are invalid. + -or- + No indexes were specified. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command failed. + + + A protocol error occurred. + + + + + Get the message or header streams within the specified range. + + + Gets the message or header streams within the specified range. + If the mail server supports pipelining, this method will likely be more + efficient than using for + each message because it will batch the commands to reduce latency. + + The message or header streams. + The index of the first stream to get. + The number of streams to get. + true if only the headers should be retrieved; otherwise, false. + The cancellation token. + The progress reporting mechanism. + + and do not specify + a valid range of messages. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command failed. + + + A protocol error occurred. + + + + + Asynchronously get the message or header streams within the specified range. + + + Asynchronously gets the message or header streams within the specified range. + + The messages. + The index of the first stream to get. + The number of streams to get. + true if only the headers should be retrieved; otherwise, false. + The cancellation token. + The progress reporting mechanism. + + and do not specify + a valid range of messages. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command failed. + + + A protocol error occurred. + + + + + Mark the specified message for deletion. + + + Messages marked for deletion are not actually deleted until the session + is cleanly disconnected + (see ). + + + + + The index of the message. + The cancellation token. + + is not a valid message index. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command failed. + + + A protocol error occurred. + + + + + Asynchronously mark the specified message for deletion. + + + Messages marked for deletion are not actually deleted until the session + is cleanly disconnected + (see ). + + An asynchronous task context. + The index of the message. + The cancellation token. + + is not a valid message index. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command failed. + + + A protocol error occurred. + + + + + Mark the specified messages for deletion. + + + Messages marked for deletion are not actually deleted until the session + is cleanly disconnected + (see ). + + The indexes of the messages. + The cancellation token. + + is null. + + + One or more of the are invalid. + -or- + No indexes were specified. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command failed. + + + A protocol error occurred. + + + + + Asynchronously mark the specified messages for deletion. + + + Messages marked for deletion are not actually deleted until the session + is cleanly disconnected + (see ). + + An asynchronous task context. + The indexes of the messages. + The cancellation token. + + is null. + + + One or more of the are invalid. + -or- + No indexes were specified. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command failed. + + + A protocol error occurred. + + + + + Mark the specified range of messages for deletion. + + + Messages marked for deletion are not actually deleted until the session + is cleanly disconnected + (see ). + + + + + The index of the first message to mark for deletion. + The number of messages to mark for deletion. + The cancellation token. + + and do not specify + a valid range of messages. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command failed. + + + A protocol error occurred. + + + + + Asynchronously mark the specified range of messages for deletion. + + + Messages marked for deletion are not actually deleted until the session + is cleanly disconnected + (see ). + + An asynchronous task context. + The index of the first message to mark for deletion. + The number of messages to mark for deletion. + The cancellation token. + + and do not specify + a valid range of messages. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command failed. + + + A protocol error occurred. + + + + + Mark all messages for deletion. + + + Messages marked for deletion are not actually deleted until the session + is cleanly disconnected + (see ). + + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command failed. + + + A protocol error occurred. + + + + + Asynchronously mark all messages for deletion. + + + Messages marked for deletion are not actually deleted until the session + is cleanly disconnected + (see ). + + An asynchronous task context. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command failed. + + + A protocol error occurred. + + + + + Reset the state of all messages marked for deletion. + + + Messages marked for deletion are not actually deleted until the session + is cleanly disconnected + (see ). + + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command failed. + + + A protocol error occurred. + + + + + Asynchronously reset the state of all messages marked for deletion. + + + Messages marked for deletion are not actually deleted until the session + is cleanly disconnected + (see ). + + An asynchronous task context. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The command failed. + + + A protocol error occurred. + + + + + Get an enumerator for the messages in the folder. + + + Gets an enumerator for the messages in the folder. + + The enumerator. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + A command failed. + + + A protocol error occurred. + + + + + Get an enumerator for the messages in the folder. + + + Gets an enumerator for the messages in the folder. + + The enumerator. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + A command failed. + + + A protocol error occurred. + + + + + An abstract mail store implementation. + + + An abstract mail store implementation. + + + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + + The protocol logger. + + is null. + + + + + Gets the personal namespaces. + + + The personal folder namespaces contain a user's personal mailbox folders. + + The personal namespaces. + + + + Gets the shared namespaces. + + + The shared folder namespaces contain mailbox folders that are shared with the user. + + The shared namespaces. + + + + Gets the other namespaces. + + + The other folder namespaces contain other mailbox folders. + + The other namespaces. + + + + Get whether or not the mail store supports quotas. + + + Gets whether or not the mail store supports quotas. + + true if the mail store supports quotas; otherwise, false. + + + + Get the threading algorithms supported by the mail store. + + + The threading algorithms are queried as part of the + Connect + and Authenticate methods. + + + + + The supported threading algorithms. + + + + Get the Inbox folder. + + + The Inbox folder is the default folder and always exists on the mail store. + This property will only be available after the client has been authenticated. + + The Inbox folder. + + + + Enable the quick resynchronization feature. + + + Enables quick resynchronization when a folder is opened using the + + method. + If this feature is enabled, the event is replaced + with the event. + This method needs to be called immediately after calling one of the + Authenticate methods, before + opening any folders. + + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + Quick resynchronization needs to be enabled before selecting a folder. + + + The mail store does not support quick resynchronization. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + A protocol error occurred. + + + The command failed. + + + + + Asynchronously enable the quick resynchronization feature. + + + Enables quick resynchronization when a folder is opened using the + + method. + If this feature is enabled, the event is replaced + with the event. + This method needs to be called immediately after calling one of the + Authenticate methods, before + opening any folders. + + An asynchronous task context. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + Quick resynchronization needs to be enabled before selecting a folder. + + + The mail store does not support quick resynchronization. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + A protocol error occurred. + + + The command failed. + + + + + Get the specified special folder. + + + Not all mail stores support special folders. Each implementation + should provide a way to determine if special folders are supported. + + The folder if available; otherwise null. + The type of special folder. + + is out of range. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + + + Get the folder for the specified namespace. + + + Gets the folder for the specified namespace. + + The folder. + The namespace. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder could not be found. + + + + + Get all of the folders within the specified namespace. + + + Gets all of the folders within the specified namespace. + + The folders. + The namespace. + If set to true, only subscribed folders will be listed. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + A protocol error occurred. + + + The command failed. + + + + + Asynchronously get all of the folders within the specified namespace. + + + Asynchronously gets all of the folders within the specified namespace. + + The folders. + The namespace. + If set to true, only subscribed folders will be listed. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + A protocol error occurred. + + + The command failed. + + + + + Get all of the folders within the specified namespace. + + + Gets all of the folders within the specified namespace. + + The folders. + The namespace. + The status items to pre-populate. + If set to true, only subscribed folders will be listed. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + A protocol error occurred. + + + The command failed. + + + + + Asynchronously get all of the folders within the specified namespace. + + + Asynchronously gets all of the folders within the specified namespace. + + The folders. + The namespace. + The status items to pre-populate. + If set to true, only subscribed folders will be listed. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + A protocol error occurred. + + + The command failed. + + + + + Get the folder for the specified path. + + + Gets the folder for the specified path. + + The folder. + The folder path. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + The folder could not be found. + + + An I/O error occurred. + + + A protocol error occurred. + + + The command failed. + + + + + Asynchronously get the folder for the specified path. + + + Asynchronously gets the folder for the specified path. + + The folder. + The folder path. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The operation was canceled via the cancellation token. + + + The folder could not be found. + + + An I/O error occurred. + + + A protocol error occurred. + + + The command failed. + + + + + Gets the specified metadata. + + + Gets the specified metadata. + + The requested metadata value. + The metadata tag. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder does not support metadata. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously gets the specified metadata. + + + Asynchronously gets the specified metadata. + + The requested metadata value. + The metadata tag. + The cancellation token. + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder does not support metadata. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Gets the specified metadata. + + + Gets the specified metadata. + + The requested metadata. + The metadata tags. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder does not support metadata. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously gets the specified metadata. + + + Asynchronously gets the specified metadata. + + The requested metadata. + The metadata tags. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder does not support metadata. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Gets the specified metadata. + + + Gets the specified metadata. + + The requested metadata. + The metadata options. + The metadata tags. + The cancellation token. + + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder does not support metadata. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously gets the specified metadata. + + + Asynchronously gets the specified metadata. + + The requested metadata. + The metadata options. + The metadata tags. + The cancellation token. + + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder does not support metadata. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Sets the specified metadata. + + + Sets the specified metadata. + + The metadata. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder does not support metadata. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Asynchronously sets the specified metadata. + + + Asynchronously sets the specified metadata. + + An asynchronous task context. + The metadata. + The cancellation token. + + is null. + + + The has been disposed. + + + The is not connected. + + + The is not authenticated. + + + The folder does not support metadata. + + + The operation was canceled via the cancellation token. + + + An I/O error occurred. + + + The server's response contained unexpected tokens. + + + The command failed. + + + + + Occurs when a remote message store receives an alert message from the server. + + + The event is raised whenever the mail server sends an + alert message. + + + + + Raise the alert event. + + + Raises the alert event. + + The alert message. + + is null. + + + + + Occurs when a folder is created. + + + The event is emitted when a new folder is created. + + + + + Raise the folder created event. + + + Raises the folder created event. + + The folder that was just created. + + + + Occurs when metadata changes. + + + The event is emitted when metadata changes. + + + + + Raise the metadata changed event. + + + Raises the metadata changed event. + + The metadata that changed. + + + + An abstract mail transport implementation. + + + An abstract mail transport implementation. + + + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + + The protocol logger. + + is null. + + + + + Send the specified message. + + + Sends the specified message. + The sender address is determined by checking the following + message headers (in order of precedence): Resent-Sender, + Resent-From, Sender, and From. + If either the Resent-Sender or Resent-From addresses are present, + the recipients are collected from the Resent-To, Resent-Cc, and + Resent-Bcc headers, otherwise the To, Cc, and Bcc headers are used. + + + + + The final free-form text response from the server. + The message. + The cancellation token. + The progress reporting mechanism. + + is null. + + + The has been disposed. + + + The is not connected. + + + Authentication is required before sending a message. + + + A sender has not been specified. + -or- + No recipients have been specified. + + + The operation has been canceled. + + + An I/O error occurred. + + + The send command failed. + + + A protocol exception occurred. + + + + + Asynchronously send the specified message. + + + Asynchronously sends the specified message. + The sender address is determined by checking the following + message headers (in order of precedence): Resent-Sender, + Resent-From, Sender, and From. + If either the Resent-Sender or Resent-From addresses are present, + the recipients are collected from the Resent-To, Resent-Cc, and + Resent-Bcc headers, otherwise the To, Cc, and Bcc headers are used. + + The final free-form text response from the server. + The message. + The cancellation token. + The progress reporting mechanism. + + is null. + + + The has been disposed. + + + The is not connected. + + + Authentication is required before sending a message. + + + A sender has not been specified. + -or- + No recipients have been specified. + + + The operation has been canceled. + + + An I/O error occurred. + + + The send command failed. + + + A protocol exception occurred. + + + + + Send the specified message using the supplied sender and recipients. + + + Sends the specified message using the supplied sender and recipients. + + The final free-form text response from the server. + The message. + The mailbox address to use for sending the message. + The mailbox addresses that should receive the message. + The cancellation token. + The progress reporting mechanism. + + is null. + -or- + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected. + + + Authentication is required before sending a message. + + + A sender has not been specified. + -or- + No recipients have been specified. + + + The operation has been canceled. + + + An I/O error occurred. + + + The send command failed. + + + A protocol exception occurred. + + + + + Asynchronously send the specified message using the supplied sender and recipients. + + + Asynchronously sends the specified message using the supplied sender and recipients. + + The final free-form text response from the server. + The message. + The mailbox address to use for sending the message. + The mailbox addresses that should receive the message. + The cancellation token. + The progress reporting mechanism. + + is null. + -or- + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected. + + + Authentication is required before sending a message. + + + A sender has not been specified. + -or- + No recipients have been specified. + + + The operation has been canceled. + + + An I/O error occurred. + + + The send command failed. + + + A protocol exception occurred. + + + + + Send the specified message. + + + Sends the specified message. + The sender address is determined by checking the following + message headers (in order of precedence): Resent-Sender, + Resent-From, Sender, and From. + If either the Resent-Sender or Resent-From addresses are present, + the recipients are collected from the Resent-To, Resent-Cc, and + Resent-Bcc headers, otherwise the To, Cc, and Bcc headers are used. + + + + + The final free-form text response from the server. + The formatting options. + The message. + The cancellation token. + The progress reporting mechanism. + + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected. + + + Authentication is required before sending a message. + + + A sender has not been specified. + -or- + No recipients have been specified. + + + The operation has been canceled. + + + Internationalized formatting was requested but is not supported by the transport. + + + An I/O error occurred. + + + The send command failed. + + + A protocol exception occurred. + + + + + Asynchronously send the specified message. + + + Asynchronously sends the specified message. + The sender address is determined by checking the following + message headers (in order of precedence): Resent-Sender, + Resent-From, Sender, and From. + If either the Resent-Sender or Resent-From addresses are present, + the recipients are collected from the Resent-To, Resent-Cc, and + Resent-Bcc headers, otherwise the To, Cc, and Bcc headers are used. + + The final free-form text response from the server. + The formatting options. + The message. + The cancellation token. + The progress reporting mechanism. + + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected. + + + Authentication is required before sending a message. + + + A sender has not been specified. + -or- + No recipients have been specified. + + + The operation has been canceled. + + + Internationalized formatting was requested but is not supported by the transport. + + + An I/O error occurred. + + + The send command failed. + + + A protocol exception occurred. + + + + + Send the specified message using the supplied sender and recipients. + + + Sends the specified message using the supplied sender and recipients. + + The final free-form text response from the server. + The formatting options. + The message. + The mailbox address to use for sending the message. + The mailbox addresses that should receive the message. + The cancellation token. + The progress reporting mechanism. + + is null. + -or- + is null. + -or- + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected. + + + Authentication is required before sending a message. + + + A sender has not been specified. + -or- + No recipients have been specified. + + + The operation has been canceled. + + + Internationalized formatting was requested but is not supported by the transport. + + + An I/O error occurred. + + + The send command failed. + + + A protocol exception occurred. + + + + + Asynchronously send the specified message using the supplied sender and recipients. + + + Asynchronously sends the specified message using the supplied sender and recipients. + + The final free-form text response from the server. + The formatting options. + The message. + The mailbox address to use for sending the message. + The mailbox addresses that should receive the message. + The cancellation token. + The progress reporting mechanism. + + is null. + -or- + is null. + -or- + is null. + -or- + is null. + + + The has been disposed. + + + The is not connected. + + + Authentication is required before sending a message. + + + A sender has not been specified. + -or- + No recipients have been specified. + + + The operation has been canceled. + + + Internationalized formatting was requested but is not supported by the transport. + + + An I/O error occurred. + + + The send command failed. + + + A protocol exception occurred. + + + + + Occurs when a message is successfully sent via the transport. + + + The event will be emitted each time a message is successfully sent. + + + + + Raise the message sent event. + + + Raises the message sent event. + + The message sent event args. + + + + Event args used when the state of a message changes. + + + Event args used when the state of a message changes. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The message index. + + is out of range. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The message index. + The unique id of the message. + + is out of range. + + + + + Gets the index of the message that changed. + + + Gets the index of the message that changed. + + The index of the message. + + + + Gets the unique ID of the message that changed, if available. + + + Gets the unique ID of the message that changed, if available. + + The unique ID of the message. + + + + An enumeration of message flags. + + + An enumeration of message flags. + + + + + No message flags are set. + + + + + The message has been read. + + + + + The message has been answered (replied to). + + + + + The message has been flagged for importance. + + + + + The message has been marked for deletion. + + + + + The message is marked as a draft. + + + + + The message has just recently arrived in the folder. + + + + + User-defined flags are allowed by the folder. + + + + + Event args for the event. + + + Event args for the event. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The message index. + + + + Initializes a new instance of the class. + + + Creates a new . + + The message index. + The message flags. + + + + Initializes a new instance of the class. + + + Creates a new . + + The message index. + The message flags. + The user-defined keywords. + + is null. + + + is out of range. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The message index. + The message flags. + The modification sequence value. + + is out of range. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The message index. + The message flags. + The user-defined keywords. + The modification sequence value. + + is null. + + + is out of range. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The message index. + The unique id of the message. + The message flags. + + is out of range. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The message index. + The unique id of the message. + The message flags. + The user-defined keywords. + + is null. + + + is out of range. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The message index. + The unique id of the message. + The message flags. + The modification sequence value. + + is out of range. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The message index. + The unique id of the message. + The message flags. + The user-defined message flags. + The modification sequence value. + + is null. + + + is out of range. + + + + + Gets the updated message flags. + + + Gets the updated message flags. + + The updated message flags. + + + + Gets the updated user-defined message flags. + + + Gets the updated user-defined message flags. + + The updated user-defined message flags. + + + + Gets the updated mod-sequence value of the message, if available. + + + Gets the updated mod-sequence value of the message, if available. + + The mod-sequence value. + + + + Event args for the event. + + + Event args for the event. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The message index. + + is out of range. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The message index. + The message labels. + + is null. + + + is out of range. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The message index. + The message labels. + The modification sequence value. + + is null. + + + is out of range. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The message index. + The unique id of the message. + The message labels. + + is null. + + + is out of range. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The message index. + The unique id of the message. + The message labels. + The modification sequence value. + + is null. + + + is out of range. + + + + + Gets the updated labels. + + + Gets the updated labels. + + The updated labels. + + + + Gets the updated mod-sequence value of the message, if available. + + + Gets the updated mod-sequence value of the message, if available. + + The mod-sequence value. + + + + The exception that is thrown when a message (or body part) could not be found. + + + This exception is thrown by methods such as + IMailFolder.GetMessage, + IMailFolder.GetBodyPart, or + IMailFolder.GetStream + when the server's response does not contain the message, body part, or stream data requested. + + + + + Initializes a new instance of the class. + + + Deserializes a . + + The serialization info. + The streaming context. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The error message. + The inner exception. + + + + + + Initializes a new instance of the class. + + + Creates a new . + + The error message. + + + + Event args used when a message is successfully sent. + + + Event args used when message is successfully sent. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The message that was just sent. + The response from the server. + + is null. + -or- + is null. + + + + + Get the message that was just sent. + + + Gets the message that was just sent. + + The message. + + + + Get the server's response. + + + Gets the server's response. + + The response. + + + + Routines for sorting messages. + + + Routines for sorting messages. + + + + + Sorts the messages by the specified ordering. + + + Sorts the messages by the specified ordering. + + The sorted messages. + The message items must implement the interface. + The messages to sort. + The sort ordering. + + is null. + -or- + is null. + + + contains one or more items that is missing information needed for sorting. + -or- + is an empty list. + + + + + Sorts the messages by the specified ordering. + + + Sorts the messages by the specified ordering. + + The sorted messages. + The message items must implement the interface. + The messages to sort. + The sort ordering. + + is null. + -or- + is null. + + + contains one or more items that is missing information needed for sorting. + -or- + is an empty list. + + + + + A summary of a message. + + + The Fetch and + FetchAsync methods + return lists of items. + The properties of the that will be available + depend on the passed to the aformentioned method. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The message index. + + is negative. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The folder that the message belongs to. + The message index. + + is null. + + + is negative. + + + + + Get the folder that the message belongs to. + + + Gets the folder that the message belongs to, if available. + + The folder. + + + + Get a bitmask of fields that have been populated. + + + Gets a bitmask of fields that have been populated. + + The fields that have been populated. + + + + Gets the body structure of the message, if available. + + + The body will be one of , + , , + or . + This property will only be set if either the + flag or the + flag is passed to + one of the Fetch + or FetchAsync + methods. + + The body structure of the message. + + + + Gets the text body part of the message if it exists. + + + Gets the text/plain body part of the message. + This property will only be usable if the + flag is passed to + one of the Fetch + or FetchAsync + methods. + + + + + The text body if it exists; otherwise, null. + + + + Gets the html body part of the message if it exists. + + + Gets the text/html body part of the message. + This property will only be usable if the + flag is passed to + one of the Fetch + or FetchAsync + methods. + + + + + The html body if it exists; otherwise, null. + + + + Gets the body parts of the message. + + + Traverses over the , enumerating all of the + objects. + This property will only be usable if either the + flag or the + flag is passed to + one of the Fetch + or FetchAsync + methods. + + The body parts. + + + + Gets the attachments. + + + Traverses over the , enumerating all of the + objects that have a Content-Disposition + header set to "attachment". + This property will only be usable if the + flag is passed to + one of the Fetch + or FetchAsync + methods. + + + + + The attachments. + + + + Gets the preview text of the message. + + + The preview text is a short snippet of the beginning of the message + text, typically shown in a mail client's message list to provide the user + with a sense of what the message is about. + This property will only be set if the + flag is passed to + one of the Fetch + or FetchAsync + methods. + + The preview text. + + + + Gets the envelope of the message, if available. + + + The envelope of a message contains information such as the + date the message was sent, the subject of the message, + the sender of the message, who the message was sent to, + which message(s) the message may be in reply to, + and the message id. + This property will only be set if the + flag is passed to + one of the Fetch + or FetchAsync + methods. + + The envelope of the message. + + + + Gets the normalized subject. + + + A normalized Subject header value where prefixes such as + "Re:", "Re[#]:", etc have been pruned. + + The normalized subject. + + + + Gets whether or not the message is a reply. + + + This value should be based on whether the message subject contained any "Re:" or "Fwd:" prefixes. + + true if the message is a reply; otherwise, false. + + + + Gets the Date header value. + + + Gets the Date header value. If the Date header is not present, the arrival date is used. + If neither are known, is returned. + + The date. + + + + Gets the message flags, if available. + + + Gets the message flags, if available. + This property will only be set if the + flag is passed to + one of the Fetch + or FetchAsync + methods. + + The message flags. + + + + Gets the user-defined message flags, if available. + + + Gets the user-defined message flags, if available. + This property will only be set if the + flag is passed to + one of the Fetch + or FetchAsync + methods. + + The user-defined message flags. + + + + Gets the message annotations, if available. + + + Gets the message annotations, if available. + This property will only be set if the + flag is passed to + one of the Fetch + or FetchAsync + methods. + + The message annotations. + + + + Gets the list of headers, if available. + + + Gets the list of headers, if available. + This property will only be set if the used with + Fetch or + FetchAsync has the + flag set on or if the list is non-empty. + + + The list of headers. + + + + Gets the internal date of the message (i.e. the "received" date), if available. + + + Gets the internal date of the message (i.e. the "received" date), if available. + This property will only be set if the + flag is passed to + one of the Fetch + or FetchAsync + methods. + + The internal date of the message. + + + + Gets the date and time that the message was saved to the current mailbox, if available. + + + Gets the date and time that the message was saved to the current mailbox, if available. + This property will only be set if the + flag is passed to + one of the Fetch + or FetchAsync + methods. + + The save date of the message. + + + + Gets the size of the message, in bytes, if available. + + + Gets the size of the message, in bytes, if available. + This property will only be set if the + flag is passed to + one of the Fetch + or FetchAsync + methods. + + The size of the message. + + + + Gets the mod-sequence value for the message, if available. + + + Gets the mod-sequence value for the message, if available. + This property will only be set if the + flag is passed to + one of the Fetch + or FetchAsync + methods. + + The mod-sequence value. + + + + Gets the message-ids that the message references, if available. + + + Gets the message-ids that the message references, if available. + This property will only be set if the + flag is passed to + one of the Fetch + or FetchAsync + methods. + + The references. + + + + Get the globally unique identifier for the message, if available. + + + Gets the globally unique identifier of the message, if available. + This property will only be set if the + flag is passed to + one of the Fetch + or FetchAsync + methods. + This property maps to the EMAILID value defined in the + OBJECTID extension. + + The globally unique message identifier. + + + + Get the globally unique thread identifier for the message, if available. + + + Gets the globally unique thread identifier for the message, if available. + This property will only be set if the + flag is passed to + one of the Fetch + or FetchAsync + methods. + This property maps to the THREADID value defined in the + OBJECTID extension. + + The globally unique thread identifier. + + + + Gets the unique identifier of the message, if available. + + + Gets the unique identifier of the message, if available. + This property will only be set if the + flag is passed to + one of the Fetch + or FetchAsync + methods. + + The uid of the message. + + + + Gets the index of the message. + + + Gets the index of the message. + This property is always set. + + The index of the message. + + + + Gets the GMail message identifier, if available. + + + Gets the GMail message identifier, if available. + This property will only be set if the + flag is passed to + one of the Fetch + or FetchAsync + methods. + + The GMail message identifier. + + + + Gets the GMail thread identifier, if available. + + + Gets the GMail thread identifier, if available. + This property will only be set if the + flag is passed to + one of the Fetch + or FetchAsync + methods. + + The GMail thread identifier. + + + + Gets the list of GMail labels, if available. + + + Gets the list of GMail labels, if available. + This property will only be set if the + flag is passed to + one of the Fetch + or FetchAsync + methods. + + The GMail labels. + + + + Event args used when a message summary has been fetched from a folder. + + + Event args used when a message summary has been fetched from a folder. + + + + + Initializes a new instance of the class. + + + Creates a new + + The message summary. + + is null. + + + + + Get the message summary. + + + Gets the message summary. + + The message summary. + + + + A bitfield of fields. + + + are used to specify which properties + of should be populated by calls to + , + , or + . + + + + + Don't fetch any summary items. + + + + + Fetch the . + Fetches all ANNOATION values as defined in + rfc5257. + + + + + Fetch the . + Fetches the BODY value as defined in + rfc3501. + Unlike , Body will not populate the + parameters nor will it populate the + , + or properties of each + body part. This makes Body far less useful than BodyStructure especially when + it is desirable to determine whether or not a body part is an attachment. + + + + + Fetch the (but with more details than ). + Fetches the BODYSTRUCTURE value as defined in + rfc3501. + Unlike , BodyStructure will also populate the + parameters as well as the + , + and properties of each + body part. The Content-Disposition information is especially important when trying to + determine whether or not a body part is an attachment, for example. + + + + + Fetch the . + Fetches the ENVELOPE value as defined in + rfc3501. + + + + + Fetch the . + Fetches the FLAGS value as defined in + rfc3501. + + + + + Fetch the . + Fetches the INTERNALDATE value as defined in + rfc3501. + + + + + Fetch the . + Fetches the RFC822.SIZE value as defined in + rfc3501. + + + + + Fetch the . + Fetches the MODSEQ value as defined in + rfc4551. + + + + + Fetch the . + + + + + Fetch the . + Fetches the UID value as defined in + rfc3501. + + + + + Fetch the . + Fetches the EMAILID value as defined in + rfc8474. + + + + + Fetch the . + Fetches the THREADID value as defined in + rfc8474. + + + + + Fetch the . + Fetches the X-GM-MSGID value as defined in Google's + IMAP extensions + documentation. + + + + + Fetch the . + Fetches the X-GM-THRID value as defined in Google's + IMAP extensions + documentation. + + + + + Fetch the . + Fetches the X-GM-LABELS value as defined in Google's + IMAP extensions + documentation. + + + + + Fetch the the complete list of for each message. + + + + + Fetch the . + This property can be quite expensive to calculate because it is typically not an + item that is cached on the IMAP server. Instead, MailKit must download a hunk of the + message body so that it can decode and parse it in order to generate a meaningful + text snippet. This usually involves downloading the first 512 bytes for text/plain + message bodies and the first 16 kilobytes for text/html message bodies. If a + message contains both a text/plain body and a text/html body, then the + text/plain content is used in order to reduce network traffic. + + + + + Fetch the . + Fetches the SAVEDATE value as defined in + rfc8514. + + + + + A macro for fetching the , , + , and values. + This macro maps to the equivalent ALL macro as defined in + rfc3501. + + + + + A macro for fetching the , , and + values. + This macro maps to the equivalent FAST macro as defined in + rfc3501. + + + + + A macro for fetching the , , + , , and values. + This macro maps to the equivalent FULL macro as defined in + rfc3501. + + + + + Event args used when a message vanishes from a folder. + + + Event args used when a message vanishes from a folder. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The list of unique identifiers. + If set to true, the messages vanished in the past as opposed to just now. + + is null. + + + + + Gets the unique identifiers of the messages that vanished. + + + Gets the unique identifiers of the messages that vanished. + + The unique identifiers. + + + + Gets whether the messages vanished in the past as opposed to just now. + + + Gets whether the messages vanished in the past as opposed to just now. + + true if the messages vanished earlier; otherwise, false. + + + + A message thread. + + + A message thread. + + + + + Initializes a new instance of the class. + + + Creates a new message thread node. + + The unique identifier of the message. + + + + Initializes a new instance of the class. + + + Creates a new message thread node. + + The message summary. + + + + Gets the message summary, if available. + + + Gets the message summary, if available. + This property will only ever be set if the + was created by the . s that are + created by any of the + Thread or + ThreadAsync + methods will always be null. + + The message summary. + + + + Gets the unique identifier of the message. + + + The unique identifier may be null if the message is missing from the + or from the list of messages provided to the + . + + The unique identifier. + + + + Gets the children. + + + Each child represents a reply to the message referenced by . + + The children. + + + + Threads messages according to the algorithms defined in rfc5256. + + + Threads messages according to the algorithms defined in rfc5256. + + + + + Thread the messages according to the specified threading algorithm. + + + Thread the messages according to the specified threading algorithm. + + The threaded messages. + The messages. + The threading algorithm. + + is null. + + + is not a valid threading algorithm. + + + contains one or more items that is missing information needed for threading. + + + + + Threads the messages according to the specified threading algorithm + and sorts the resulting threads by the specified ordering. + + + Threads the messages according to the specified threading algorithm + and sorts the resulting threads by the specified ordering. + + The threaded messages. + The messages. + The threading algorithm. + The requested sort ordering. + + is null. + -or- + is null. + + + is not a valid threading algorithm. + + + contains one or more items that is missing information needed for threading or sorting. + -or- + is an empty list. + + + + + Gets the threadable subject. + + + Gets the threadable subject. + + The threadable subject. + The Subject header value. + The reply depth. + + is null. + + + + + A metadata tag and value. + + + A metadata tag and value. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The metadata tag. + The metadata value. + + + + Gets the metadata tag. + + + Gets the metadata tag. + + The metadata tag. + + + + Gets the metadata value. + + + Gets the metadata value. + + The metadata value. + + + + Event args used when a metadata changes. + + + Event args used when a metadata changes. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The metadata that changed. + + is null. + + + + + Get the metadata that changed. + + + Gets the metadata that changed. + + The metadata. + + + + A collection of metadata. + + + A collection of metadata. + + + + + Initializes a new instance of the class. + + + Creates a new + + + + + Initializes a new instance of the class. + + + Creates a new . + + A collection of metadata. + + + + A set of options to use when requesting metadata. + + + A set of options to use when requesting metadata. + + + + + Initializes a new instance of the class. + + + Creates a new set of options to use when requesting metadata. + + + + + Get or set the depth. + + + When the option is specified, it extends the list of metadata tag + values returned by the GetMetadata() call. For each specified in the + the GetMetadata() call, the method returns the value of the specified metadata tag (if it exists), + plus all metadata tags below the specified entry up to the specified depth. + Three values are allowed for : + 0 - no entries below the specified metadata tag are returned. + 1 - only entries immediately below the specified metadata tag are returned. + - all entries below the specified metadata tag are returned. + Thus, a depth of 1 for a tag entry of "/a" will match "/a" as well as its children + entries (e.g., "/a/b"), but will not match grandchildren entries (e.g., "/a/b/c"). + If the Depth option is not specified, this is the same as specifying 0. + + The depth. + + is out of range. + + + + + Get or set the max size of the metadata tags to request. + + + When specified, the property is used to filter the metadata tags + returned by the GetMetadata() call to only those with a value shorter than the max size + specified. + + The size of the max. + + + + Get the length of the longest metadata value. + + + If the property is specified, once the GetMetadata() call returns, + the property will be set to the length of the longest metadata + value that exceeded the limit, otherwise a value of 0 will + be set. + + The length of the longest metadata value that exceeded the max size. + + + + A metadata tag. + + + A metadata tag. + + + + + A metadata tag for specifying the contact information for the server administrator. + + + Used to get the contact information of the administrator on a + . + + + + + A metadata tag for private comments. + + + Used to get or set a private comment on a . + + + + + A metadata tag for shared comments. + + + Used to get or set a shared comment on a + or . + + + + + A metadata tag for specifying the special use of a folder. + + + Used to get or set the special use of a . + + + + + Initializes a new instance of the struct. + + + Creates a new . + + The metadata tag identifier. + + is null. + + + is an empty string. + + + + + Get the metadata tag identifier. + + + Gets the metadata tag identifier. + + The metadata tag identifier. + + + + Determine whether the specified is equal to the current . + + + Determines whether the specified is equal to the current . + + The to compare with the current . + true if the specified is equal to the current + ; otherwise, false. + + + + Serves as a hash function for a object. + + + Serves as a hash function for a object. + + A hash code for this instance that is suitable for use in hashing algorithms and data structures such as a hash table. + + + + Returns a that represents the current . + + + Returns a that represents the current . + + A that represents the current . + + + + Event args for the event. + + + Event args for the event. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The message index. + + + + Initializes a new instance of the class. + + + Creates a new . + + The message index. + The modification sequence value. + + + + Initializes a new instance of the class. + + + Creates a new . + + The message index. + The unique id of the message. + The modification sequence value. + + + + Gets the updated mod-sequence value of the message. + + + Gets the updated mod-sequence value of the message. + + The mod-sequence value. + + + + A protocol logger that does not log to anywhere. + + + By default, the , + , and + all use a + . + + + + + Initializes a new instance of the class. + + + Creates a new . + + + + + Get or set the authentication secret detector. + + + Gets or sets the authentication secret detector. + + The authentication secret detector. + + + + Logs a connection to the specified URI. + + + This method does nothing. + + The URI. + + + + Logs a sequence of bytes sent by the client. + + + This method does nothing. + + The buffer to log. + The offset of the first byte to log. + The number of bytes to log. + + is null. + + + + + Logs a sequence of bytes sent by the server. + + + This method does nothing. + + The buffer to log. + The offset of the first byte to log. + The number of bytes to log. + + is null. + + + + + Releases all resource used by the object. + + Call when you are finished using the . The + method leaves the in an unusable state. After + calling , you must release all references to the so + the garbage collector can reclaim the memory that the was occupying. + + + + The exception that is thrown when there is a protocol error. + + + A can be thrown by any of the various client + methods in MailKit. + Since many protocol exceptions are fatal, it is important to check whether + or not the client is still connected using the + property when this exception is thrown. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The serialization info. + The streaming context. + + + + Initializes a new instance of the class. + + + Creates a new . + + The error message. + An inner exception. + + + + Initializes a new instance of the class. + + + Creates a new . + + The error message. + + + + Initializes a new instance of the class. + + + Creates a new . + + + + + A default protocol logger for logging the communication between a client and server. + + + A default protocol logger for logging the communication between a client and server. + + + + + + + + Initializes a new instance of the class. + + + Creates a new to log to a specified file. The file is created if it does not exist. + + + + + The file name. + true if the file should be appended to; otherwise, false. Defaults to true. + + + + Initializes a new instance of the class. + + + Creates a new to log to a specified stream. + + The stream. + true if the stream should be left open after the protocol logger is disposed. + + + + Releases unmanaged resources and performs other cleanup operations before the + is reclaimed by garbage collection. + + + Releases unmanaged resources and performs other cleanup operations before the + is reclaimed by garbage collection. + + + + + Get the log stream. + + + Gets the log stream. + + The log sstream. + + + + Get or set the default client prefix to use when creating new instances. + + + Get or set the default client prefix to use when creating new instances. + + The default client prefix. + + + + Get or set the default server prefix to use when creating new instances. + + + Get or set the default server prefix to use when creating new instances. + + The default server prefix. + + + + Get or set the client prefix to use when logging client messages. + + + Gets or sets the client prefix to use when logging client messages. + + The client prefix. + + + + Get or set the server prefix to use when logging server messages. + + + Gets or sets the server prefix to use when logging server messages. + + The server prefix. + + + + Get or set whether or not authentication secrets should be redacted. + + + Gets or sets whether or not authentication secrets should be redacted. + + true if authentication secrets should be redacted; otherwise, false. + + + + Get or set whether timestamps should be logged. + + + Gets or sets whether or not timestamps should be logged. + + true if timestamps should be logged; otherwise, false. + + + + Get or set the date and time serialization format that should be used when logging timestamps. + + + Gets or sets the date and time serialization format that should be used when logging timestamps. + + The date and time serialization format that should be used when logging timestamps. + + + + Get or set the authentication secret detector. + + + Gets or sets the authentication secret detector. + + The authentication secret detector. + + + + Logs a connection to the specified URI. + + + Logs a connection to the specified URI. + + The URI. + + is null. + + + The logger has been disposed. + + + An I/O error occurred. + + + + + Logs a sequence of bytes sent by the client. + + + Logs a sequence of bytes sent by the client. + is called by the upon every successful + write operation to its underlying network stream, passing the exact same , + , and arguments to the logging function. + + The buffer to log. + The offset of the first byte to log. + The number of bytes to log. + + is null. + + + is less than zero or greater than the length of . + -or- + The is not large enough to contain bytes strting + at the specified . + + + The logger has been disposed. + + + An I/O error occurred. + + + + + Logs a sequence of bytes sent by the server. + + + Logs a sequence of bytes sent by the server. + is called by the upon every successful + read of its underlying network stream with the exact buffer that was read. + + The buffer to log. + The offset of the first byte to log. + The number of bytes to log. + + is null. + + + is less than zero or greater than the length of . + -or- + The is not large enough to contain bytes strting + at the specified . + + + The logger has been disposed. + + + An I/O error occurred. + + + + + Releases the unmanaged resources used by the and + optionally releases the managed resources. + + + Releases the unmanaged resources used by the and + optionally releases the managed resources. + + true to release both managed and unmanaged resources; + false to release only the unmanaged resources. + + + + Releases all resource used by the object. + + Call when you are finished using the . The + method leaves the in an unusable state. After calling + , you must release all references to the so the garbage + collector can reclaim the memory that the was occupying. + + + + A request for replacing a message in a folder. + + + A request for replacing a message in a folder. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The message. + The message flags. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The message. + The message flags. + The message keywords. + + is null. + -or- + is null. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The message. + The message flags. + The internal date of the message. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The message. + The message flags. + The message keywords. + The internal date of the message. + + is null. + -or- + is null. + + + + + Get or set the folder where the replacement message should be appended. + + + Gets or sets the folder where the replacement message should be appended. + If no destination folder is specified, then the replacement message will be + appended to the original folder. + + The destination folder. + + + + The exception that is thrown when the is not authenticated. + + + This exception is thrown when an operation on a service could not be completed + due to the service not being authenticated. + + + + + Initializes a new instance of the class. + + + Deserializes a . + + The serialization info. + The streaming context. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The error message. + The inner exception. + + + + Initializes a new instance of the class. + + + Creates a new . + + The error message. + + + + Initializes a new instance of the class. + + + Creates a new . + + + + + The exception that is thrown when the is not connected. + + + This exception is thrown when an operation on a service could not be completed + due to the service not being connected. + + + + + Initializes a new instance of the class. + + + Deserializes a . + + The serialization info. + The streaming context. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The error message. + The inner exception. + + + + Initializes a new instance of the class. + + + Creates a new . + + The error message. + + + + Initializes a new instance of the class. + + + Creates a new . + + + + + An enumeration of special folders. + + + An enumeration of special folders. + + + + + The special folder containing an aggregate of all messages. + + + + + The special folder that contains archived messages. + + + + + The special folder that contains message drafts. + + + + + The special folder that contains flagged messages. + + + + + The special folder that contains important messages. + + + + + The special folder that contains spam messages. + + + + + The special folder that contains sent messages. + + + + + The special folder that contains deleted messages. + + + + + Status items. + + + Used with + + + + + No status requested. + + + + + Updates . + + + + + Updates . + + + + + Updates . + + + + + Updates . + + + + + Updates . + + + + + Updates . + + + + + Updates . + + + + + Updates . + + + + + Updates . + + + + + The action to perform when storing flags, keywords, or labels. + + + Used to specify whether the flags, keywords, or labels should be added, removed, or set for the message(s). + + + + + Add the specified flags, keywords or labels. + + + + + Remove the specified flags, keywords or labels. + + + + + Replace the specified flags, keywords or labels. + + + + + A request for storing message flags and keywords. + + + A request suitable for storing message flags and keywords. + This request is designed to be used with the Store and + StoreAsync methods. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The store action to perform. + The message flags to add, remove or set on the message. + + + + Initializes a new instance of the class. + + + Creates a new . + + The store action to perform. + The custom keywords to add, remove or set on the message. + + is null. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The store action to perform. + The message flags to add, remove or set on the message. + The custom keywords to add, remove or set on the message. + + is null. + + + + + Get the store action to perform. + + + Gets the store action to perform. + + The store action. + + + + Get or set the flags to add, remove or set on the message. + + + Gets or sets the flags to add, remove or set on the message. + + The message flags. + + + + Get or set the keywords to add, remove or set on the message. + + + Gets or sets the keywords to add, remove or set on the message. + + The keywords. + + + + Get or set whether the store operation should run silently. + + + Gets or sets whether the store operation should run silently. + Normally, when flags or keywords are changed on a message, a event is emitted. + By setting to true, this event will not be emitted as a result of this store operation. + + true if the store operation should run silently (not emitting events for flag changes); otherwise, false. + + + + Get or set a mod-sequence number that the store operation should use to decide if the flags of a message should be updated or not. + + + Gets or sets a mod-sequence number that the store operation should use to decide if the flags of a message should be updated or not. + For each message specified in the message set, the server performs the following. If the mod-sequence of every metadata item of the + message affected by the store operation is equal to or less than the specified value, then the requested operation + is performed. + However, if the mod-sequence of any metadata item of the message is greater than the specified value, then the + requested operation WILL NOT be performed. In this case, the mod-sequence attribute of the message is not updated, and the message index + (or unique identifier in cases where or + is used) is added to the list of + messages that failed the UNCHANGEDSINCE test. + The mod-sequence number can only be used if the server supports the + feature. + + The mod-sequence number. + + + + A request for storing GMail-style labels. + + + A request suitable for storing GMail-style labels. + This request is designed to be used with the Store and + StoreAsync methods. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The store action to perform. + + + + Initializes a new instance of the class. + + + Creates a new . + + The store action to perform. + The custom keywords to add, remove or set on the message. + + is null. + + + + + Get the store action to perform. + + + Gets the store action to perform. + + The store action. + + + + Get the GMail-style labels to add, remove or set on the message. + + + Gets the GMail-style labels to add, remove or set on the message. + + The GMail-style labels. + + + + Get or set whether the store operation should run silently. + + + Gets or sets whether the store operation should run silently. + Normally, when flags or keywords are changed on a message, a event is emitted. + By setting to true, this event will not be emitted as a result of this store operation. + + true if the store operation should run silently (not emitting events for label changes); otherwise, false. + + + + Get or set a mod-sequence number that the store operation should use to decide if the labels of a message should be updated or not. + + + Gets or sets a mod-sequence number that the store operation should use to decide if the labels of a message should be updated or not. + For each message specified in the message set, the server performs the following. If the mod-sequence of every metadata item of the + message affected by the store operation is equal to or less than the specified value, then the requested operation + is performed. + However, if the mod-sequence of any metadata item of the message is greater than the specified value, then the + requested operation WILL NOT be performed. In this case, the mod-sequence attribute of the message is not updated, and the message index + (or unique identifier in cases where or + is used) is added to the list of + messages that failed the UNCHANGEDSINCE test. + The mod-sequence number can only be used if the server supports the + feature. + + The mod-sequence number. + + + + An enumeration of threading algorithms. + + + A threading algorithm is used to group messages and their + replies together. + + + + + Thread messages based on their Subject headers. + + + + + Threads messages based on their References, In-Reply-To, and Message-Id headers. + This algorithm is far better than but is also more + expensive to calculate. + + + + + A unique identifier. + + + Represents a unique identifier for messages in a . + + + + + The invalid value. + + + The invalid value. + + + + + The minimum value. + + + The minimum value. + + + + + The maximum value. + + + The maximum value. + + + + + Initializes a new instance of the struct. + + + Creates a new with the specified validity and value. + + The uid validity. + The unique identifier. + + is 0. + + + + + Initializes a new instance of the struct. + + + Creates a new with the specified value. + + The unique identifier. + + is 0. + + + + + Gets the identifier. + + + The identifier. + + The identifier. + + + + Gets the validity, if non-zero. + + + Gets the UidValidity of the containing folder. + + The UidValidity of the containing folder. + + + + Gets whether or not the unique identifier is valid. + + + Gets whether or not the unique identifier is valid. + + true if the unique identifier is valid; otherwise, false. + + + + Compares two objects. + + + Compares two objects. + + + A value less than 0 if this is less than , + a value of 0 if this is equal to , or + a value greater than 0 if this is greater than . + + The other unique identifier. + + + + Determines whether the specified is equal to the current . + + + Determines whether the specified is equal to the current . + + The to compare with the current . + true if the specified is equal to the current + ; otherwise, false. + + + + Determines whether two unique identifiers are equal. + + + Determines whether two unique identifiers are equal. + + true if and are equal; otherwise, false. + The first unique id to compare. + The second unique id to compare. + + + + Determines whether one unique identifier is greater than another unique identifier. + + + Determines whether one unique identifier is greater than another unique identifier. + + true if is greater than ; otherwise, false. + The first unique id to compare. + The second unique id to compare. + + + + Determines whether one unique identifier is greater than or equal to another unique identifier. + + + Determines whether one unique identifier is greater than or equal to another unique identifier. + + true if is greater than or equal to ; otherwise, false. + The first unique id to compare. + The second unique id to compare. + + + + Determines whether two unique identifiers are not equal. + + + Determines whether two unique identifiers are not equal. + + true if and are not equal; otherwise, false. + The first unique id to compare. + The second unique id to compare. + + + + Determines whether one unique identifier is less than another unique identifier. + + + Determines whether one unique identifier is less than another unique identifier. + + true if is less than ; otherwise, false. + The first unique id to compare. + The second unique id to compare. + + + + Determines whether one unique identifier is less than or equal to another unique identifier. + + + Determines whether one unique identifier is less than or equal to another unique identifier. + + true if is less than or equal to ; otherwise, false. + The first unique id to compare. + The second unique id to compare. + + + + Determines whether the specified is equal to the current . + + + Determines whether the specified is equal to the current . + + The to compare with the current . + true if the specified is equal to the current ; + otherwise, false. + + + + Serves as a hash function for a object. + + + Serves as a hash function for a object. + + A hash code for this instance that is suitable for use in hashing algorithms and data structures such as a hash table. + + + + Returns a that represents the current . + + + Returns a that represents the current . + + A that represents the current . + + + + Attempt to parse a unique identifier. + + + Attempts to parse a unique identifier. + + true if the unique identifier was successfully parsed; otherwise, false.. + The token to parse. + The index to start parsing. + The unique identifier. + + + + Attempt to parse a unique identifier. + + + Attempts to parse a unique identifier. + + true if the unique identifier was successfully parsed; otherwise, false.. + The token to parse. + The UIDVALIDITY value. + The unique identifier. + + is null. + + + + + Attempt to parse a unique identifier. + + + Attempts to parse a unique identifier. + + true if the unique identifier was successfully parsed; otherwise, false.. + The token to parse. + The unique identifier. + + is null. + + + + + Parse a unique identifier. + + + Parses a unique identifier. + + The unique identifier. + A string containing the unique identifier. + The UIDVALIDITY. + + is null. + + + is not in the correct format. + + + The unique identifier is greater than . + + + + + Parse a unique identifier. + + + Parses a unique identifier. + + The unique identifier. + A string containing the unique identifier. + + is null. + + + is not in the correct format. + + + The unique identifier is greater than . + + + + + A mapping of unique identifiers. + + + A can be used to discover the mapping of one set of unique identifiers + to another. + For example, when copying or moving messages from one folder to another, it is often desirable + to know what the unique identifiers are for each of the messages in the destination folder. + + + + + Any empty mapping of unique identifiers. + + + Any empty mapping of unique identifiers. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The unique identifiers used in the source folder. + The unique identifiers used in the destination folder. + + is null. + -or- + is null. + + + + + Gets the list of unique identifiers used in the source folder. + + + Gets the list of unique identifiers used in the source folder. + + The unique identifiers used in the source folder. + + + + Gets the list of unique identifiers used in the destination folder. + + + Gets the list of unique identifiers used in the destination folder. + + The unique identifiers used in the destination folder. + + + + Gets the number of unique identifiers that have been remapped. + + + Gets the number of unique identifiers that have been remapped. + + The count. + + + + Gets the keys. + + + Gets the keys. + + The keys. + + + + Gets the values. + + + Gets the values. + + The values. + + + + Checks if the specified unique identifier has been remapped. + + + Checks if the specified unique identifier has been remapped. + + true if the unique identifier has been remapped; otherwise, false. + The unique identifier. + + + + Tries to get the remapped unique identifier. + + + Attempts to get the remapped unique identifier. + + true on success; otherwise, false. + The unique identifier of the message in the source folder. + The unique identifier of the message in the destination folder. + + + + Gets the remapped unique identifier. + + + Gets the remapped unique identifier. + + The unique identifier of the message in the source folder. + The remapped unique identifier. + + is out of range. + + + + + Gets the enumerator for the remapped unique identifiers. + + + Gets the enumerator for the remapped unique identifiers. + + The enumerator. + + + + Gets the enumerator for the remapped unique identifiers. + + + Gets the enumerator for the remapped unique identifiers. + + The enumerator. + + + + A range of items. + + + When dealing with a large range, it is more efficient to use a + than a typical + IList<>. + + + + + A that encompases all messages in the folder. + + + Represents the range of messages from to + . + + + + + Initializes a new instance of the class. + + + Creates a new (invalid) range of unique identifiers. + + + + + Initializes a new instance of the class. + + + Creates a new range of unique identifiers. + + The uid validity. + The first unique identifier in the range. + The last unique identifier in the range. + + + + Initializes a new instance of the class. + + + Creates a new range of unique identifiers. + + The first in the range. + The last in the range. + + is invalid. + -or- + is invalid. + + + + + Gets the validity, if non-zero. + + + Gets the UidValidity of the containing folder. + + The UidValidity of the containing folder. + + + + Gets the minimum unique identifier in the range. + + + Gets the minimum unique identifier in the range. + + The minimum unique identifier. + + + + Gets the maximum unique identifier in the range. + + + Gets the maximum unique identifier in the range. + + The maximum unique identifier. + + + + Get the start of the unique identifier range. + + + Gets the start of the unique identifier range. + + The start of the range. + + + + Get the end of the unique identifier range. + + + Gets the end of the unique identifier range. + + The end of the range. + + + + Get the number of unique identifiers in the range. + + + Gets the number of unique identifiers in the range. + + The count. + + + + Get whether or not the range is read only. + + + A is always read-only. + + true if the range is read only; otherwise, false. + + + + Adds the unique identifier to the range. + + + Since a is read-only, unique ids cannot + be added to the range. + + The unique identifier to add. + + The list does not support adding items. + + + + + Clears the list. + + + Since a is read-only, the range cannot be cleared. + + + The list does not support being cleared. + + + + + Checks if the range contains the specified unique id. + + + Determines whether or not the range contains the specified unique id. + + true if the specified unique identifier is in the range; otherwise false. + The unique id. + + + + Copies all of the unique ids in the range to the specified array. + + + Copies all of the unique ids within the range into the array, + starting at the specified array index. + + The array to copy the unique ids to. + The index into the array. + + is null. + + + is out of range. + + + + + Removes the unique identifier from the range. + + + Since a is read-only, unique ids cannot be removed. + + true if the unique identifier was removed; otherwise false. + The unique identifier to remove. + + The list does not support removing items. + + + + + Gets the index of the specified unique id, if it exists. + + + Finds the index of the specified unique id, if it exists. + + The index of the specified unique id; otherwise -1. + The unique id. + + + + Inserts the specified unique identifier at the given index. + + + Inserts the unique identifier at the specified index in the range. + + The index to insert the unique id. + The unique id. + + The list does not support inserting items. + + + + + Removes the unique identifier at the specified index. + + + Removes the unique identifier at the specified index. + + The index. + + The list does not support removing items. + + + + + Gets or sets the unique identifier at the specified index. + + + Gets or sets the unique identifier at the specified index. + + The unique identifier at the specified index. + The index. + + is out of range. + + + The list does not support setting items. + + + + + Gets an enumerator for the range of unique ids. + + + Gets an enumerator for the range of unique ids. + + The enumerator. + + + + Gets an enumerator for the range of unique ids. + + + Gets an enumerator for the range of unique ids. + + The enumerator. + + + + Returns a that represents the current . + + + Returns a that represents the current . + + A that represents the current . + + + + Attempt to parse a unique identifier range. + + + Attempts to parse a unique identifier range. + + true if the unique identifier range was successfully parsed; otherwise, false.. + The token to parse. + The UIDVALIDITY value. + The unique identifier range. + + is null. + + + + + Attempt to parse a unique identifier range. + + + Attempts to parse a unique identifier range. + + true if the unique identifier range was successfully parsed; otherwise, false.. + The token to parse. + The unique identifier range. + + is null. + + + + + A set of unique identifiers. + + + When dealing with a large number of unique identifiers, it may be more efficient to use a + than a typical IList<>. + + + + + Initializes a new instance of the class. + + + Creates a new unique identifier set. + + The uid validity. + The sorting order to use for the unique identifiers. + + is invalid. + + + + + Initializes a new instance of the class. + + + Creates a new unique identifier set. + + The sorting order to use for the unique identifiers. + + is invalid. + + + + + Initializes a new instance of the class. + + + Creates a new set of unique identifier set containing the specified uids. + + An initial set of unique ids. + The sorting order to use for the unique identifiers. + + is invalid. + + + + + Gets the sort order of the unique identifiers. + + + Gets the sort order of the unique identifiers. + + The sort order. + + + + Gets the validity, if non-zero. + + + Gets the UidValidity of the containing folder. + + The UidValidity of the containing folder. + + + + Get the number of unique ids in the set. + + + Gets the number of unique ids in the set. + + The count. + + + + Get whether or not the set is read only. + + + Gets whether or not the set is read-only. + + true if the set is read only; otherwise, false. + + + + Adds the unique identifier to the set. + + + Adds the unique identifier to the set. + + The unique identifier to add. + + is invalid. + + + + + Adds all of the uids to the set. + + + Adds all of the uids to the set. + + The collection of uids. + + + + Clears the list. + + + Clears the list. + + + The collection is readonly. + + + + + Checks if the set contains the specified unique id. + + + Determines whether or not the set contains the specified unique id. + + true if the specified unique identifier is in the set; otherwise false. + The unique id. + + + + Copies all of the unique ids in the set to the specified array. + + + Copies all of the unique ids within the set into the array, + starting at the specified array index. + + The array to copy the unique ids to. + The index into the array. + + is null. + + + is out of set. + + + + + Removes the unique identifier from the set. + + + Removes the unique identifier from the set. + + true if the unique identifier was removed; otherwise false. + The unique identifier to remove. + + + + Gets the index of the specified unique id, if it exists. + + + Finds the index of the specified unique id, if it exists. + + The index of the specified unique id; otherwise -1. + The unique id. + + + + Inserts the specified unique identifier at the given index. + + + Inserts the unique identifier at the specified index in the set. + + The index to insert the unique id. + The unique id. + + The list does not support inserting items. + + + + + Removes the unique identifier at the specified index. + + + Removes the unique identifier at the specified index. + + The index. + + is out of range. + + + + + Gets or sets the unique identifier at the specified index. + + + Gets or sets the unique identifier at the specified index. + + The unique identifier at the specified index. + The index. + + is out of range. + + + The list does not support setting items. + + + + + Gets an enumerator for the set of unique ids. + + + Gets an enumerator for the set of unique ids. + + The enumerator. + + + + Gets an enumerator for the set of unique ids. + + + Gets an enumerator for the set of unique ids. + + The enumerator. + + + + Returns a that represents the current . + + + Returns a that represents the current . + + A that represents the current . + + + + Format a generic list of unique identifiers as a string. + + + Formats a generic list of unique identifiers as a string. + + The string representation of the collection of unique identifiers. + The unique identifiers. + + is null. + + + One or more of the unique identifiers is invalid (has a value of 0). + + + + + Format the set of unique identifiers as multiple strings that fit within the maximum defined character length. + + + Formats the set of unique identifiers as multiple strings that fit within the maximum defined character length. + + A list of strings representing the collection of unique identifiers. + The maximum length of any returned string of UIDs. + + is negative. + + + + + Format a generic list of unique identifiers as multiple strings that fit within the maximum defined character length. + + + Formats a generic list of unique identifiers as multiple strings that fit within the maximum defined character length. + + A list of strings representing the collection of unique identifiers. + The unique identifiers. + The maximum length of any returned string of UIDs. + + is null. + + + One or more of the unique identifiers is invalid (has a value of 0). + + + is negative. + + + + + Attempt to parse the specified token as a set of unique identifiers. + + + Attempts to parse the specified token as a set of unique identifiers. + + true if the set of unique identifiers were successfully parsed; otherwise, false. + The token containing the set of unique identifiers. + The UIDVALIDITY value. + The set of unique identifiers. + The minimum unique identifier value parsed. + The maximum unique identifier value parsed. + + is null. + + + + + Attempt to parse the specified token as a set of unique identifiers. + + + Attempts to parse the specified token as a set of unique identifiers. + + true if the set of unique identifiers were successfully parsed; otherwise, false. + The token containing the set of unique identifiers. + The UIDVALIDITY value. + The set of unique identifiers. + + is null. + + + + + Attempt to parse the specified token as a set of unique identifiers. + + + Attempts to parse the specified token as a set of unique identifiers. + + true if the set of unique identifiers were successfully parsed; otherwise, false. + The token containing the set of unique identifiers. + The set of unique identifiers. + + is null. + + + + + Alert event arguments. + + + Some implementations, such as + , will emit WebAlert + events when they receive web alert messages from the server. + + + + + Initializes a new instance of the class. + + + Creates a new . + + The web URI. + The alert message. + + is null. + -or- + is null. + + + + + Gets the web URI. + + + The URI that the user should visit to resolve the issue. + + The web URI. + + + diff --git a/Compras/Compras.aspx b/Compras/Compras.aspx index 5e7cc40c9..0c1f35d1e 100644 --- a/Compras/Compras.aspx +++ b/Compras/Compras.aspx @@ -1266,7 +1266,7 @@ - @@ -1340,7 +1340,7 @@ - --%> + --%> diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 144da0e15..8016109fa 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -6430,7 +6430,8 @@ Partial Class Compras_Compras For Each gvRowInv As GridViewRow In GvInv.Rows Dim gvCantidad As Decimal = gvRowInv.FCTextBox("TbCantidad").Text.ToDecimal Dim gvPU As Decimal = gvRowInv.DataKey("PU").ToDecimal - ImpPrepoliza = ImpPrepoliza + (gvCantidad * gvPU) + Dim gvDescuento As Decimal = gvRowInv.DataKey("PU").ToDecimal + ImpPrepoliza = (ImpPrepoliza + (gvCantidad * gvPU)) - gvDescuento Next ImpPrepolizaMN = ImpPrepoliza * tipoCambioActual * Multiplicador diff --git a/OC/OC.aspx b/OC/OC.aspx index 9076a5274..9f94cd93f 100644 --- a/OC/OC.aspx +++ b/OC/OC.aspx @@ -221,7 +221,8 @@ - + @@ -492,12 +493,7 @@ - - Edición Masiva: - - - - + @@ -808,7 +804,7 @@ Producto o Servicio(+) Unidad Observación - + @@ -854,7 +850,7 @@ - + @@ -1707,6 +1703,11 @@ + + +
+ +
Asignar a: @@ -1716,7 +1717,7 @@ Asignado a:

-
+
diff --git a/OC/OC.aspx.vb b/OC/OC.aspx.vb index 904b1bf7b..0f8ad93da 100644 --- a/OC/OC.aspx.vb +++ b/OC/OC.aspx.vb @@ -606,6 +606,23 @@ Partial Class OC_OC End Property + Private Property EstaEnmodiEdicionMasiva As Boolean + Get + If ViewState("EstaEnmodiEdicionMasiva") Is Nothing Then + ViewState("EstaEnmodiEdicionMasiva") = False + End If + + Return Boolean.Parse(ViewState("EstaEnmodiEdicionMasiva").ToString) + End Get + Set(value As Boolean) + ViewState("EstaEnmodiEdicionMasiva") = value + End Set + End Property + + + + + #End Region @@ -727,11 +744,19 @@ Partial Class OC_OC End If 'temporal + + 'If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then If UsuarioActual.CveEmpresa = 189 Then 'GlobalDTOCEstatusUsuarios(CveEmpresaActual, UsuarioActual.CveUsuario, TipoOC) DdlSubProyectoGral.DataSource = GlobalDTOCEstatusUsuarios(CveEmpresaActual, UsuarioActual.CveUsuario, TipoOC).FiltraParametros("", "SubProyecto", DistinctColumns:={"CveSubProyecto", "SubProyecto"}) DdlSubProyectoGral.DataBind() + DdlSubProyectoGral.Items.Insert(0, New ListItem("Seleccione uno", "-1")) DdlSubProyectoGral.SelectedValueExist(UsuarioActual.CveSubProyecto) + TdProyectoSubPrpyectoDdl.Visible = False + TdProyectoSubPrpyecto.Visible = False + GvD.Columns(4).Visible = False + UPPDetalle.Update() + End If BtnGeneraContrato.Visible = True : CargaClientesContrato() @@ -968,7 +993,7 @@ Partial Class OC_OC If UsuarioActual.CveRol = 1 Then TrDescuentoEscalonado.Visible = True TrDescuentoProntoPago.Visible = True - TrEdicionMasiva.Visible = True + BtnEdicionMasiva.Visible = True End If End If @@ -2246,12 +2271,24 @@ Partial Class OC_OC #Region " AGREGAR " Protected Sub LbAgregar_Click(sender As Object, e As EventArgs) Handles LbAgregar.Click + + + 'VALIDA CVEPS If DdlP2.SelectedValue().ToEntero <= 0 Then Alert("El campo 'Producto/Servicio' es necesario, por favor seleccione uno.", TipoMensaje.MsgAdvertencia) Exit Sub End If + 'VALIDA + If TxtDescuento.Text.ToDecimal > 0 AndAlso ((TxtCant.Text.ToDecimal * txtPrecioUnitario.Text.ToDecimal) <= TxtDescuentoAdd.Text.ToDecimal) Then + Alert($"El campo 'Descuento' no debe ser mayor o igual al total({(TxtCant.Text.ToDecimal * txtPrecioUnitario.Text.ToDecimal).ToString("###,###,###.00")}).", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + + + 'Valida cantidad en contrato Dim TieneError As Boolean = False Dim dttemp As New DataTable ' GlobalDTContratos().FiltraParametros(String.Format("CveSubProyecto = {0}", DdlSubProyecto.SelectedValue.ToString)) @@ -4130,6 +4167,7 @@ Partial Class OC_OC DtDetalle.AcceptChanges() CargaDatosDetalles() + ModoEdicionMasiva() End Sub @@ -4173,6 +4211,14 @@ Partial Class OC_OC CveClasificacion = gvr.FCDropDownList("DdlClasificacion").SelectedValue.ToEntero Clasificacion = gvr.FCDropDownList("DdlClasificacion").SelectedItem.Text + 'VALIDA + If Descuento > 0 AndAlso ((Cantidad * Importe) <= Descuento) Then + Alert($"El campo 'Descuento' no debe ser mayor o igual al total({(Cantidad * Importe).ToString("###,###,###.00")}).", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + + 'SE TOMAN VALORES EN CASO DE QUE LA CvePS SEA DIFERENTE DE LA ANTERIOR Dim CvePSAnterior As Integer = gvr.DataKey("CvePS").ToEntero PS = gvr.DataKey("PS").ToString @@ -9387,8 +9433,23 @@ Partial Class OC_OC Protected Sub BtnEdicionMasiva_Click(sender As Object, e As EventArgs) - If BtnEdicionMasiva.Text = "Editar" Then - BtnEdicionMasiva.Text = "Aplicar" + If BtnEdicionMasiva.Text = "Edición Masiva" Then + EstaEnmodiEdicionMasiva = True + Else + If GvD_RecalculaEdicionMasiva() Then + EstaEnmodiEdicionMasiva = False + End If + + End If + ModoEdicionMasiva() + + End Sub + + + Private Sub ModoEdicionMasiva() + + If EstaEnmodiEdicionMasiva Then + BtnEdicionMasiva.Text = "Aplicar Edición Masiva" For Each GvRow As GridViewRow In GvD.Rows @@ -9401,6 +9462,7 @@ Partial Class OC_OC GvRow.FCLiteral("LtlObsPS").Visible = False GvRow.FCLiteral("LtlDescuento").Visible = False GvRow.FCLabel("LtlImporte").Visible = False + GvRow.FCLinkButton("imgE").Visible = False 'observación, PU, descuento, cantidad @@ -9408,9 +9470,9 @@ Partial Class OC_OC Else - GvD_RecalculaEdicionMasiva() + 'GvD_RecalculaEdicionMasiva() - BtnEdicionMasiva.Text = "Editar" + BtnEdicionMasiva.Text = "Edición Masiva" For Each GvRow As GridViewRow In GvD.Rows GvRow.FCTextBox("TxtEMObsPS").Visible = False GvRow.FCTextBox("TxtEMCantEdit").Visible = False @@ -9421,6 +9483,8 @@ Partial Class OC_OC GvRow.FCLiteral("LtlObsPS").Visible = True GvRow.FCLiteral("LtlDescuento").Visible = True GvRow.FCLabel("LtlImporte").Visible = True + GvRow.FCLinkButton("imgE").Visible = True + Next @@ -9429,12 +9493,30 @@ Partial Class OC_OC UPPDetalle.Update() - uppEstatus.Update() + uppOpciones.Update() + End Sub + Private Function GvD_RecalculaEdicionMasiva() As Boolean - Private Sub GvD_RecalculaEdicionMasiva() + For Each gvr As GridViewRow In GvD.Rows + + Dim Cantidad, Importe, Descuento As Decimal + Cantidad = gvr.FCTextBox("TxtEMCantEdit").Text.Trim.ToDecimal + Importe = gvr.FCTextBox("TxtEMImporteEdit").Text.Trim.ToDecimal + Descuento = gvr.FCTextBox("TxtEMDescuentoEdit").Text.Trim.ToDecimal + Dim PS As String = gvr.DataKey("PS").ToString + Dim Total As Decimal = Importe * Cantidad - Descuento + + 'VALIDA + If Descuento > 0 AndAlso ((Cantidad * Importe) <= Descuento) Then + Alert($"El producto {PS}, cantidad {Cantidad}, el campo 'Descuento' no debe ser mayor o igual al total({(Cantidad * Importe).ToString("###,###,###.00")}).", TipoMensaje.MsgAdvertencia) + Return False + End If + + + Next For Each gvr As GridViewRow In GvD.Rows @@ -9448,8 +9530,7 @@ Partial Class OC_OC Descuento = gvr.FCTextBox("TxtEMDescuentoEdit").Text.Trim.ToDecimal Obs = gvr.FCTextBox("TxtEMObsPS").Text.Trim - 'SubProyecto, Cantidad, Importe, Descuento, CveOrdenCompra, CveUnidadMedida, CvePresupuestoEgreso, PS,CveClasificacion, CvePS, CveSubProyecto, CveActivoFijo, CodigoAF, TipoDato, Observacion, - 'CveOrdenCompraDetalle,CveCompra,IVAPorcentaje,RetIVAPorcentaje,RetISRPorcentaje,IEPSPSPorcentaje,IEPSPSIVAPorcentaje,CantidadNoEditable,CveCultivoCuadroDetalle + ' CveUnidad = gvr.DataKey("CveUnidadMedida").ToEntero UM = gvr.FCLiteral("LA").Text @@ -9466,118 +9547,10 @@ Partial Class OC_OC Dim IEPSPSIVA As Decimal = gvr.DataKey("IEPSPSIVAPorcentaje").ToDecimal Dim Total As Decimal = Importe * Cantidad - Descuento - - 'VALORES DEL PS - 'CvePS = gvr.FCDropDownList("DdlPS").SelectedValue.ToEntero - - 'PS = gvr.FCDropDownList("DdlPS").SelectedItem.Text - 'Dim DrPS As DataRow = GlobalDTPS(CveEmpresaActual, CvePS:=CvePS).FiltroPrimero("") - 'If DrPS Is Nothing Then - ' Alert("Ocurrió un error al cargar la información del producto para actualizar. Por favor vuelva a intentar.", TipoMensaje.MsgAdvertencia) - ' Exit Sub - 'End If - 'Dim IvaPS As Decimal = DrPS("IVA").ToString.ToDecimal - 'IEPSPS = DrPS("IEPSPorcentaje").ToString.ToDecimal - 'IEPSPSIVA = If(DrPS("IEPSGrabaIVA").ToString = "True", DrPS("IEPSPorcentaje").ToString.ToDecimal, 0) - - 'If DdlProveedores.SelectedValue.ToEntero > 0 Then - ' 'Si es Proveedor Extranjero el IVA es 0% - ' Dim drProv As DataRow = GlobalDTCompProveedores(CveEmpresaActual, CveProveedor:=DdlProveedores.SelectedValue.ToEntero).FiltroPrimero("") - ' If drProv IsNot Nothing Then - ' If drProv("CodigoRegimenFiscal").ToString = "626" Then 'simplificado lleva retencion de 1.25 de isr - ' RetISR = 0.0125D - ' End If - ' End If - 'End If - - 'If CvePS <> CvePSAnterior Or Not CveOrdenCompra > 0 Then - ' RetISR = DrPS("RetISR").ToString.ToDecimal - ' RetIVA = DrPS("RetIVA").ToString.ToDecimal - ' If Math.Round(DdlIVA.SelectedValue.ToDecimal - 1, 2) = 0.08 Then - ' RetIVA = RetIVA / 2 - ' End If - ' If IvaPS <> 0 Then IvaPS = -1 - 'End If - - 'CveSubProyecto = gvr.FCDropDownList("DdlSubProyectoEdit").SelectedValue.ToEntero - 'SubProyecto = gvr.FCDropDownList("DdlSubProyectoEdit").SelectedItem.Text - - 'CveCultivoCuadroDetalle = gvr.FCDropDownList("DdlCultivosCuadroEdit").SelectedValue.ToEntero - 'Cuadro = "" - 'If CveCultivoCuadroDetalle > 0 Then - ' Cuadro = gvr.FCDropDownList("DdlCultivosCuadroEdit").SelectedItem.Text - 'End If - - 'If UsuarioActual.Empresa.Tipo_CentroCosto = 1 Or UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then - ' CveProyecto = -1 - ' Proyecto = "Seleccione" - 'Else - ' CveProyecto = gvr.FCDropDownList("DdlProyectoEdit").SelectedValue.ToEntero - ' Proyecto = gvr.FCDropDownList("DdlProyectoEdit").SelectedItem.Text - 'End If - - 'If UsuarioActual.Empresa.Funcionalidad(532).Contiene("1", "2") Then - ' Dim ObjCon As New ClsContratos - ' Dim CvePresupuesto As Integer = 0 - ' Dim Autorizado As Decimal = 0 - ' Dim Ejercido As Decimal = 0 - ' If ObjCon.GetPresupuestos(-1, "-1", CveSubProyecto, 2, -1, UsuarioActual.CveEmpresa) Then - ' If ObjCon.DtResultados.Rows.Count > 0 Then - ' CvePresupuesto = ObjCon.DtResultados.Rows(0)("CvePresupuesto").ToString.ToEntero - ' If CvePresupuesto > 0 Then - ' If ObjCon.GetPresupuestosDetalle(CvePresupuesto, -1, UsuarioActual.CveEmpresa) Then - ' If ObjCon.DtResultados.FiltraParametros($"CveClasificacion = {CveClasificacion} And Importe > 0").Rows.Count > 0 Then - ' Autorizado = ObjCon.DtResultados.FiltraParametros($"CveClasificacion = {CveClasificacion} And Importe > 0").Rows(0)("Importe").ToString.ToDecimal - ' End If - ' End If - ' If ObjCon.GetPresupuestosRep(CvePresupuesto, -1, 1, $"01/09/{NowADS().Year - 1}".ToDate, NowADS(), UsuarioActual.CveEmpresa, CveProyecto, - ' CveSubProyecto, UsuarioActual.CveUsuario, CveClasificacion) Then - ' If ObjCon.DtResultados.Rows.Count > 0 Then - ' Ejercido = ObjCon.DtResultados.Rows(0)("Ejercido").ToString.ToDecimal - ' End If - ' End If - ' End If - ' End If - ' End If - ' ObjCon.Dispose() - - ' If CvePresupuesto > 0 And Autorizado > 0 Then - ' Dim Diferencia As Decimal = (Ejercido + Total) - Autorizado - ' If Diferencia > 0 Then - ' Alert($"No hay presupuesto disponible:
- Subproyecto {SubProyecto}
- Clasificación {Clasificacion}
se excede por {Diferencia.FormatoNumero}", TipoMensaje.MsgAdvertencia) - ' Exit Sub - ' End If - ' End If - 'End If - - 'Agarra el nuevo AF si se modifico o deja el pasado - 'CveActivoFijo = If(gvr.FCHiddenField("HdnCveActivoFijo").Value.ToEntero > 0, gvr.FCHiddenField("HdnCveActivoFijo").Value.ToEntero, HdnEditCveActivoFijo.Value.ToEntero) - 'Codigo = If(gvr.FCHiddenField("HdnCodigoAF").Value <> "-1", gvr.FCHiddenField("HdnCodigoAF").Value, HdnEditCodigo.Value) - - 'HdnEditCveActivoFijo.Value = "" - 'HdnEditCodigo.Value = "" - Dim dr As DataRow() = DtDetalle.Select("CveOrdenCompraDetalle = " & gvr.DataKey("CveOrdenCompraDetalle").ToString.ToEntero) dr(0)("Cantidad") = Cantidad - 'dr(0)("CveUnidadMedida") = CveUnidad - 'dr(0)("UM") = UM - 'dr(0)("CveClasificacion") = CveClasificacion - 'dr(0)("Clasificacion") = Clasificacion - - 'If isWithFamily() Then - ' dr(0)("CveSubFamilia") = CveClasificacion - ' dr(0)("SubFamilia") = Clasificacion - 'End If - - 'dr(0)("CvePS") = CvePS - 'dr(0)("PS") = PS dr(0)("Observacion") = Obs - - 'dr(0)("CveSubProyecto") = CveSubProyecto - 'dr(0)("SubProyecto") = SubProyecto - 'dr(0)("CveProyecto") = CveProyecto - 'dr(0)("Proyecto") = Proyecto dr(0)("Importe") = Importe dr(0)("Descuento") = Descuento dr(0)("Total") = Total @@ -9586,8 +9559,6 @@ Partial Class OC_OC dr(0)("IEPSPSIVA") = IEPSPSIVA * Total dr(0)("IEPSPSIVAPorcentaje") = IEPSPSIVA - 'If DdlIVA.SelectedValue.ToDecimal = 1 Then dr(0)("IVA") = 0 Else dr(0)("IVA") = IvaPS * Total - 'dr(0)("IVAPorcentaje") = If(IvaPS = -1, Math.Round(DdlIVA.SelectedValue.ToDecimal - 1, 2), 0) Dim TotalGravado As Decimal = Total If IEPSPSIVA > 0 Then TotalGravado = Total * (1 + IEPSPSIVA) 'grava para iva, el importe del IEPS dr(0)("IVA") = Math.Round(dr(0)("IVAPorcentaje").ToString.ToDecimal * TotalGravado, 2) @@ -9597,13 +9568,6 @@ Partial Class OC_OC dr(0)("RetISR") = (RetISR * Total).RoundSQL(6) dr(0)("RetISRPorcentaje") = RetISR - - 'dr(0)("CveActivoFijo") = CveActivoFijo - 'dr(0)("CodigoAF") = Codigo - - 'dr(0)("CveCultivoCuadroDetalle") = CveCultivoCuadroDetalle - 'dr(0)("Cuadro") = Cuadro - 'si el tipodato viene de la BD, entonces sufrió una actualización If dr(0)("TipoDato").ToString.ToEntero = 2 Then dr(0)("TipoDato") = 1 DtDetalle.AcceptChanges() @@ -9614,8 +9578,9 @@ Partial Class OC_OC CargaDatosDetalles() + Return True - End Sub + End Function End Class diff --git a/OS/OrdenesServicios.aspx.vb b/OS/OrdenesServicios.aspx.vb index 5fba840c0..ccb64cfc1 100644 --- a/OS/OrdenesServicios.aspx.vb +++ b/OS/OrdenesServicios.aspx.vb @@ -3407,11 +3407,13 @@ Partial Class OS_OrdenesServicios Dim ProcesoOK As Boolean = True Dim CveSubProyectoPedido As Integer = -1 Dim CveMoneda As Integer = -1 + Dim tCveVendedor As Integer = -1 If ObjVentas.GetVenta(CvePedido, UsuarioActual.CveEmpresa, VerificaAlmacen:=False) Then Dim DbRowVenta As DataRow = ObjVentas.DtResultados.Copy().Rows(0) CveMoneda = DbRowVenta("CveMoneda").ToString.ToEntero CveSubProyectoPedido = DbRowVenta("CveSubProyecto").ToString().ToEntero() + tCveVendedor = DbRowVenta("CveVendedor").ToString.ToEntero End If Dim ObjFactura As Modelos.Factura = Modelos.Factura.CrearVentaNueva(UsuarioActual, CveSubProyectoPedido, CveCliente, CveMoneda, "Rem") @@ -3427,6 +3429,7 @@ Partial Class OS_OrdenesServicios ObjFactura.Paciente = TxtPacienteModal.Text.Trim ObjFactura.Episodio = TxtEpisodioModal.Text.Trim ObjFactura.Alfa1 = TxtFolioRemisionModal.Text.Trim + ObjFactura.CveVendedor = tCveVendedor Dim TmpDTMat As New DataTable TmpDTMat.Columns.Add("Consec", GetType(Integer)) diff --git a/Sistemas/PopUpCambiaUsuario.aspx.vb b/Sistemas/PopUpCambiaUsuario.aspx.vb index 316610be5..07253366e 100644 --- a/Sistemas/PopUpCambiaUsuario.aspx.vb +++ b/Sistemas/PopUpCambiaUsuario.aspx.vb @@ -25,59 +25,65 @@ Partial Class Sistemas_PopUpCambiaUsuario RegistraScript("window.close();") End If - Dim DtEmp As DataTable = GlobalDTEmpresas(CveEmpresa:=-1).Copy + Dim DtEmp As DataTable = Nothing '= GlobalDTEmpresas(CveEmpresa:=-1, tUsrActual:=UsuarioActual).Copy + Using ObjEmpresas As New ClsSisEmpresas() + If ObjEmpresas.GetEmpresas(-1, "-1", "-1", "-1", "-1") Then + DtEmp = ObjEmpresas.DtResultados + End If + End Using + Dim NombreEmp As String = UsuarioActual.Empresa.Empresa - ''condición para ocultar los nombres de las empresas y ponerles "mi empresa de venta (xxx)" - ''If UsuarioActual.CveUsuario = 100 Then + ''condición para ocultar los nombres de las empresas y ponerles "mi empresa de venta (xxx)" + ''If UsuarioActual.CveUsuario = 100 Then - '' Dim customerRow() As Data.DataRow - '' customerRow = DtEmp.Select("") + '' Dim customerRow() As Data.DataRow + '' customerRow = DtEmp.Select("") - '' For Each drt As DataRow In customerRow - '' drt("Empresa") = "Mi Empresa de ventas (" & drt("CveEmpresa") & ")" - '' Next + '' For Each drt As DataRow In customerRow + '' drt("Empresa") = "Mi Empresa de ventas (" & drt("CveEmpresa") & ")" + '' Next - ''End If + ''End If - CType(Me.Master, BaseMasterPage).EsPopup = True - LblUsuario.Text = String.Format("{0} - {1}", UsuarioActual.Nombre, UsuarioActual.Empresa.Empresa) + CType(Me.Master, BaseMasterPage).EsPopup = True + LblUsuario.Text = String.Format("{0} - {1}", UsuarioActual.Nombre, UsuarioActual.Empresa.Empresa) - DdlEmpresa.DataSource = DtEmp '.FiltraParametros(If(UsuarioActual.CveRol = 1, "CvePlataforma IN (1,2)", $"CvePlataforma={UsuarioActual.Empresa.CvePlataforma}")) - Dim CveEmpresa As String = UsuarioActual.CveEmpresa.ToString() + DdlEmpresa.DataSource = DtEmp '.FiltraParametros(If(UsuarioActual.CveRol = 1, "CvePlataforma IN (1,2)", $"CvePlataforma={UsuarioActual.Empresa.CvePlataforma}")) + Dim CveEmpresa As String = UsuarioActual.CveEmpresa.ToString() - Dim splitedtext As String() = Request.Url.AbsoluteUri.Replace("http://", "").Replace("https://", "").Split("."c) + Dim splitedtext As String() = Request.Url.AbsoluteUri.Replace("http://", "").Replace("https://", "").Split("."c) - If splitedtext.Length > 0 Then - Select Case splitedtext(0).ToUpper() - Case "VSH" : CveEmpresa = "7" - Case "JAM" : CveEmpresa = "119" - Case "COMPUPROVEEDORES" : CveEmpresa = "72" - Case "DNDIFUSA" : CveEmpresa = "80" - Case "SOGO" : CveEmpresa = "8" - Case "BDH" : CveEmpresa = "140" - Case "ECONOLLANTAS" : CveEmpresa = "141" - Case "SERVEC" : CveEmpresa = "153" - Case "CITRUS" : CveEmpresa = "172" - Case "KINO" : CveEmpresa = "173" - End Select - End If - If Request.Url.AbsoluteUri.Contains("sig.agrojam.com.mx") Then - CveEmpresa = "158" - End If - DdlEmpresa.DataBind() - DdlEmpresa.SelectedValue = CveEmpresa + If splitedtext.Length > 0 Then + Select Case splitedtext(0).ToUpper() + Case "VSH" : CveEmpresa = "7" + Case "JAM" : CveEmpresa = "119" + Case "COMPUPROVEEDORES" : CveEmpresa = "72" + Case "DNDIFUSA" : CveEmpresa = "80" + Case "SOGO" : CveEmpresa = "8" + Case "BDH" : CveEmpresa = "140" + Case "ECONOLLANTAS" : CveEmpresa = "141" + Case "SERVEC" : CveEmpresa = "153" + Case "CITRUS" : CveEmpresa = "172" + Case "KINO" : CveEmpresa = "173" + End Select + End If + If Request.Url.AbsoluteUri.Contains("sig.agrojam.com.mx") Then + CveEmpresa = "158" + End If + DdlEmpresa.DataBind() + DdlEmpresa.SelectedValue = CveEmpresa - 'DdlRol.DataSource = GlobalDTRoles(DdlEmpresa.SelectedValue.ToEntero) - 'DdlRol.DataBind() - 'DdlRol.Items.Insert(0, New ListItem("Todos", "-1")) + 'DdlRol.DataSource = GlobalDTRoles(DdlEmpresa.SelectedValue.ToEntero) + 'DdlRol.DataBind() + 'DdlRol.Items.Insert(0, New ListItem("Todos", "-1")) - CargaUsuarios() - 'LblUsuario.Text = usuarioactual. + CargaUsuarios() + 'LblUsuario.Text = usuarioactual. - End If + End If End Sub diff --git a/Transportes/RepContratoDetalle.aspx b/Transportes/RepContratoDetalle.aspx index 64fbfe248..540b89c61 100644 --- a/Transportes/RepContratoDetalle.aspx +++ b/Transportes/RepContratoDetalle.aspx @@ -425,7 +425,7 @@ - + diff --git a/Transportes/RepContratosCalendario.aspx b/Transportes/RepContratosCalendario.aspx index 13f2f9301..933d579e3 100644 --- a/Transportes/RepContratosCalendario.aspx +++ b/Transportes/RepContratosCalendario.aspx @@ -786,7 +786,7 @@ $('#<%=TxtCantidadPasajeros.ClientID%>').val(event.CantidadPasajeros); $('#<%=TxtFolio.ClientID%>').val(event.NumeroContrato); $('#<%=TxtObservaciones.ClientID%>').val(event.Observaciones); - $('#<%=TxtDescripcion.ClientID%>').val(event.title); + $('#<%=TxtDescripcion.ClientID%>').val(event.description); $('#<%=TxtUbicacion.ClientID%>').val(event.NombreAcercamiento); if (esCalendario) {