From 5e0fba66a92a43a5272aa6206b7d710b03b83abb Mon Sep 17 00:00:00 2001 From: rrene Date: Wed, 14 Aug 2024 07:03:00 -0700 Subject: [PATCH 1/7] -- mejora --- Sistemas/PopUpCambiaUsuario.aspx.vb | 84 +++++++++++++++-------------- 1 file changed, 45 insertions(+), 39 deletions(-) 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 From 78f23748437a03d69fd9c9e2798bf5393bcaed24 Mon Sep 17 00:00:00 2001 From: rrene Date: Wed, 14 Aug 2024 11:53:38 -0700 Subject: [PATCH 2/7] -- RNC578, solo mostrar los productos con existencia --- Ashx/SIGWeb.ashx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Ashx/SIGWeb.ashx b/Ashx/SIGWeb.ashx index dde388876..d8d838d35 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.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) From bc8f5f75d3eb7feefbd34d35f800da66b51733d5 Mon Sep 17 00:00:00 2001 From: rakcsle Date: Wed, 14 Aug 2024 12:46:31 -0700 Subject: [PATCH 3/7] GDiaz - 2024.08.09 --- OC/OC.aspx | 7 +- OC/OC.aspx.vb | 209 ++++++++++++---------------- Transportes/RepContratoDetalle.aspx | 2 +- 3 files changed, 92 insertions(+), 126 deletions(-) diff --git a/OC/OC.aspx b/OC/OC.aspx index 9076a5274..670cbac92 100644 --- a/OC/OC.aspx +++ b/OC/OC.aspx @@ -221,7 +221,8 @@ - + @@ -808,7 +809,7 @@ Producto o Servicio(+) Unidad Observación - + @@ -854,7 +855,7 @@ - + diff --git a/OC/OC.aspx.vb b/OC/OC.aspx.vb index 904b1bf7b..6af4f1e66 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() @@ -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 @@ -9388,6 +9434,21 @@ Partial Class OC_OC Protected Sub BtnEdicionMasiva_Click(sender As Object, e As EventArgs) If BtnEdicionMasiva.Text = "Editar" 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" 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,7 +9470,7 @@ Partial Class OC_OC Else - GvD_RecalculaEdicionMasiva() + 'GvD_RecalculaEdicionMasiva() BtnEdicionMasiva.Text = "Editar" For Each GvRow As GridViewRow In GvD.Rows @@ -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 @@ -9431,10 +9495,28 @@ Partial Class OC_OC UPPDetalle.Update() uppEstatus.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/Transportes/RepContratoDetalle.aspx b/Transportes/RepContratoDetalle.aspx index 64fbfe248..540b89c61 100644 --- a/Transportes/RepContratoDetalle.aspx +++ b/Transportes/RepContratoDetalle.aspx @@ -425,7 +425,7 @@ - + From 7284f06ceef854535a3821573ee03da0a17979e1 Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 15 Aug 2024 07:47:38 -0700 Subject: [PATCH 4/7] =?UTF-8?q?--=20env=C3=ADo=20de=20vendedor=20en=20la?= =?UTF-8?q?=20OS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OS/OrdenesServicios.aspx.vb | 3 +++ 1 file changed, 3 insertions(+) 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)) From bd397668a77d2f6011270a77773947468871e1bc Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 15 Aug 2024 08:59:39 -0700 Subject: [PATCH 5/7] =?UTF-8?q?--=20correcci=C3=B3n=20de=20liberaci=C3=B3n?= =?UTF-8?q?=20anterior?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ashx/SIGWeb.ashx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ashx/SIGWeb.ashx b/Ashx/SIGWeb.ashx index d8d838d35..cc2504d43 100644 --- a/Ashx/SIGWeb.ashx +++ b/Ashx/SIGWeb.ashx @@ -1002,7 +1002,7 @@ Public Class SIGWeb : Implements IHttpHandler, IRequiresSessionState 'solo muestar productos con existencia. DtPSRetorno = DtPSRetorno.FiltraParametros("ExistenciaTotal > 0") End If - If DtPSRetorno.Columns("ExistenciaTotal") IsNot Nothing Then DtPSRetorno.Columns.Remove("ExistenciaTotal") + 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 From 9ee352cb9363da77a2ac8ff8f310563d6763edca Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 15 Aug 2024 09:00:25 -0700 Subject: [PATCH 6/7] =?UTF-8?q?--=20correcci=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Bancos/PopIEVentas.aspx.vb | 206 ++++++++++++++++++------------------- 1 file changed, 101 insertions(+), 105 deletions(-) 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 From 551c6fbab5f1c93e1db7d6f175561e7fa95c5531 Mon Sep 17 00:00:00 2001 From: rakcsle Date: Thu, 15 Aug 2024 10:36:20 -0700 Subject: [PATCH 7/7] GDiaz - 2024.08.09, Compras registro 68 con descuento --- Ashx/CargaEventos.ashx | 1 + Bin/MailKit.xml | 62241 ++++++++++++++++++++++ Bin/MimeKit.dll | Bin 0 -> 1198080 bytes Compras/Compras.aspx | 4 +- Compras/Compras.aspx.vb | 3 +- OC/OC.aspx | 14 +- OC/OC.aspx.vb | 10 +- Transportes/RepContratosCalendario.aspx | 2 +- 8 files changed, 62259 insertions(+), 16 deletions(-) create mode 100644 Bin/MailKit.xml create mode 100644 Bin/MimeKit.dll 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/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/Bin/MimeKit.dll b/Bin/MimeKit.dll new file mode 100644 index 0000000000000000000000000000000000000000..bf2b6457d88d699cfcac580c04d22dd27d35c89f GIT binary patch literal 1198080 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�CAL23sw0A)nY9 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