diff --git a/App/CONFIG_APP/App.config b/App/CONFIG_APP/App.config index 34c16d8..b3b995b 100644 --- a/App/CONFIG_APP/App.config +++ b/App/CONFIG_APP/App.config @@ -1,18 +1,18 @@ - + -
+
-
+
- + - + @@ -20,13 +20,13 @@ Data Source=SDD-VMP04-SQL17\DD_DEVELOP01;Initial Catalog=DD_ECM_TEST;Persist Security Info=True;User ID=sa;Password=dd - + - + - + False @@ -36,10 +36,10 @@ - + - + sysdba @@ -58,9 +58,9 @@ - - + + - \ No newline at end of file + diff --git a/App/CONFIG_APP/CONFIG_APP.vbproj b/App/CONFIG_APP/CONFIG_APP.vbproj index 1e140e5..f9ce108 100644 --- a/App/CONFIG_APP/CONFIG_APP.vbproj +++ b/App/CONFIG_APP/CONFIG_APP.vbproj @@ -11,7 +11,7 @@ CONFIG_APP 512 WindowsForms - v4.8 + v4.6.2 true diff --git a/App/CONFIG_APP/My Project/Settings.Designer.vb b/App/CONFIG_APP/My Project/Settings.Designer.vb index 5cbe48d..888b1d5 100644 --- a/App/CONFIG_APP/My Project/Settings.Designer.vb +++ b/App/CONFIG_APP/My Project/Settings.Designer.vb @@ -79,17 +79,6 @@ Namespace My End Set End Property - _ - Public ReadOnly Property MyDatasetConnString() As String - Get - Return CType(Me("MyDatasetConnString"),String) - End Get - End Property - _ @@ -179,6 +168,17 @@ Namespace My Return CType(Me("EML_LIMITATION_SENDER"),String) End Get End Property + + _ + Public ReadOnly Property MyDatasetConnString() As String + Get + Return CType(Me("MyDatasetConnString"),String) + End Get + End Property End Class End Namespace diff --git a/App/CONFIG_APP/My Project/Settings.settings b/App/CONFIG_APP/My Project/Settings.settings index 5ec5b1d..e99dce9 100644 --- a/App/CONFIG_APP/My Project/Settings.settings +++ b/App/CONFIG_APP/My Project/Settings.settings @@ -8,14 +8,6 @@ - - <?xml version="1.0" encoding="utf-16"?> -<SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> - <ConnectionString>Data Source=SDD-VMP04-SQL17\DD_DEVELOP01;Initial Catalog=DD_ECM_TEST;Persist Security Info=True;User ID=sa;Password=dd</ConnectionString> - <ProviderName>System.Data.SqlClient</ProviderName> -</SerializableConnectionString> - Data Source=SDD-VMP04-SQL17\DD_DEVELOP01;Initial Catalog=DD_ECM_TEST;Persist Security Info=True;User ID=sa;Password=dd - @@ -43,5 +35,13 @@ NONE + + <?xml version="1.0" encoding="utf-16"?> +<SerializableConnectionString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <ConnectionString>Data Source=SDD-VMP04-SQL17\DD_DEVELOP01;Initial Catalog=DD_ECM_TEST;Persist Security Info=True;User ID=sa;Password=dd</ConnectionString> + <ProviderName>System.Data.SqlClient</ProviderName> +</SerializableConnectionString> + Data Source=SDD-VMP04-SQL17\DD_DEVELOP01;Initial Catalog=DD_ECM_TEST;Persist Security Info=True;User ID=sa;Password=dd + \ No newline at end of file diff --git a/App/CONFIG_APP/frmMain.Designer.vb b/App/CONFIG_APP/frmMain.Designer.vb index e851ccf..f64bc3e 100644 --- a/App/CONFIG_APP/frmMain.Designer.vb +++ b/App/CONFIG_APP/frmMain.Designer.vb @@ -347,6 +347,8 @@ Partial Class frmMain Me.TBEMLP_CONFIGTableAdapter = New CONFIG_APP.MyDatasetTableAdapters.TBEMLP_CONFIGTableAdapter() Me.FolderBrowserDialog1 = New System.Windows.Forms.FolderBrowserDialog() Me.ContextMenuStrip1 = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.ContextMenuStrip2 = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.PasswortAnzeigenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() GUIDLabel = New System.Windows.Forms.Label() PROFILE_NAMELabel = New System.Windows.Forms.Label() POLL_TYPELabel = New System.Windows.Forms.Label() @@ -458,6 +460,7 @@ Partial Class frmMain Me.BindingNavigator6.SuspendLayout() Me.TabPage4.SuspendLayout() Me.GroupBox4.SuspendLayout() + Me.ContextMenuStrip2.SuspendLayout() Me.SuspendLayout() ' 'GUIDLabel @@ -3032,7 +3035,7 @@ Partial Class frmMain Me.ARCHIVE_FOLDERTextBox.DataBindings.Add(New System.Windows.Forms.Binding("Text", Me.TBDD_EMAIL_ACCOUNTBindingSource, "ARCHIVE_FOLDER", True)) Me.ARCHIVE_FOLDERTextBox.Location = New System.Drawing.Point(831, 164) Me.ARCHIVE_FOLDERTextBox.Name = "ARCHIVE_FOLDERTextBox" - Me.ARCHIVE_FOLDERTextBox.Size = New System.Drawing.Size(189, 21) + Me.ARCHIVE_FOLDERTextBox.Size = New System.Drawing.Size(227, 21) Me.ARCHIVE_FOLDERTextBox.TabIndex = 77 ' 'PORT_INTextBox @@ -3076,9 +3079,10 @@ Partial Class frmMain ' 'txtnewpasswort ' + Me.txtnewpasswort.ContextMenuStrip = Me.ContextMenuStrip2 Me.txtnewpasswort.Location = New System.Drawing.Point(738, 124) Me.txtnewpasswort.Name = "txtnewpasswort" - Me.txtnewpasswort.Size = New System.Drawing.Size(282, 21) + Me.txtnewpasswort.Size = New System.Drawing.Size(186, 21) Me.txtnewpasswort.TabIndex = 63 Me.txtnewpasswort.UseSystemPasswordChar = True ' @@ -3086,7 +3090,7 @@ Partial Class frmMain ' Me.Button4.Image = Global.CONFIG_APP.My.Resources.Resources.key_16xLG Me.Button4.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.Button4.Location = New System.Drawing.Point(1030, 122) + Me.Button4.Location = New System.Drawing.Point(930, 122) Me.Button4.Name = "Button4" Me.Button4.Size = New System.Drawing.Size(128, 23) Me.Button4.TabIndex = 62 @@ -3123,7 +3127,7 @@ Partial Class frmMain Me.EMAIL_SMTPTextBox.DataBindings.Add(New System.Windows.Forms.Binding("Text", Me.TBDD_EMAIL_ACCOUNTBindingSource, "EMAIL_SMTP", True)) Me.EMAIL_SMTPTextBox.Location = New System.Drawing.Point(701, 84) Me.EMAIL_SMTPTextBox.Name = "EMAIL_SMTPTextBox" - Me.EMAIL_SMTPTextBox.Size = New System.Drawing.Size(319, 21) + Me.EMAIL_SMTPTextBox.Size = New System.Drawing.Size(357, 21) Me.EMAIL_SMTPTextBox.TabIndex = 41 ' 'EMAIL_USERTextBox @@ -3136,6 +3140,7 @@ Partial Class frmMain ' 'EMAIL_PWTextBox ' + Me.EMAIL_PWTextBox.ContextMenuStrip = Me.ContextMenuStrip2 Me.EMAIL_PWTextBox.DataBindings.Add(New System.Windows.Forms.Binding("Text", Me.TBDD_EMAIL_ACCOUNTBindingSource, "EMAIL_PW", True)) Me.EMAIL_PWTextBox.Location = New System.Drawing.Point(701, 124) Me.EMAIL_PWTextBox.Name = "EMAIL_PWTextBox" @@ -3554,6 +3559,18 @@ Partial Class frmMain Me.ContextMenuStrip1.Name = "ContextMenuStrip1" Me.ContextMenuStrip1.Size = New System.Drawing.Size(61, 4) ' + 'ContextMenuStrip2 + ' + Me.ContextMenuStrip2.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.PasswortAnzeigenToolStripMenuItem}) + Me.ContextMenuStrip2.Name = "ContextMenuStrip2" + Me.ContextMenuStrip2.Size = New System.Drawing.Size(181, 48) + ' + 'PasswortAnzeigenToolStripMenuItem + ' + Me.PasswortAnzeigenToolStripMenuItem.Name = "PasswortAnzeigenToolStripMenuItem" + Me.PasswortAnzeigenToolStripMenuItem.Size = New System.Drawing.Size(180, 22) + Me.PasswortAnzeigenToolStripMenuItem.Text = "Passwort anzeigen" + ' 'frmMain ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) @@ -3638,6 +3655,7 @@ Partial Class frmMain Me.TabPage4.PerformLayout() Me.GroupBox4.ResumeLayout(False) Me.GroupBox4.PerformLayout() + Me.ContextMenuStrip2.ResumeLayout(False) Me.ResumeLayout(False) Me.PerformLayout() @@ -3908,4 +3926,6 @@ Partial Class frmMain Friend WithEvents ToolStripEmailAccountID As ToolStripTextBox Friend WithEvents AUTH_TYPEComboBox As ComboBox Friend WithEvents btnCheckIMAPObjects As Button + Friend WithEvents ContextMenuStrip2 As ContextMenuStrip + Friend WithEvents PasswortAnzeigenToolStripMenuItem As ToolStripMenuItem End Class diff --git a/App/CONFIG_APP/frmMain.resx b/App/CONFIG_APP/frmMain.resx index 52faa27..9226a10 100644 --- a/App/CONFIG_APP/frmMain.resx +++ b/App/CONFIG_APP/frmMain.resx @@ -324,7 +324,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAAUpJREFUOE9jGLzg7gL2/7fmcf6/Oofr/8UZvP+hwsSD60CNfx41/v/zsOH/yckC + wgAADsIBFShKgAAAAUpJREFUOE9jGLzg7gL2/7fmcf6/Oofr/8UZvP+hwsSD60CNfx41/v/zsOH/yckC pBtwfjov3ICDPSKkG3B8kiBQc93/Pw+q/u9oFydswKWZPP/PTuX7fxKo8Ui/0P993SJAzeX//94r+r++ Qeb/qhq5/0srFf/PL1X+P6tIFdPAU0B//nlYD9RUC8SV///cKwHivP9/72b+/3sn+f/f23H//92MAOKQ /5NyNDENONQrDHbu3/ulQI0FQI3ZQI2pQI0J///digZqDPv/70bQ/3/X/f53peliGrCzXeL/lmap/+vA @@ -336,7 +336,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAAW9JREFUOE+1kE0ow2Ecx3dV3krt4oJaOSCTvIRkMqSxyITIzCQHDouEdnFwIOVC + wgAADsIBFShKgAAAAW9JREFUOE+1kE0ow2Ecx3dV3krt4oJaOSCTvIRkMqSxyITIzCQHDouEdnFwIOVC DrhIDiQl5UTiNG/z2ppafy1S2gX/uDwfY6i1v7Hie3nqeb7fz+/7/FR/Ilwn0G0Exw4fV5GJlXlEZxXC rIet9bAQvB5Ymgn2sLYAvSZEux7RUQFzE4qQt4bCXAYjPaHvnDoCkLpsRGMB2JqCTGLIijDlwqQ9bEMV i9OIytR3EMNWcJ/BWH8A6j8/bOGFxwXNxYEvGbMQ9XnQ1/K78KfY3/VXzkMY0qFGG2H4RoLGQshJQNbG @@ -348,7 +348,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77 + wgAADsIBFShKgAAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77 wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0 v3f1BxRFoa33wJpb1wFt7/z73yX/AG4DApsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvg UXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbA @@ -359,7 +359,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w + wgAADsIBFShKgAAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w 5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3vkn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ00F9gV3/6f Puf3f/+ub/91Ct/9t0hYT3oY6Kec/29S9OK/Stan/8aRy0g3AAQMkk78l037+l83eB55BoCAfurl/xq+ 08g3AARUPCZQZsBgBQwMANAUYJgEulBVAAAAAElFTkSuQmCC @@ -368,7 +368,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78 + wgAADsIBFShKgAAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78 n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuI N8Sj6v7/krnv4JoVXXpIc4F96d3/gS3PyNMMAhZ5d/7bFFwhTzMIGGbdJl8zCOik3SBf81AEDAwAoH5f oAc0QjgAAAAASUVORK5CYII= @@ -377,7 +377,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+// + wgAADsIBFShKgAAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+// h7c/wG1AxpSn/+ft//0/oesOhiKQ3MJ9H/4HN1zDbUBCz5P/s/f9+t+59e9/t9LLKApBctO2vP/vX30B twGRXY/+T9n263/J0r//E6b//W+TexauGCTXu/rDf6/SE7gNCGx++L917XuwZuOSL/+lo6/9N45cBtYA kqub/+6/S/4B3AZ4VN3/XzL3HVyzoksPXDFILn/am//2GdtxG2Bfevd/YMszDM0gAJLLnvz6v0XCetwG @@ -394,7 +394,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAAUpJREFUOE9jGLzg7gL2/7fmcf6/Oofr/8UZvP+hwsSD60CNfx41/v/zsOH/yckC + wgAADsIBFShKgAAAAUpJREFUOE9jGLzg7gL2/7fmcf6/Oofr/8UZvP+hwsSD60CNfx41/v/zsOH/yckC pBtwfjov3ICDPSKkG3B8kiBQc93/Pw+q/u9oFydswKWZPP/PTuX7fxKo8Ui/0P993SJAzeX//94r+r++ Qeb/qhq5/0srFf/PL1X+P6tIFdPAU0B//nlYD9RUC8SV///cKwHivP9/72b+/3sn+f/f23H//92MAOKQ /5NyNDENONQrDHbu3/ulQI0FQI3ZQI2pQI0J///digZqDPv/70bQ/3/X/f53peliGrCzXeL/lmap/+vA @@ -406,7 +406,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAAW9JREFUOE+1kE0ow2Ecx3dV3krt4oJaOSCTvIRkMqSxyITIzCQHDouEdnFwIOVC + wgAADsIBFShKgAAAAW9JREFUOE+1kE0ow2Ecx3dV3krt4oJaOSCTvIRkMqSxyITIzCQHDouEdnFwIOVC DrhIDiQl5UTiNG/z2ppafy1S2gX/uDwfY6i1v7Hie3nqeb7fz+/7/FR/Ilwn0G0Exw4fV5GJlXlEZxXC rIet9bAQvB5Ymgn2sLYAvSZEux7RUQFzE4qQt4bCXAYjPaHvnDoCkLpsRGMB2JqCTGLIijDlwqQ9bEMV i9OIytR3EMNWcJ/BWH8A6j8/bOGFxwXNxYEvGbMQ9XnQ1/K78KfY3/VXzkMY0qFGG2H4RoLGQshJQNbG @@ -418,7 +418,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77 + wgAADsIBFShKgAAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77 wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0 v3f1BxRFoa33wJpb1wFt7/z73yX/AG4DApsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvg UXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbA @@ -429,7 +429,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w + wgAADsIBFShKgAAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w 5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3vkn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ00F9gV3/6f Puf3f/+ub/91Ct/9t0hYT3oY6Kec/29S9OK/Stan/8aRy0g3AAQMkk78l037+l83eB55BoCAfurl/xq+ 08g3AARUPCZQZsBgBQwMANAUYJgEulBVAAAAAElFTkSuQmCC @@ -438,7 +438,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78 + wgAADsIBFShKgAAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78 n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuI N8Sj6v7/krnv4JoVXXpIc4F96d3/gS3PyNMMAhZ5d/7bFFwhTzMIGGbdJl8zCOik3SBf81AEDAwAoH5f oAc0QjgAAAAASUVORK5CYII= @@ -447,7 +447,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+// + wgAADsIBFShKgAAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+// h7c/wG1AxpSn/+ft//0/oesOhiKQ3MJ9H/4HN1zDbUBCz5P/s/f9+t+59e9/t9LLKApBctO2vP/vX30B twGRXY/+T9n263/J0r//E6b//W+TexauGCTXu/rDf6/SE7gNCGx++L917XuwZuOSL/+lo6/9N45cBtYA kqub/+6/S/4B3AZ4VN3/XzL3HVyzoksPXDFILn/am//2GdtxG2Bfevd/YMszDM0gAJLLnvz6v0XCetwG @@ -464,7 +464,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAAUpJREFUOE9jGLzg7gL2/7fmcf6/Oofr/8UZvP+hwsSD60CNfx41/v/zsOH/yckC + wgAADsIBFShKgAAAAUpJREFUOE9jGLzg7gL2/7fmcf6/Oofr/8UZvP+hwsSD60CNfx41/v/zsOH/yckC pBtwfjov3ICDPSKkG3B8kiBQc93/Pw+q/u9oFydswKWZPP/PTuX7fxKo8Ui/0P993SJAzeX//94r+r++ Qeb/qhq5/0srFf/PL1X+P6tIFdPAU0B//nlYD9RUC8SV///cKwHivP9/72b+/3sn+f/f23H//92MAOKQ /5NyNDENONQrDHbu3/ulQI0FQI3ZQI2pQI0J///digZqDPv/70bQ/3/X/f53peliGrCzXeL/lmap/+vA @@ -476,7 +476,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAAW9JREFUOE+1kE0ow2Ecx3dV3krt4oJaOSCTvIRkMqSxyITIzCQHDouEdnFwIOVC + wgAADsIBFShKgAAAAW9JREFUOE+1kE0ow2Ecx3dV3krt4oJaOSCTvIRkMqSxyITIzCQHDouEdnFwIOVC DrhIDiQl5UTiNG/z2ppafy1S2gX/uDwfY6i1v7Hie3nqeb7fz+/7/FR/Ilwn0G0Exw4fV5GJlXlEZxXC rIet9bAQvB5Ymgn2sLYAvSZEux7RUQFzE4qQt4bCXAYjPaHvnDoCkLpsRGMB2JqCTGLIijDlwqQ9bEMV i9OIytR3EMNWcJ/BWH8A6j8/bOGFxwXNxYEvGbMQ9XnQ1/K78KfY3/VXzkMY0qFGG2H4RoLGQshJQNbG @@ -488,7 +488,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77 + wgAADsIBFShKgAAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77 wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0 v3f1BxRFoa33wJpb1wFt7/z73yX/AG4DApsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvg UXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbA @@ -499,7 +499,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w + wgAADsIBFShKgAAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w 5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3vkn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ00F9gV3/6f Puf3f/+ub/91Ct/9t0hYT3oY6Kec/29S9OK/Stan/8aRy0g3AAQMkk78l037+l83eB55BoCAfurl/xq+ 08g3AARUPCZQZsBgBQwMANAUYJgEulBVAAAAAElFTkSuQmCC @@ -508,7 +508,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78 + wgAADsIBFShKgAAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78 n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuI N8Sj6v7/krnv4JoVXXpIc4F96d3/gS3PyNMMAhZ5d/7bFFwhTzMIGGbdJl8zCOik3SBf81AEDAwAoH5f oAc0QjgAAAAASUVORK5CYII= @@ -517,7 +517,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+// + wgAADsIBFShKgAAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+// h7c/wG1AxpSn/+ft//0/oesOhiKQ3MJ9H/4HN1zDbUBCz5P/s/f9+t+59e9/t9LLKApBctO2vP/vX30B twGRXY/+T9n263/J0r//E6b//W+TexauGCTXu/rDf6/SE7gNCGx++L917XuwZuOSL/+lo6/9N45cBtYA kqub/+6/S/4B3AZ4VN3/XzL3HVyzoksPXDFILn/am//2GdtxG2Bfevd/YMszDM0gAJLLnvz6v0XCetwG @@ -534,7 +534,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAAUpJREFUOE9jGLzg7gL2/7fmcf6/Oofr/8UZvP+hwsSD60CNfx41/v/zsOH/yckC + wgAADsIBFShKgAAAAUpJREFUOE9jGLzg7gL2/7fmcf6/Oofr/8UZvP+hwsSD60CNfx41/v/zsOH/yckC pBtwfjov3ICDPSKkG3B8kiBQc93/Pw+q/u9oFydswKWZPP/PTuX7fxKo8Ui/0P993SJAzeX//94r+r++ Qeb/qhq5/0srFf/PL1X+P6tIFdPAU0B//nlYD9RUC8SV///cKwHivP9/72b+/3sn+f/f23H//92MAOKQ /5NyNDENONQrDHbu3/ulQI0FQI3ZQI2pQI0J///digZqDPv/70bQ/3/X/f53peliGrCzXeL/lmap/+vA @@ -546,7 +546,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAAW9JREFUOE+1kE0ow2Ecx3dV3krt4oJaOSCTvIRkMqSxyITIzCQHDouEdnFwIOVC + wgAADsIBFShKgAAAAW9JREFUOE+1kE0ow2Ecx3dV3krt4oJaOSCTvIRkMqSxyITIzCQHDouEdnFwIOVC DrhIDiQl5UTiNG/z2ppafy1S2gX/uDwfY6i1v7Hie3nqeb7fz+/7/FR/Ilwn0G0Exw4fV5GJlXlEZxXC rIet9bAQvB5Ymgn2sLYAvSZEux7RUQFzE4qQt4bCXAYjPaHvnDoCkLpsRGMB2JqCTGLIijDlwqQ9bEMV i9OIytR3EMNWcJ/BWH8A6j8/bOGFxwXNxYEvGbMQ9XnQ1/K78KfY3/VXzkMY0qFGG2H4RoLGQshJQNbG @@ -558,7 +558,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77 + wgAADsIBFShKgAAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77 wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0 v3f1BxRFoa33wJpb1wFt7/z73yX/AG4DApsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvg UXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbA @@ -569,7 +569,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w + wgAADsIBFShKgAAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w 5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3vkn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ00F9gV3/6f Puf3f/+ub/91Ct/9t0hYT3oY6Kec/29S9OK/Stan/8aRy0g3AAQMkk78l037+l83eB55BoCAfurl/xq+ 08g3AARUPCZQZsBgBQwMANAUYJgEulBVAAAAAElFTkSuQmCC @@ -578,7 +578,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78 + wgAADsIBFShKgAAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78 n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuI N8Sj6v7/krnv4JoVXXpIc4F96d3/gS3PyNMMAhZ5d/7bFFwhTzMIGGbdJl8zCOik3SBf81AEDAwAoH5f oAc0QjgAAAAASUVORK5CYII= @@ -587,7 +587,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+// + wgAADsIBFShKgAAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+// h7c/wG1AxpSn/+ft//0/oesOhiKQ3MJ9H/4HN1zDbUBCz5P/s/f9+t+59e9/t9LLKApBctO2vP/vX30B twGRXY/+T9n263/J0r//E6b//W+TexauGCTXu/rDf6/SE7gNCGx++L917XuwZuOSL/+lo6/9N45cBtYA kqub/+6/S/4B3AZ4VN3/XzL3HVyzoksPXDFILn/am//2GdtxG2Bfevd/YMszDM0gAJLLnvz6v0XCetwG @@ -607,7 +607,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77 + wgAADsIBFShKgAAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77 wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0 v3f1BxRFoa33wJpb1wFt7/z73yX/AG4DApsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvg UXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbA @@ -618,7 +618,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w + wgAADsIBFShKgAAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w 5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3vkn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ00F9gV3/6f Puf3f/+ub/91Ct/9t0hYT3oY6Kec/29S9OK/Stan/8aRy0g3AAQMkk78l037+l83eB55BoCAfurl/xq+ 08g3AARUPCZQZsBgBQwMANAUYJgEulBVAAAAAElFTkSuQmCC @@ -627,7 +627,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78 + wgAADsIBFShKgAAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78 n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuI N8Sj6v7/krnv4JoVXXpIc4F96d3/gS3PyNMMAhZ5d/7bFFwhTzMIGGbdJl8zCOik3SBf81AEDAwAoH5f oAc0QjgAAAAASUVORK5CYII= @@ -636,7 +636,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+// + wgAADsIBFShKgAAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+// h7c/wG1AxpSn/+ft//0/oesOhiKQ3MJ9H/4HN1zDbUBCz5P/s/f9+t+59e9/t9LLKApBctO2vP/vX30B twGRXY/+T9n263/J0r//E6b//W+TexauGCTXu/rDf6/SE7gNCGx++L917XuwZuOSL/+lo6/9N45cBtYA kqub/+6/S/4B3AZ4VN3/XzL3HVyzoksPXDFILn/am//2GdtxG2Bfevd/YMszDM0gAJLLnvz6v0XCetwG @@ -644,13 +644,16 @@ 8l/FYwIYQ4UGBWBgAAC+0b+zuQxOnAAAAABJRU5ErkJggg== + + 1162, 173 + 851, 173 iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAAUpJREFUOE9jGLzg7gL2/7fmcf6/Oofr/8UZvP+hwsSD60CNfx41/v/zsOH/yckC + wgAADsIBFShKgAAAAUpJREFUOE9jGLzg7gL2/7fmcf6/Oofr/8UZvP+hwsSD60CNfx41/v/zsOH/yckC pBtwfjov3ICDPSKkG3B8kiBQc93/Pw+q/u9oFydswKWZPP/PTuX7fxKo8Ui/0P993SJAzeX//94r+r++ Qeb/qhq5/0srFf/PL1X+P6tIFdPAU0B//nlYD9RUC8SV///cKwHivP9/72b+/3sn+f/f23H//92MAOKQ /5NyNDENONQrDHbu3/ulQI0FQI3ZQI2pQI0J///digZqDPv/70bQ/3/X/f53peliGrCzXeL/lmap/+vA @@ -662,7 +665,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAAW9JREFUOE+1kE0ow2Ecx3dV3krt4oJaOSCTvIRkMqSxyITIzCQHDouEdnFwIOVC + wgAADsIBFShKgAAAAW9JREFUOE+1kE0ow2Ecx3dV3krt4oJaOSCTvIRkMqSxyITIzCQHDouEdnFwIOVC DrhIDiQl5UTiNG/z2ppafy1S2gX/uDwfY6i1v7Hie3nqeb7fz+/7/FR/Ilwn0G0Exw4fV5GJlXlEZxXC rIet9bAQvB5Ymgn2sLYAvSZEux7RUQFzE4qQt4bCXAYjPaHvnDoCkLpsRGMB2JqCTGLIijDlwqQ9bEMV i9OIytR3EMNWcJ/BWH8A6j8/bOGFxwXNxYEvGbMQ9XnQ1/K78KfY3/VXzkMY0qFGG2H4RoLGQshJQNbG @@ -674,7 +677,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77 + wgAADsIBFShKgAAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77 wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0 v3f1BxRFoa33wJpb1wFt7/z73yX/AG4DApsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvg UXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbA @@ -685,7 +688,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w + wgAADsIBFShKgAAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w 5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3vkn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ00F9gV3/6f Puf3f/+ub/91Ct/9t0hYT3oY6Kec/29S9OK/Stan/8aRy0g3AAQMkk78l037+l83eB55BoCAfurl/xq+ 08g3AARUPCZQZsBgBQwMANAUYJgEulBVAAAAAElFTkSuQmCC @@ -694,7 +697,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78 + wgAADsIBFShKgAAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78 n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuI N8Sj6v7/krnv4JoVXXpIc4F96d3/gS3PyNMMAhZ5d/7bFFwhTzMIGGbdJl8zCOik3SBf81AEDAwAoH5f oAc0QjgAAAAASUVORK5CYII= @@ -703,7 +706,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+// + wgAADsIBFShKgAAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+// h7c/wG1AxpSn/+ft//0/oesOhiKQ3MJ9H/4HN1zDbUBCz5P/s/f9+t+59e9/t9LLKApBctO2vP/vX30B twGRXY/+T9n263/J0r//E6b//W+TexauGCTXu/rDf6/SE7gNCGx++L917XuwZuOSL/+lo6/9N45cBtYA kqub/+6/S/4B3AZ4VN3/XzL3HVyzoksPXDFILn/am//2GdtxG2Bfevd/YMszDM0gAJLLnvz6v0XCetwG @@ -745,7 +748,7 @@ 1005, 173 - 253 + 235 diff --git a/App/CONFIG_APP/frmMain.vb b/App/CONFIG_APP/frmMain.vb index 1cdca98..683a0d5 100644 --- a/App/CONFIG_APP/frmMain.vb +++ b/App/CONFIG_APP/frmMain.vb @@ -902,8 +902,6 @@ Public Class frmMain - - Private Sub COMMENTTextBox_Leave(sender As Object, e As EventArgs) Handles COMMENTTextBox.Leave Try Dim separatorIndex = COMMENTTextBox.Text.IndexOf(".") @@ -944,4 +942,14 @@ Public Class frmMain End Try End Sub + + Private Sub PasswortAnzeigenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles PasswortAnzeigenToolStripMenuItem.Click + Try + Dim oPW = EMAIL_PWTextBox.Text + Dim pwdecrypted = _Encryption.DecryptData(oPW) + MsgBox(pwdecrypted, MsgBoxStyle.Information, "Current PW") + Catch ex As Exception + MsgBox(ex.Message, MsgBoxStyle.Critical, "") + End Try + End Sub End Class diff --git a/App/DigitalData.EMLProfiler/DigitalData.EMLProfiler.vbproj b/App/DigitalData.EMLProfiler/DigitalData.EMLProfiler.vbproj index 2456448..eecaa65 100644 --- a/App/DigitalData.EMLProfiler/DigitalData.EMLProfiler.vbproj +++ b/App/DigitalData.EMLProfiler/DigitalData.EMLProfiler.vbproj @@ -48,24 +48,19 @@ ..\packages\AE.Net.Mail.1.7.10.0\lib\net45\AE.Net.Mail.dll - ..\..\..\DDMonorepo\Modules.Base\Base\bin\Debug\DigitalData.Modules.Base.dll + ..\..\..\DDModules\Base\bin\Debug\DigitalData.Modules.Base.dll - - False - ..\..\..\DDMonorepo\Modules.Database\bin\Debug\DigitalData.Modules.Database.dll + + ..\..\..\DDModules\Database\bin\Debug\DigitalData.Modules.Database.dll - - ..\..\..\DDMonorepo\Modules.Filesystem\bin\Debug\DigitalData.Modules.Filesystem.dll - - - False - ..\..\..\DDMonorepo\Modules.Language\bin\Debug\DigitalData.Modules.Language.dll + + ..\..\..\DDModules\Language\bin\Debug\DigitalData.Modules.Language.dll - ..\..\..\DDMonorepo\Modules.Logging\bin\Debug\DigitalData.Modules.Logging.dll + ..\..\..\DDModules\Logging\bin\Debug\DigitalData.Modules.Logging.dll - ..\..\..\DDMonorepo\Modules.Messaging\bin\Debug\DigitalData.Modules.Messaging.dll + ..\..\..\DDModules\Messaging\bin\Debug\DigitalData.Modules.Messaging.dll P:\Visual Studio Projekte\Bibliotheken\windream\Interop.WINDREAMLib.dll diff --git a/App/DigitalData.EMLProfiler/My Project/AssemblyInfo.vb b/App/DigitalData.EMLProfiler/My Project/AssemblyInfo.vb index fd2e536..9fa0686 100644 --- a/App/DigitalData.EMLProfiler/My Project/AssemblyInfo.vb +++ b/App/DigitalData.EMLProfiler/My Project/AssemblyInfo.vb @@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices ' übernehmen, indem Sie "*" eingeben: ' - - + + diff --git a/App/DigitalData.EMLProfiler/app.config b/App/DigitalData.EMLProfiler/app.config index b4498a1..dc0bb7e 100644 --- a/App/DigitalData.EMLProfiler/app.config +++ b/App/DigitalData.EMLProfiler/app.config @@ -1,4 +1,4 @@ - + @@ -7,17 +7,17 @@ - + - + - + @@ -25,9 +25,9 @@ - - + + - + diff --git a/App/DigitalData.EMLProfiler/clsEmail.IMAP.vb b/App/DigitalData.EMLProfiler/clsEmail.IMAP.vb index 0c4dff8..19b7d91 100644 --- a/App/DigitalData.EMLProfiler/clsEmail.IMAP.vb +++ b/App/DigitalData.EMLProfiler/clsEmail.IMAP.vb @@ -4,14 +4,14 @@ Imports AE Imports System.Net Imports System.Reflection Imports System.IO -Imports DigitalData.Modules.Database + Imports DigitalData.Modules.Messaging Public Class clsEmailIMAP - Private Shared Logger As DigitalData.Modules.Logging.Logger - Private Shared LogConfig As DigitalData.Modules.Logging.LogConfig + Private Shared Logger As Logger + Private Shared LogConfig As LogConfig Private _DB_MSSQL As clsDatabase - Private _limilab As DigitalData.Modules.Messaging.Limilab + Private _limilab As Limilab Sub New(LogConf As LogConfig, ECMConnectionString As String) LogConfig = LogConf Logger = LogConf.GetLogger diff --git a/App/DigitalData.EMLProfiler/clsEncryption.vb b/App/DigitalData.EMLProfiler/clsEncryption.vb index 9502a2d..a7fc90b 100644 --- a/App/DigitalData.EMLProfiler/clsEncryption.vb +++ b/App/DigitalData.EMLProfiler/clsEncryption.vb @@ -3,7 +3,7 @@ Imports NLog Imports DigitalData.Modules.Logging Public Class clsEncryption Private TripleDes As New TripleDESCryptoServiceProvider - Private Logger As DigitalData.Modules.Logging.Logger + Private Logger As Modules.Logging.Logger Sub New(ByVal key As String, LogConf As LogConfig) Logger = LogConf.GetLogger ' Initialize the crypto provider. diff --git a/App/DigitalData.EMLProfiler/clsWorkEmail.vb b/App/DigitalData.EMLProfiler/clsWorkEmail.vb index 890f19a..a2e25ec 100644 --- a/App/DigitalData.EMLProfiler/clsWorkEmail.vb +++ b/App/DigitalData.EMLProfiler/clsWorkEmail.vb @@ -89,21 +89,6 @@ Public Class clsWorkEmail End If - 'If IsNothing(CURRENT_MAIL_MESSAGE_ID) Then - ' CURRENT_MAIL_MESSAGE_ID = System.Guid.NewGuid.ToString() - 'Else - ' If CURRENT_MAIL_MESSAGE_ID.Length = 0 Then - ' CURRENT_MAIL_MESSAGE_ID = System.Guid.NewGuid.ToString() - ' ElseIf CURRENT_MAIL_MESSAGE_ID.Length > MESSAGE_ID_MAX_LENGTH Then - ' ' MessageIds longer than 100 chars will be replaced with a guid to avoid errors - ' ' because of file paths longer than 255 chars. - ' CURRENT_MAIL_MESSAGE_ID = System.Guid.NewGuid.ToString() - - ' End If - 'End If - 'CURRENT_MAIL_MESSAGE_ID = CURRENT_MAIL_MESSAGE_ID.Replace(">", "").Replace("<", "") - 'CURRENT_MAIL_MESSAGE_ID = CURRENT_MAIL_MESSAGE_ID.Replace("'", "") - If IsNothing(CURRENT_MAIL_SUBJECT) Then CURRENT_MAIL_SUBJECT = "" @@ -357,6 +342,7 @@ Public Class clsWorkEmail End Function Private Function SAVE2TEMP() + Dim oTempFilename As String Try Dim oTempPath As String = Path.Combine(Path.GetTempPath, "DD_EmailProfiler") Logger.Debug($"oTempPath is: {oTempPath} ...") @@ -380,7 +366,7 @@ Public Class clsWorkEmail Logger.Debug($"oSubjectFilename (beforeclean) is: {oSubjectFilename}") oSubjectFilename = RemoveIllegalFileNameChars(oSubjectFilename) - Dim oTempFilename = oTempPath & "\" & oSubjectFilename + oTempFilename = oTempPath & "\" & oSubjectFilename Logger.Debug($"oTempFilename (afterclean) is: {oTempFilename}") Dim oCounter As Integer = 1 @@ -420,6 +406,7 @@ Public Class clsWorkEmail Return oResult Catch ex As Exception Logger.Error(ex) + Logger.Info($"Unexpected error in Save2Temp [{oTempFilename}]") CURRENT_TEMP_MAIL_PATH = Nothing 'clsLogger.Add("Unexpected Error in COPY2HDD: " & ex.Message & "MESSAGE_ID: " & CURRENT_MAIL_MESSAGE.MessageID, True) Return False diff --git a/App/DigitalData.EMLProfiler/clsWorker.vb b/App/DigitalData.EMLProfiler/clsWorker.vb index 543e183..2f7b4f8 100644 --- a/App/DigitalData.EMLProfiler/clsWorker.vb +++ b/App/DigitalData.EMLProfiler/clsWorker.vb @@ -39,6 +39,18 @@ Public Class clsWorker Public Sub Start_WorkingProfiles(Optional LocalEmail As Boolean = False) Try + For Each _file In TEMP_FILES + Logger.Debug("Trying to delete temp file: [{0}]", _file) + + If System.IO.File.Exists(_file) Then + Try + System.IO.File.Delete(_file) + Catch ex As Exception + Logger.Error(ex) + Logger.Warn($"TempFileDelete - Could not delete the tempfile from TEMP_FILES: {ex.Message}") + End Try + End If + Next TEMP_FILES.Clear() If _Database.Init(cs) = True Then diff --git a/App/DigitalData.EMLProfiler/packages.config b/App/DigitalData.EMLProfiler/packages.config index 5a8f9e3..e4e7cf5 100644 --- a/App/DigitalData.EMLProfiler/packages.config +++ b/App/DigitalData.EMLProfiler/packages.config @@ -2,5 +2,4 @@ - \ No newline at end of file diff --git a/App/SERV_EMAIL/packages.config b/App/SERV_EMAIL/packages.config index 37cb921..ce98cd2 100644 --- a/App/SERV_EMAIL/packages.config +++ b/App/SERV_EMAIL/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/App/packages/S22.Imap.3.6.0.0/.signature.p7s b/App/packages/S22.Imap.3.6.0.0/.signature.p7s deleted file mode 100644 index 4e6f56a..0000000 Binary files a/App/packages/S22.Imap.3.6.0.0/.signature.p7s and /dev/null differ diff --git a/App/packages/S22.Imap.3.6.0.0/S22.Imap.3.6.0.0.nupkg b/App/packages/S22.Imap.3.6.0.0/S22.Imap.3.6.0.0.nupkg deleted file mode 100644 index ebfc67c..0000000 Binary files a/App/packages/S22.Imap.3.6.0.0/S22.Imap.3.6.0.0.nupkg and /dev/null differ diff --git a/App/packages/S22.Imap.3.6.0.0/lib/net35/S22.Imap.XML b/App/packages/S22.Imap.3.6.0.0/lib/net35/S22.Imap.XML deleted file mode 100644 index f92a55b..0000000 --- a/App/packages/S22.Imap.3.6.0.0/lib/net35/S22.Imap.XML +++ /dev/null @@ -1,6498 +0,0 @@ - - - - S22.Imap - - - - - Defines supported means of authenticating with an IMAP server. - - - - - Automatically selects the most-secure authentication mechanism supported by the server. - - - - - Login using plaintext password authentication; This is supported by most servers. - - - - - Login using the SASL PLAIN authentication mechanism. - - - - - Login using the CRAM-MD5 authentication mechanism. - - - - - Login using the DIGEST-MD5 authentication mechanism. - - - - - Login using OAuth via the SASL XOAuth mechanism. - - - - - Login using OAuth 2.0 via the SASL XOAUTH2 mechanism. - - - - - Login using the NTLM authentication mechanism. - - - - - Login using the NTLMv2 authentication mechanism. - - - - - Login using the NTLM/NTLMv2 authentication mechanism via Microsoft's Security Support - Provider Interface (SSPI). - - - - - Login using Kerberos authentication via the SASL GSSAPI mechanism. - - - - - Login using the SCRAM-SHA-1 authentication mechanism. - - - - - Login using the Secure Remote Password (SRP) authentication mechanism. - - The SRP mechanism is only available when targeting .NET 4.0 or newer. - - - - A utility class modeled after the BCL StringBuilder to simplify - building binary-data messages. - - - - - The actual byte buffer. - - - - - The current position in the buffer. - - - - - Resizes the internal byte buffer. - - Amount in bytes by which to increase the - size of the buffer. - - - - Appends one or several byte values to this instance. - - Byte values to append. - A reference to the calling instance. - - - - Appends the specified number of bytes from the specified buffer - starting at the specified offset to this instance. - - The buffer to append bytes from. - The offset into the buffert at which to start - reading bytes from. - The number of bytes to read from the buffer. - A reference to the calling instance. - - - - Appends the specified 32-bit integer value to this instance. - - A 32-bit integer value to append. - Set this to true, to append the value as - big-endian. - A reference to the calling instance. - - - - Appends the specified 16-bit short value to this instance. - - A 16-bit short value to append. - Set this to true, to append the value as - big-endian. - A reference to the calling instance. - - - - Appends the specified 16-bit unsigend short value to this instance. - - A 16-bit unsigend short value to append. - Set this to true, to append the value as - big-endian. - A reference to the calling instance. - - - - Appends the specified 32-bit unsigned integer value to this instance. - - A 32-bit unsigned integer value to append. - Set this to true, to append the value as - big-endian. - A reference to the calling instance. - - - - Appends the specified 64-bit integer value to this instance. - - A 64-bit integer value to append. - Set this to true, to append the value as - big-endian. - A reference to the calling instance. - - - - Appends the specified string using the specified encoding to this - instance. - - The string vale to append. - The encoding to use for decoding the string value - into a sequence of bytes. If this is null, ASCII encoding is used as a - default. - A reference to the calling instance. - - - - Returns the ByteBuilder's content as an array of bytes. - - An array of bytes. - - - - Removes all bytes from the current ByteBuilder instance. - - - - - The length of the underlying data buffer. - - - - - A filter stream sitting between Negotiate- and NetworkStream to - enable managed NTLM/GSSAPI authentication. - - - We use a filter for hooking into the NegotiateStream protocol rather - than p/invoking SSPI directly as that would require unmanaged - code privileges (internally NegotiateStream uses an SSPI wrapper). - - NegotiateStream - FilterStream - NetworkStream. - - - - - A buffer for accumulating handshake data until an entire handshake - has been read. - - - - - A buffer for accumulating the payload data following the handshake - data. - - - - - The latest handshake header sent by the client. - - - - - The buffer from which client reads will be satisfied. - - - - - The number of bytes the client has already consumed/read - from the receivedData buffer. - - - - - The current state of the filter stream. - - - - - Determines whether this instance should close the inner stream - when disposed. - - - - - An error code as specified by the NegotiateStream protocol which is - handed to the NegotiateStream instance in case authentication - unexpectedly fails. - - - - - Gets the stream used by this FilterStream for sending and - receiving data. - - - - - Initializes a new instance of the FilterStream class using the - specified Stream. - - A Stream object used by the FilterStream for sending - and receiving data. - Set to true to indicate that closing this - FilterStream has no effect on innerstream, or set to false to - indicate that closing this FilterStream also closes innerStream. - - - - Reads data from this stream and stores it in the specified array. - - A byte array that receives the bytes read from - the stream. - The zero-based index into the buffer at which to - begin storing the data read from this stream. - The the maximum number of bytes to read from the - stream. - The the number of bytes read from the underlying stream. When - there is no more data to be read, returns 0. - The read operation failed. - - - - Reads the server response from the underlying inner stream. - - - - - Write the specified number of bytes to the underlying stream using the - specified buffer and offset. - - A byte array that supplies the bytes written to - the stream. - The zero-based index in the buffer at which to - begin reading bytes to be written to the stream. - The number of bytes to read from buffer. - The write operation failed. - - - - Reads the client's handshake from the specified buffer. - - A byte array from which the handshake data - will be read. - The zero-based index in the buffer at which to - begin reading bytes. - The number of bytes to read from buffer. - True if the handshake has been read completely, otherwise - false. - - - - Reads the payload from the specified buffer. - - A byte array from which the payload data - will be read. - The zero-based index in the buffer at which to - begin reading bytes. - The number of bytes to read from buffer. - True if all of the payload data has been read, otherwise - false. - - - - Sends the accumulated payload data to the server. - - true if the client is done sending data, otherwise - false. - - - - Reads a line of ASCII-encoded text terminated by a CRLF from the - specified stream. - - The stream to read the line of text from. - Set this to true, to resolve automatically - resolve possible literals. - A line of ASII-encoded text read from the specified - stream. - "Literals" are a special feature of IMAP, employed by some - server implementations. Please refer to RFC 3501 Section 4.3 for - details. - - - - Reads the specified number of bytes from the specified stream and - returns them as an ASCII-encoded string. - - The stream to read from. - The number of bytes to read. - The read bytes encoded as an ASCII string. - - - - Causes any buffered data to be written to the underlying device. - - - - - Throws NotSupportedException. - - This value is ignored. - This value is ignored. - Always throws a NotSupportedException. - - - - Sets the length of the underlying stream. - - A value that specifies the length of the - stream. - - - - Releases all resources used by the stream. - - True to release both managed and unmanaged - resources, false to release only unmanaged resources. - - - - Gets a boolean value that indicates whether the underlying stream is - readable. - - - - - Gets a boolean value that indicates whether the underlying stream is - seekable. - - - - - Gets a boolean value that indicates whether the underlying stream - supports time-outs. - - - - - Gets a boolean value that indicates whether the underlying stream is - writable. - - - - - Gets the length of the underlying stream. - - - - - Gets or sets the current position in the underlying stream. - - Setting this property - is not supported. - - - - The different states the FilterStream can be in. - - - - - The stream is reading the client's handshake message. - - - - - The stream is reading the client's payload data. - - - - - The stream is waiting for the server's response. - - - - - The stream has buffered the server's response and is satisfying - client reads from its buffer. - - - - - Represents a NegotiateStream handshake message. - - - - - This is the only permissible value according to specification. - - - - - This is the only permissible value according to specification. - - - - - Creates a new instance of the Handshake class using the specified type - and payload size. - - The type of handshake. - The size, in bytes, of the payload following - the handshake header. - - - - Private default constructor for deserializing. - - - - - Deserializes a handshake instance from the specified byte array. - - An array of bytes containing handshake data. - An initialized instance of the Handshake class deserialized - from the specified byte array. - Thrown if the specified byte - array does not contain valid handshake data. - - - - Serializes an instance of the Handshake class to a sequence of bytes. - - A sequence of bytes representing this Handshake instance. - - - - The type of the handshake message. - - - - - Specifies the major version of the NegotiateStream protocol - being used. - - - - - Specifies the minor version of the NegotiateStream protocol - being used. - - - - - Defines the size, in bytes, of the AuthPayload field, which immediately - follows the handshake. - - - - - Describes the different types of handshake messages. - - - - - The handshake has completed successfully. - - - - - An error occurred during the handshake. The AuthPayload field contains - an HRESULT. - - - - - The message is part of the handshake phase and is not the final message - from the host. The final Handshake message from a host is always - transferred in a HandshakeDone message. - - - - - Implements the Sasl SCRAM-SHA-1 authentication method as described in - RFC 5802. - - - - - The abstract base class from which all classes implementing a Sasl - authentication mechanism must derive. - - - - - Computes the client response to a challenge sent by the server. - - - The client response to the specified challenge. - - - - - - - - Retrieves the base64-encoded client response for the specified - base64-encoded challenge sent by the server. - - A base64-encoded string representing a challenge - sent by the server. - A base64-encoded string representing the client response to the - server challenge. - The IMAP, POP3 and SMTP authentication commands expect challenges - and responses to be base64-encoded. This method automatically decodes the - server challenge before passing it to the Sasl implementation and - encodes the client response to a base64-string before returning it to the - caller. - Thrown if the client response could - not be retrieved. Refer to the inner exception for error details. - - - - Retrieves the client response for the specified server challenge. - - A byte array containing the challenge sent by - the server. - An array of bytes representing the client response to the - server challenge. - - - - IANA name of the authentication mechanism. - - - - - True if the authentication exchange between client and server - has been completed. - - - - - A map of mechanism-specific properties which are needed by the - authentication mechanism to compute it's challenge-responses. - - - - - The client nonce value used during authentication. - - - - - Scram-Sha-1 involves several steps. - - - - - The salted password. This is needed for client authentication and later - on again for verifying the server signature. - - - - - The auth message is part of the authentication exchange and is needed for - authentication as well as for verifying the server signature. - - - - - Private constructor for use with Sasl.SaslFactory. - - - - - Internal constructor used for unit testing. - - The username to authenticate with. - The plaintext password to authenticate - with. - The client nonce value to use. - Thrown if the username - or the password parameter is null. - Thrown if the username - parameter is empty. - - - - Creates and initializes a new instance of the SaslScramSha1 - class using the specified username and password. - - The username to authenticate with. - The plaintext password to authenticate - with. - Thrown if the username - or the password parameter is null. - Thrown if the username - parameter is empty. - - - - Computes the client response to the specified SCRAM-SHA-1 challenge. - - The challenge sent by the server - The response to the SCRAM-SHA-1 challenge. - Thrown if the response could not - be computed. - - - - Computes the initial response sent by the client to the server. - - An array of bytes containing the initial client - response. - - - - Computes the "client-final-message" which completes the authentication - process. - - The "server-first-message" challenge received - from the server in response to the initial client response. - An array of bytes containing the client's challenge - response. - - - - Verifies the nonce value sent by the server. - - The nonce value sent by the server as part of the - server-first-message. - True if the nonce value is valid, otherwise false. - - - - Verifies the server signature which is sent by the server as the final - step of the authentication process. - - The server signature as a base64-encoded - string. - The client's response to the server. This will be an empty - byte array if verification was successful, or the '*' SASL cancellation - token. - - - - Parses the "server-first-message" received from the server. - - The challenge received from the server. - A collection of key/value pairs contained extracted from - the server message. - Thrown if the message parameter - is null. - - - - Computes the "Hi()"-formula which is part of the client's response - to the server challenge. - - The supplied password to use. - The salt received from the server. - The iteration count. - An array of bytes containing the result of the computation of the - "Hi()"-formula. - - Hi is, essentially, PBKDF2 with HMAC as the pseudorandom function (PRF) and with - dkLen == output length of HMAC() == output length of H(). (Refer to RFC 5802, p.6) - - - - - Applies the HMAC keyed hash algorithm using the specified key to - the specified input data. - - The key to use for initializing the HMAC - provider. - The input to compute the hashcode for. - The hashcode of the specified data input. - - - - Applies the HMAC keyed hash algorithm using the specified key to - the specified input string. - - The key to use for initializing the HMAC - provider. - The input string to compute the hashcode for. - The hashcode of the specified string. - - - - Applies the cryptographic hash function SHA-1 to the specified data - array. - - The data array to apply the hash function to. - The hash value for the specified byte array. - - - - Applies the exclusive-or operation to combine the specified byte array - a with the specified byte array b. - - The first byte array. - The second byte array. - An array of bytes of the same length as the input arrays - containing the result of the exclusive-or operation. - Thrown if either argument is - null. - Thrown if the input arrays - are not of the same length. - - - - Generates a random cnonce-value which is a "client-specified data string - which must be different each time a digest-response is sent". - - A random "cnonce-value" string. - - - - Prepares the specified string as is described in RFC 5802. - - A string value. - A "Saslprepped" string. - - - - True if the authentication exchange between client and server - has been completed. - - - - - The IANA name for the Scram-Sha-1 authentication mechanism as described - in RFC 5802. - - - - - The username to authenticate with. - - - - - The password to authenticate with. - - - - - Represents a MIME body part of a mail message that has multiple - parts. - - - - - Initializes a new instance of the Bodypart class with default - values. - - The part number as is expected by the - IMAP FETCH command. - - - - Returns a detailed description listing all properties of this - Bodypart instance. - - A string describing this instance of the Bodypart class - - - - The body part number which acts as part specifier for - the FETCH BODY command. - - - - - The MIME content-type of this body part. The content-type is - used to declare the general type of data. - - - - - The MIME content-subtype of this body part. The subtype - specifies a specific format for the type of data. - - - - - Parameter values present in the MIME content-type header - of this body part (for instance, 'charset'). - - - - - The MIME content-id of this body part, if any. This value - may be used for uniquely identifying MIME entities in - several contexts. - - - - - The MIME content-description of this body part. This value - may contain some descriptive information on the body part. - - - - - The MIME content-transfer-encoding mechanism used for - encoding this body part's data. - - - - - The size of this body part in bytes. Note that this size - is the size in its transfer encoding and not the resulting - size after any decoding. - - - - - The size of the body in text lines. This field is only - present in body parts with a content-type of text. - - - - - The computed MD5-Hash of the body part. This field is not - mandatory and may be empty. - - - - - The MIME content-disposition for this body part. This field - is not mandatory and may be empty. - - - - - A string giving the body language. This field is not mandatory - and may be empty. - - - - - A string list giving the body content URI. This field is not - mandatory and may be empty. - - - - - Provides a means for parsing the textual description of the body structure of a mail - message as is returned by an IMAP server for a "FETCH BODYSTRUCTURE" command. - - - They couldn't have made the BODYSTRUCTURE any more complicated and unnecessarily - hard to parse. I wonder what they were thinking when they came up with this. - - - - - Parses the body structure of a mail message as is returned by the IMAP server - in response to a FETCH BODYSTRUCTURE command. - - The body structure server response - An array of initialized Bodypart objects representing the body - structure of the mail message - Thrown if the passed string does not - contain a valid body structure and parsing failed. - - - - A Reader object initialized with the string containing the bodystructure - response. - - - - - Initializes a new instance of the Bodystructure class. - - - - - - Parses a bodypart entry from the body structure and advances the - read pointer. - - The designated part specifier by which the body - part is refered to by the server. - Set to true if the bodypart is enclosed - in parenthesis. - - - - - Parses the mandatory extra fields that are present if the bodypart is - of type message/rfc822 (see RFC 3501, p. 75). - - The bodypart instance the parsed fields will be - added to. - - - - Parses the optional fields of a bodypart entry from the body structure - and advances the read pointer. - - The bodypart instance the parsed fields will be - added to. - Set to true if the bodypart entry is enclosed - in parenthesis. - - - - Parses a list of bodypart entries as is outlined in the description of the - BODYPART response in RFC 3501. - - The nesting prefix that will be prefixed to the - bodyparts partNumber. - An array of initialized Bodypart objects parsed from the - list. - - - - Advances the read pointer to skip over a multipart entry. - - - - - Advances the read pointer to skip over an arbitrary - expression enclosed in parentheses. - - - - - Represents the content disposition as is presented in the BODYSTRUCTURE - response by the IMAP server. - - - - - Initializes a new instance of the ContentDisposition class with - default values. - - - - - Maps MIME content disposition string values to their corresponding - counter-parts of the ContentDispositionType enumeration. - - - - - The content disposition specifies the presentation style. - - - - - Additional attribute fields for specifying the name of a file, the creation - date and modification date, which can be used by the reader's mail user agent - to store the attachment. - - - - - Contains the name of the transmitted file if the content-disposition is of type - "Attachment" and if the name value was provided as part of the header information. - This field may be empty. - - - - - Possible values for the content disposition type which determines the presentation - style - - - - - The content disposition could not be determined. - - - - - An inline content disposition means that the content should be automatically - displayed when the message is displayed. - - - - - An attachment content disposition means that the content should not be displayed - automatically and requires some form of action from the user to open it. - - - - - Possible values for the "Encoding" property of the Bodypart class. The content - transfer encoding indicates whether or not a binary-to-text encoding - scheme has been used on top of the original encoding as specified within the - Content-Type header. - - - - - The content tranfer encoding could not be determined or is unknown. - - - - - Up to 998 bytes per line of the code range 1 - 127 with CR and LF only - allowed to appear as part of a CRLF line ending. - - - - - Up to 998 bytes per line with CR and LF only allowed to appear as part - of a CRLF line ending. - - - - - Any sequence of bytes. - - - - - Byte sequence is encoded using the quoted-printable encoding. - - - - - Byte sequence is encoded using Base64 encoding. - - - - - Possible values for the "Type" property of the Bodypart class. - For a detailed description of MIME Media Types refer to - RFC 2046. - - - - - The "text" media type is intended for sending material which - is principally textual in form. - - - - - A media type of "image" indicates that the body contains an image. - The subtype names the specific image format. - - - - - A media type of "audio" indicates that the body contains audio - data. - - - - - A media type of "video" indicates that the body contains a - time-varying-picture image, possibly with color and coordinated sound. - - - - - The "application" media type is to be used for discrete data which do - not fit in any of the other categories, and particularly for data to - be processed by some type of application program. - - - - - The "message" content type allows messages to contain other messages - or pointers to other messages. - - - - - The media type value is unknown or could not be determined. - - - - - A helper class for parsing the BODYSTRUCTURE response of an - IMAP FETCH command more conveniently. - - - - - Initializes a new instance of the Reader class that reads from the - specified string. - - The string to which the Reader instance should be - initialized. - - - - Reads the next character from the input string and advances the - character position by one character. - - The next character from the underlying string. - Thrown when reading is - attempted past the end of the underlying string. - - - - Returns the next available character but does not consume it. - - Set to true to skip any preceding - whitespace characters. - An integer representing the next character to be read, - or -1 if no more characters are available. - - - - Advances the character position until the specified character - is encountered. - - The character to skip to. - Thrown when reading is - attempted past the end of the underlying string. - - - - Advances the character position over any whitespace characters - and subsequently ensures the next read will not return a - whitespace character. - - Thrown when reading is - attempted past the end of the underlying string. - - - - Reads characters until the specified character is encountered. - - The character to read up to. - The read characters as a string value. - Thrown when reading is - attempted past the end of the underlying string. - - - - Reads a word from the underlying string. A word in this context - is a literal enclosed in double-quotes. - - The read word. - Thrown when reading is - attempted past the end of the underlying string. - - - - Reads an integer from the underlying string. - - The read integer value. - Thrown when reading is - attempted past the end of the underlying string. - - - - Reads a list from the underlying string. A list in this context - is a list of attribute/value literals (enclosed in double-quotes) - enclosed in parenthesis. - - The read list as a dictionary with the attribute names - as keys and attribute values as values. - Thrown when reading is - attempted past the end of the underlying string. - - - - Reads a disposition from the underlying string. A disposition in - this context is a list of attribute/value literals (enclosed in - double-quotes) preceded by a word enclosed in parenthesis. - - An initialized ContentDisposition instance representing - the parsed disposition. - Thrown when reading is - attempted past the end of the underlying string. - - - - The exception that is thrown when reading is attempted past the end - of a string. - - - - - Initializes a new instance of the EndOfStringException class - - - - - Initializes a new instance of the EndOfStringException class with its message - string set to . - - A description of the error. The content of message is intended - to be understood by humans. - - - - Initializes a new instance of the EndOfStringException class with its message - string set to and a reference to the inner exception that - is the cause of this exception. - - A description of the error. The content of message is intended - to be understood by humans. - The exception that is the cause of the current exception. - - - - Initializes a new instance of the EndOfStringException class with the specified - serialization and context information. - - An object that holds the serialized object data about the exception - being thrown. - An object that contains contextual information about the source - or destination. - - - - Defines the different means by which mail messages may be fetched from the server. - - - - - Fetches the entire mail message with all of its content. - - - - - Only the mail message headers will be retrieved, while the actual content will not be - downloaded. If this option is specified, only the header fields of the returned MailMessage - object will be initialized. - - - - - Retrieves the mail message, but will only download content that has a content-type of text. - This will retrieve text as well as HTML representation, while skipping inline content and - attachments. - - - - - Retrieves the mail message, but skips any content that is an attachment. - - - - - Provides data for IMAP idle error events. - - - - - Initializes a new instance of the IdleErrorEventArgs class. - - The exception that causes the event. - The instance of the ImapClient class that raised the event. - The exception parameter or the client parameter - is null. - - - - The exception that caused the error event. - - - - - The instance of the ImapClient class that raised the event. - - - - - Provides data for IMAP idle notification events. - - - - - Initializes a new instance of the IdleMessageEventArgs class and sets the - MessageCount attribute to the value of the - parameter. - - The number of messages in the selected mailbox. - The unique identifier (UID) of the newest message in the - mailbox. - The instance of the ImapClient class that raised the event. - - - - The total number of messages in the selected mailbox. - - - - - The unique identifier (UID) of the newest message in the mailbox. - - The UID can be passed to the GetMessage method in order to retrieve the mail - message from the server. - - - - The instance of the ImapClient class that raised the event. - - - - - Enables applications to communicate with a mail server using the Internet Message Access - Protocol (IMAP). - - - - - Attempts to establish an authenticated session with the server using the specified - credentials. - - The username with which to login in to the IMAP server. - The password with which to log in to the IMAP server. - The requested method of authentication. Can be one of the values - of the AuthMethod enumeration. - The username parameter or the password parameter - is null. - There was a failure writing to or reading from the - network. - The server rejected the supplied - credentials. - The specified authentication method is not - supported by the server. - - This example demonstrates how to authenticate with an IMAP server once a connection - has been established. Notice that you can also connect and login in one step - using one of the overloaded constructors. - - // Connect to Gmail's IMAP server on port 993 using SSL. - ImapClient Client = new ImapClient("imap.gmail.com", 993, true); - - try { - Client.Login("My_Username", "My_Password", AuthMethod.Auto); - } - catch(InvalidCredentialsException) { - Console.WriteLine("The server rejected the supplied credentials."); - } - - Client.Dispose(); - - - - - - Logs an authenticated client out of the server. After the logout sequence has been completed, - the server closes the connection with the client. - - An unexpected response has been received from - the server during the logout sequence. - Calling this method in non-authenticated state has no effect. - There was a failure writing to or reading from the - network. - The ImapClient object has been disposed. - - - - Returns an enumerable collection of capabilities the IMAP server supports. All strings in - the returned collection are guaranteed to be upper-case. - - An unexpected response has been received from - the server; The message property of the exception contains the error message returned by - the server. - There was a failure writing to or reading from the - network. - The ImapClient object has been disposed. - An enumerable collection of capabilities supported by the server. - This method may be called in non-authenticated state. - - - - Determines whether the specified capability is supported by the server. - - The IMAP capability to probe for (for example "IDLE"). - The capability parameter is null. - An unexpected response has been received from - the server; The message property of the exception contains the error message returned by - the server. - There was a failure writing to or reading from the - network. - The ImapClient object has been disposed. - true if the specified capability is supported by the server; Otherwise - false. - This method may be called in non-authenticated state. - - This example demonstrates how to connect and login to an IMAP server. - - // Connect to Gmail's IMAP server on port 993 using SSL. - ImapClient Client = null; - try { - Client = new ImapClient("imap.gmail.com", 993, "My_Username", - "My_Password", true, AuthMethod.Auto); - - // Check if the server supports IMAP IDLE. - if(Client.Supports("IDLE")) - Console.WriteLine("This server supports the IMAP4 IDLE specification"); - else - Console.WriteLine("This server does not support IMAP IDLE"); - } - catch(InvalidCredentialsException) { - Console.WriteLine("The server rejected the supplied credentials"); - } - finally { - // Release resources. - if(Client != null) - Client.Dispose(); - } - - - - - - Changes the name of the specified mailbox. - - The mailbox to rename. - The new name the mailbox will be renamed to. - The mailbox parameter or the - newName parameter is null. - The mailbox could not be renamed; The message - property of the exception contains the error message returned by the server. - There was a failure writing to or reading from the - network. - The ImapClient object has been disposed. - The method was called in non-authenticated - state, i.e. before logging in. - - - - Permanently removes the specified mailbox. - - The name of the mailbox to remove. - The mailbox parameter is null. - The specified mailbox could not be removed. - The message property of the exception contains the error message returned by the - server. - There was a failure writing to or reading from the - network. - The ImapClient object has been disposed. - The method was called in non-authenticated - state, i.e. before logging in. - - - - Creates a new mailbox with the specified name. - - The name of the mailbox to create. - The mailbox parameter is null. - The mailbox with the specified name could - not be created. The message property of the exception contains the error message returned - by the server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - Retrieves a list of all available and selectable mailboxes on the server. - - An enumerable collection of the names of all available and selectable - mailboxes. - The list of mailboxes could not be retrieved. - The message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - The mailbox name "INBOX" is a special name reserved to mean "the primary mailbox - for this user on this server". - - - - Permanently removes all messages that have the \Deleted flag set from the specified mailbox. - - The mailbox to remove all messages from that have the \Deleted flag - set. If this parameter is omitted, the value of the DefaultMailbox property is used to - determine the mailbox to operate on. - The expunge operation could not be completed. - The message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - - Retrieves status information (total number of messages, various attributes as well as quota - information) for the specified mailbox. - The mailbox to retrieve status information for. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - A MailboxInfo object containing status information for the mailbox. - The operation could not be completed because - the server returned an error. The message property of the exception contains the error message - returned by the server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - Not all IMAP servers support the retrieval of quota information. If it is not - possible to retrieve this information, the UsedStorage and FreeStorage properties of the - returned MailboxStatus instance are set to 0. - - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe", - "My_Password", true, AuthMethod.Login); - - // Get a list of all mailboxes. - foreach(string m in Client.ListMailboxes()) - { - MailboxInfo info = Client.GetMailboxInfo(m); - - Console.WriteLine(info.Name); - Console.WriteLine("Used storage: " + info.UsedStorage); - Console.WriteLine("Free storage: " + info.FreeStorage); - Console.WriteLine("Next UID: " + info.NextUID); - Console.WriteLine("Messages: " + info.Messages); - Console.WriteLine("Unread: " + info.Unread); - Console.WriteLine("Set Flags: "); - foreach (MailboxFlag f in info.Flags) - Console.Write(f.ToString() + ","); - Console.WriteLine(); - } - - Client.Dispose(); - - - - - - Searches the specified mailbox for messages that match the given search criteria. - - A search criteria expression; Only messages that match this - expression will be included in the result set returned by this method. - The mailbox that will be searched. If this parameter is omitted, the - value of the DefaultMailbox property is used to determine the mailbox to operate on. - The criteria parameter is null. - The search could not be completed. The message - property of the exception contains the error message returned by the server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - The search values contain characters beyond the - ASCII range and the server does not support handling non-ASCII strings. - An enumerable collection of unique identifiers (UIDs) which can be used with the - GetMessage family of methods to download the mail messages. - A unique identifier (UID) is a 32-bit value assigned to each message which uniquely - identifies the message within the respective mailbox. No two messages in a mailbox share - the same UID. - - This example demonstrates how to use the search method to get a list of all - unread messages in the mailbox. - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username", - "My_Password", true, AuthMethod.Login); - - // Get a list of unique identifiers (UIDs) of all unread messages in the mailbox. - IEnumerable<uint> uids = Client.Search( SearchCondition.Unseen() ); - - // Fetch the messages and print out their subject lines. - foreach(uint uid in uids) { - MailMessage message = Client.GetMessage(uid); - - Console.WriteLine(message.Subject); - } - - // Free up any resources associated with this instance. - Client.Dispose(); - - - This example demonstrates how to perform a search using multiple search criteria. - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username", - "My_Password", true, AuthMethod.Login); - - // Get a list of unique identifiers (UIDs) of all messages sent before the 01.04.2012 - // and that are larger than 1 Kilobyte. - IEnumerable<uint> uids = Client.Search( SearchCondition.SentBefore(new DateTime(2012, 4, 1)) - .And( SearchCondition.Larger(1024) )); - - Console.WriteLine("Found " + uids.Count() + " messages"); - - // Free up any resources associated with this instance. - Client.Dispose(); - - - The following example demonstrates how to perform a search using characters outside - the ASCII range. - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username", - "My_Password", true, AuthMethod.Login); - - // Get a list of unique identifiers (UIDs) of all messages that have - // the Japanese expression "フーリエ変換" in their subject lines. - try { - IEnumerable<uint> uids = Client.Search(SearchCondition.Subject("フーリエ変換")); - - Console.WriteLine("Found " + uids.Count() + " messages"); - } catch(NotSupportedException e) { - // If this exception is thrown, the server does not support searching for characters - // outside the ASCII range. - Console.WriteLine("The server does not support searching for non-ASCII values."); - } - - // Free up any resources associated with this instance. - Client.Dispose(); - - - - - - Retrieves the mail message with the specified unique identifier (UID). - - The unique identifier of the mail message to retrieve. - Set this to true to set the \Seen flag for this message on the - server. - The mailbox the message will be retrieved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - An initialized instance of the MailMessage class representing the fetched mail - message. - The mail message could not be fetched. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - A unique identifier (UID) is a 32-bit value assigned to each message which uniquely - identifies the message within the respective mailbox. No two messages in a mailbox share - the same UID. - - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe", - "My_Password", true, AuthMethod.Login); - - // Find all messages in the mailbox that were sent from "John.Doe@gmail.com". - IEnumerable<uint> uids = Client.Search( SearchCondition.From("John.Doe@gmail.com") ); - - // Fetch the first message and print it's subject and body. - if(uids.Count() > 0) { - MailMessage msg = Client.GetMessage(uids.First()); - - Console.WriteLine("Subject: " + msg.Subject); - Console.WriteLine("Body: " + msg.Body); - } - - Client.Dispose(); - - - - - - Retrieves the mail message with the specified unique identifier (UID) using the specified - fetch-option. - - The unique identifier of the mail message to retrieve. - A value from the FetchOptions enumeration which allows - for fetching selective parts of a mail message. - Set this to true to set the \Seen flag for this message on the - server. - The mailbox the message will be retrieved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - An initialized instance of the MailMessage class representing the fetched mail - message. - The mail message could not be fetched. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - A unique identifier (UID) is a 32-bit value assigned to each message which uniquely - identifies the message within the respective mailbox. No two messages in a mailbox share - the same UID. - If you need more fine-grained control over which parts of a mail message to fetch, - consider using one of the overloaded GetMessage methods. - - - - This example demonstrates how to fetch only the mail message headers of - a mail message, instead of the entire message. - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe", - "My_Password", true, AuthMethod.Login); - - // Find all messages in the mailbox that have "Hello" in the subject. - IEnumerable<uint> uids = Client.Search( SearchCondition.Subject("Hello") ); - - // Fetch the mail headers of the first message and print it's subject line. - if(uids.Count() > 0) { - MailMessage msg = Client.GetMessage(uids.First(), FetchOptions.HeadersOnly); - - Console.WriteLine("Subject: " + msg.Subject); - } - - Client.Dispose(); - - - - - - Retrieves the mail message with the specified unique identifier (UID) while only fetching - those parts of the message that satisfy the condition of the specified delegate. - - The unique identifier of the mail message to retrieve. - A delegate which will be invoked for every MIME body-part of the - mail message to determine whether the part should be fetched from the server or - skipped. - Set this to true to set the \Seen flag for this message on the - server. - The mailbox the message will be retrieved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - An initialized instance of the MailMessage class representing the fetched mail - message. - The callback parameter is null. - The mail message could not be fetched. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - A unique identifier (UID) is a 32-bit value assigned to each message which uniquely - identifies the message within the respective mailbox. No two messages in a mailbox share - the same UID. - - This example demonstrates how to use the ExaminePartDelegate with the GetMessage - method to only download message parts with a size of 1 Megabyte or less. - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe", - "My_Password", true, AuthMethod.Login); - - // Find all messages in the inbox. - IEnumerable<uint> uids = Client.Search( SearchCondition.All() ); - - // Download each message but skip message parts that are larger than 1 Megabyte. - foreach(uint uid in uids) { - MailMessage msg = Client.GetMessage(uid, (Bodypart part) => { - if(part.Size > (1024 * 1024)) - return false; - else - return true; - } - ); - } - - Client.Dispose(); - - - - - - Retrieves the set of mail messages with the specified unique identifiers (UIDs). - - An enumerable collection of unique identifiers of the mail messages to - retrieve. - Set this to true to set the \Seen flag for the fetched messages on the - server. - The mailbox the messages will be retrieved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - An enumerable collection of initialized instances of the MailMessage class - representing the fetched mail messages. - The uids parameter is null. - The mail messages could not be fetched. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - A unique identifier (UID) is a 32-bit value assigned to each message which uniquely - identifies the message within the respective mailbox. No two messages in a mailbox share - the same UID. - - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe", - "My_Password", true, AuthMethod.Login); - - // Find all messages that have been sent since June the 1st. - IEnumerable<uint> uids = Client.Search( SearchCondition.SentSince( new DateTime(2012, 6, 1) ) ); - - // Fetch the messages and print out their subject lines. - IEnumerable<MailMessage> messages = Client.GetMessages( uids ); - - foreach(MailMessage m in messages) - Console.WriteLine("Subject: " + m.Subject); - - Client.Dispose(); - - - - - - Retrieves the set of mail messages with the specified unique identifiers (UIDs) while only - fetching those parts of the messages that satisfy the condition of the specified delegate. - - An enumerable collection of unique identifiers of the mail messages to - retrieve. - A delegate which will be invoked for every MIME body-part of each - mail message to determine whether the part should be fetched from the server or - skipped. - Set this to true to set the \Seen flag for the fetched messages on the - server. - The mailbox the messages will be retrieved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - An enumerable collection of initialized instances of the MailMessage class - representing the fetched mail messages. - The uids parameter or the callback parameter is - null. - The mail messages could not be fetched. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - A unique identifier (UID) is a 32-bit value assigned to each message which uniquely - identifies the message within the respective mailbox. No two messages in a mailbox share - the same UID. - - - - - Retrieves the set of mail messages with the specified unique identifiers (UIDs) using the - specified fetch-option. - - An enumerable collection of unique identifiers of the mail messages to - retrieve. - A value from the FetchOptions enumeration which allows for fetching - selective parts of a mail message. - Set this to true to set the \Seen flag for the fetched messages on the - server. - The mailbox the messages will be retrieved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - An enumerable collection of initialized instances of the MailMessage class - representing the fetched mail messages. - The uids parameter is null. - The mail messages could not be fetched. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - A unique identifier (UID) is a 32-bit value assigned to each message which uniquely - identifies the message within the respective mailbox. No two messages in a mailbox share - the same UID. - - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe", - "My_Password", true, AuthMethod.Login); - - // Find all messages that have been sent since June the 1st. - IEnumerable<uint> uids = Client.Search( SearchCondition.SentSince( new DateTime(2012, 6, 1) ) ); - - // Retrieve the messages and print out their subject lines. If any of the messages are multipart - // messages, only those parts, that have a content-type of text will be fetched. - IEnumerable<MailMessage> messages = Client.GetMessages( uids, FetchOptions.TextOnly ); - - foreach(MailMessage m in messages) - Console.WriteLine("Subject: " + m.Subject); - - Client.Dispose(); - - - - - - Stores the specified mail message on the IMAP server. - - The mail message to store on the server. - Set this to true to set the \Seen flag for the message on the - server. - The mailbox the message will be stored in. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to store - the message in. - The unique identifier (UID) of the stored message. - The message parameter is null. - The mail message could not be stored. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - A unique identifier (UID) is a 32-bit value assigned to each message which uniquely - identifies the message within the respective mailbox. No two messages in a mailbox share - the same UID. - - - This example demonstrates how to store a mail message on an IMAP server. - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe", - "My_Password", true, AuthMethod.Login); - - MailMessage message = CreateSimpleMailMessage(); - uint uid = Client.StoreMessage(message); - - Console.WriteLine("The UID of the stored mail message is " + uid); - - Client.Dispose(); - - // ........... - - // This creates a simple mail message with a text/plain body and a PNG image - // as a file attachment. - // Consult the MSDN website for more details on the System.Net.Mail.Mailmessage class. - static MailMessage CreateSimpleMailMessage() { - MailMessage message = new MailMessage(); - - message.From = new MailAddress("someone@someplace.com"); - message.To.Add("john.doe@someplace.com"); - - message.Subject = "This is just a test!"; - message.Body = "This is the text/plain body. An additional HTML body " + - "can optionally be attached as an alternate view"; - - // Add the attachment. - Attachment attachment = new Attachment("some_image.png", "image/png"); - attachment.Name = "my_attached_image.png"; - message.Attachments.Add(attachment); - - return message; - } - - - - - - Stores the specified mail messages on the IMAP server. - - An enumerable collection of mail messages to store on the - server. - Set this to true to set the \Seen flag for each message on the - server. - The mailbox the messages will be stored in. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to store - the messages in. - An enumerable collection of unique identifiers (UID) representing the stored - messages on the server. - The messages parameter is null. - The mail messages could not be stored. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - A unique identifier (UID) is a 32-bit value assigned to each message which uniquely - identifies the message within the respective mailbox. No two messages in a mailbox share - the same UID. - - - - - Copies the mail message with the specified UID to the specified destination mailbox. - - The UID of the mail message to copy. - The name of the mailbox to copy the message to. - The mailbox the message will be copied from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - The destination parameter is null. - The mail message could not be copied to the - specified destination. The message property of the exception contains the error message - returned by the server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - - Copies the mail messages with the specified UIDs to the specified destination mailbox. - - An enumerable collection of UIDs of the mail messages to copy. - The name of the mailbox to copy the messages to. - The mailbox the message will be copied from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - When copying many messages, this method is more efficient than calling - for each individual message. - The uids parameter or the destination parameter is - null. - The specified collection of UIDs is empty. - The mail messages could not be copied to the - specified destination. The message property of the exception contains the error message - returned by the server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - - Moves the mail message with the specified UID to the specified destination mailbox. - - The UID of the mail message to move. - The name of the mailbox to move the message into. - The mailbox the message will be moved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - The destination parameter is null. - The mail message could not be moved to the - specified destination. The message property of the exception contains the error message - returned by the server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - - - Moves the mail messages with the specified UIDs to the specified destination mailbox. - - An enumerable collection of UIDs of the mail messages to move. - The name of the mailbox to move the messages into. - The mailbox the messages will be moved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - When moving many messages, this method is more efficient than calling - for each individual message. - The uids parameter or the destination parameter is - null. - The mail messages could not be moved to the - specified destination. The message property of the exception contains the error message - returned by the server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - - - Deletes the mail message with the specified UID. - - The UID of the mail message to delete. - The mailbox the message will be deleted from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - The mail message could not be deleted. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - - Deletes the mail messages with the specified UIDs. - - An enumerable collection of UIDs of the mail messages to delete. - The mailbox the messages will be deleted from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - When deleting many messages, this method is more efficient than calling - for each individual message. - The uids parameter is null. - The specified collection of UIDs is empty. - The mail messages could not be deleted. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - - Retrieves the IMAP message flag attributes for the mail message with the specified unique - identifier (UID). - - The UID of the mail message to retrieve the flag attributes for. - The mailbox the message will be retrieved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - An enumerable collection of message flags set for the message with the specified - UID. - The mail message flags could not be retrieved. - The message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - - - - Sets the IMAP message flag attributes for the mail message with the specified unique - identifier (UID). - - The UID of the mail message to set the flag attributes for. - The mailbox that contains the mail message. If this parameter is null, - the value of the DefaultMailbox property is used to determine the mailbox to operate - on. - One or multiple message flags from the MessageFlag enumeration. - The mail message flags could not be set. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - This method replaces the current flag attributes of the message with the specified - new flags. If you wish to retain the old attributes, use the - method instead. - - - - - - - Adds the specified set of IMAP message flags to the existing flag attributes of the mail - message with the specified unique identifier (UID). - - The UID of the mail message to add the flag attributes to. - The mailbox that contains the mail message. If this parameter is null, - the value of the DefaultMailbox property is used to determine the mailbox to operate - on. - One or multiple message flags from the MessageFlag enumeration. - The mail message flags could not be added. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - This method adds the specified set of flags to the existing set of flag attributes - of the message. If you wish to replace the old attributes, use the - method instead. - - - - - - - Removes the specified set of IMAP message flags from the existing flag attributes of the - mail message with the specified unique identifier (UID). - - The UID of the mail message to remove the flag attributes for. - The mailbox that contains the mail message. If this parameter is null, - the value of the DefaultMailbox property is used to determine the mailbox to operate - on. - One or multiple message flags from the MessageFlag enumeration. - The mail message flags could not be removed. - The message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - This method removes the specified set of flags from the existing set of flag - attributes of the message. If you wish to replace the old attributes, use the - method instead. - - - - - - - The default mailbox to operate on. - - The property is being set and the value is - null. - The property is being set and the value is the empty - string. - The default value for this property is "INBOX" which is a special name reserved - to mean "the primary mailbox for this user on this server". - - - - Determines whether the client is authenticated with the server. - - - - - The event that is raised when a new mail message has been received by the server. - - To probe a server for IMAP IDLE support, the - method can be used, specifying "IDLE" for the capability parameter. - - Please note that the event handler will be executed on a threadpool thread. - - - This example demonstrates how to receive IMAP IDLE notifications. - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe", - "My_Password", true, AuthMethod.Login); - - // Make sure our server actually supports IMAP IDLE. - if(!Client.Supports("IDLE")) - throw new Exception("This server does not support IMAP IDLE"); - - // Our event handler will be called whenever a new message is received - // by the server. - Client.NewMessage += new EventHandler<IdleMessageEventArgs>(OnNewMessage); - - // ......... - - Client.Dispose(); - - // ........ - - void OnNewMessage(object sender, IdleMessageEventArgs e) { - Console.WriteLine("Received a new message!"); - Console.WriteLine("Total number of messages in the mailbox: " + - e.MessageCount); - } - - - - - - The event that is raised when a message has been deleted on the server. - - To probe a server for IMAP IDLE support, the - method can be used, specifying "IDLE" for the capability parameter. - - Please note that the event handler will be executed on a threadpool thread. - - - This example demonstrates how to receive IMAP IDLE notifications. - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe", - "My_Password", true, AuthMethod.Login); - - // Make sure our server actually supports IMAP IDLE. - if(!Client.Supports("IDLE")) - throw new Exception("This server does not support IMAP IDLE"); - - // Our event handler will be called whenever a message is deleted on the server. - Client.MessageDeleted += new EventHandler<IdleMessageEventArgs>(OnMessageDeleted); - - // ......... - - // Don't forget to dispose the client once you're done with it. - Client.Dispose(); - - // ........ - - void OnMessageDeleted(object sender, IdleMessageEventArgs e) { - Console.WriteLine("A mail message was deleted on the server!"); - Console.WriteLine("Total number of mail messages in the mailbox: " + - e.MessageCount); - } - - - - - - Enables applications to communicate with a mail server using the Internet Message Access - Protocol (IMAP). - - - - - This constructor is solely used for unit testing. - - A stream to initialize the ImapClient instance with. - - - - Initializes a new instance of the ImapClient class and connects to the specified port - on the specified host, optionally using the Secure Socket Layer (SSL) security protocol. - - The DNS name of the server to which you intend to connect. - The port number of the server to which you intend to connect. - Set to true to use the Secure Socket Layer (SSL) security protocol. - Delegate used for verifying the remote Secure Sockets - Layer (SSL) certificate which is used for authentication. Can be null if not needed. - The port parameter is not between MinPort - and MaxPort. - The hostname parameter is null. - An unexpected response has been received from - the server upon connecting. - There was a failure writing to or reading from the - network. - An error occurred while accessing the socket used for - establishing the connection to the IMAP server. Use the ErrorCode property to obtain the - specific error code. - An authentication - error occured while trying to establish a secure connection. - - This example shows how to establish a connection with an IMAP server - and print out the IMAP options, which the server supports. - - // Connect to Gmail's IMAP server on port 993 using SSL. - ImapClient Client = new ImapClient("imap.gmail.com", 993, true); - - // Print out the server's capabilities. - foreach(string s in Client.Capabilities()) - Console.WriteLine(s); - - Client.Dispose(); - - - - - - Initializes a new instance of the ImapClient class and connects to the specified port on - the specified host, optionally using the Secure Socket Layer (SSL) security protocol and - attempts to authenticate with the server using the specified authentication method and - credentials. - - The DNS name of the server to which you intend to connect. - The port number of the server to which you intend to connect. - The username with which to login in to the IMAP server. - The password with which to log in to the IMAP server. - The requested method of authentication. Can be one of the values - of the AuthMethod enumeration. - Set to true to use the Secure Socket Layer (SSL) security protocol. - Delegate used for verifying the remote Secure Sockets Layer - (SSL) certificate which is used for authentication. Can be null if not needed. - The port parameter is not between MinPort - and MaxPort. - The hostname parameter is null. - An unexpected response has been received from - the server upon connecting. - There was a failure writing to or reading from the - network. - The provided credentials were rejected by the - server. - An error occurred while accessing the socket used for - establishing the connection to the IMAP server. Use the ErrorCode property to obtain the - specific error code. - An authentication - error occured while trying to establish a secure connection. - - This example demonstrates how to connect and login to an IMAP server. - - // Connect to Gmail's IMAP server on port 993 using SSL. - ImapClient Client = null; - try { - Client = new ImapClient("imap.gmail.com", 993, "My_Username", - "My_Password", true, AuthMethod.Auto); - - // Check if the server supports IMAP IDLE. - if(Client.Supports("IDLE")) - Console.WriteLine("This server supports the IMAP4 IDLE specification"); - else - Console.WriteLine("This server does not support IMAP IDLE"); - } - catch(InvalidCredentialsException) { - Console.WriteLine("The server rejected the supplied credentials"); - } - finally { - // Release resources. - if(Client != null) - Client.Dispose(); - } - - - - - - Connects to the specified port on the specified host, optionally using the Secure Socket Layer - (SSL) security protocol. - - The DNS name of the server to which you intend to connect. - The port number of the server to which you intend to connect. - Set to true to use the Secure Socket Layer (SSL) security protocol. - Delegate used for verifying the remote Secure Sockets Layer (SSL) - certificate which is used for authentication. Can be null if not needed. - The port parameter is not between MinPort - and MaxPort. - The hostname parameter is null. - An unexpected response has been received - from the server upon connecting. - There was a failure writing to or reading from the - network. - An error occurred while accessing the socket used for - establishing the connection to the IMAP server. Use the ErrorCode property to obtain the - specific error code. - An authentication - error occured while trying to establish a secure connection. - - - - Determines whether the specified response is a valid IMAP OK response. - - A response string received from the server. - A tag if the response is associated with a command. - true if the response is a valid IMAP OK response; Otherwise false. - - - - Attempts to establish an authenticated session with the server using the specified - credentials. - - The username with which to login in to the IMAP server. - The password with which to log in to the IMAP server. - The requested method of authentication. Can be one of the values - of the AuthMethod enumeration. - The username parameter or the password parameter - is null. - There was a failure writing to or reading from the - network. - The server rejected the supplied - credentials. - The specified authentication method is not - supported by the server. - - This example demonstrates how to authenticate with an IMAP server once a connection - has been established. Notice that you can also connect and login in one step - using one of the overloaded constructors. - - // Connect to Gmail's IMAP server on port 993 using SSL. - ImapClient Client = new ImapClient("imap.gmail.com", 993, true); - - try { - Client.Login("My_Username", "My_Password", AuthMethod.Auto); - } - catch(InvalidCredentialsException) { - Console.WriteLine("The server rejected the supplied credentials."); - } - - Client.Dispose(); - - - - - - Performs authentication using the most secure authentication mechanism supported by the - server. - - The tag identifier to use for performing the authentication - commands. - The username with which to login in to the IMAP server. - The password with which to log in to the IMAP server. - The response sent by the server. - The order of preference of authentication types employed by this method is - Ntlm, Scram-Sha-1, Digest-Md5, followed by Cram-Md5 and finally plaintext Login as - a last resort. - - - - Performs an actual IMAP "LOGIN" command using the specified username and plain-text - password. - - The tag identifier to use for performing the authentication - commands. - The username with which to login in to the IMAP server. - The password with which to log in to the IMAP server. - The response sent by the server. - - - - Performs NTLM and Kerberos authentication via the Security Support Provider Interface (SSPI). - - The tag identifier to use for performing the authentication - commands. - The username with which to login in to the IMAP server. - The password with which to log in to the IMAP server. - True to authenticate using NTLM, otherwise GSSAPI (Kerberos) is - used. - The response sent by the server. - The specified authentication method is not - supported by the server. - - - - Performs authentication using a SASL authentication mechanism via IMAP's authenticate - command. - - The tag identifier to use for performing the authentication - commands. - The username with which to login in to the IMAP server. - The password with which to log in to the IMAP server. - The name of the SASL authentication mechanism to use. - The response sent by the server. - The authentication mechanism with the specified name could - not be found. - The specified authentication mechanism is not - supported by the server. - An unexpected response has been received from - the server. - - - - Logs an authenticated client out of the server. After the logout sequence has been completed, - the server closes the connection with the client. - - An unexpected response has been received from - the server during the logout sequence. - Calling this method in non-authenticated state has no effect. - There was a failure writing to or reading from the - network. - The ImapClient object has been disposed. - - - - Generates a unique identifier to prefix a command with, as is required by the IMAP protocol. - - A unique identifier string. - - - - Sends a command string to the server. This method blocks until the command has been - transmitted. - - The command to send to the server. The string is suffixed by CRLF - prior to sending. - - - - Sends a command string to the server and subsequently waits for a response, which is then - returned to the caller. This method blocks until the server response has been received. - - The command to send to the server. This is suffixed by CRLF prior - to sending. - Set to true to resolve possible literals returned by the - server (Refer to RFC 3501 Section 4.3 for details). - The response received by the server. - - - - Waits for a response from the server. This method blocks until a response has been received. - - Set to true to resolve possible literals returned by the - server (Refer to RFC 3501 Section 4.3 for details). - A response string from the server - The underlying socket is closed or there was a failure - reading from the network. - - - - Reads the specified amount of bytes from the server. This method blocks until the specified - amount of bytes has been read from the network stream. - - The number of bytes to read. - The read bytes as an ASCII-encoded string. - The underlying socket is closed or there was a failure - reading from the network. - - - - Returns an enumerable collection of capabilities the IMAP server supports. All strings in - the returned collection are guaranteed to be upper-case. - - An unexpected response has been received from - the server; The message property of the exception contains the error message returned by - the server. - There was a failure writing to or reading from the - network. - The ImapClient object has been disposed. - An enumerable collection of capabilities supported by the server. - This method may be called in non-authenticated state. - - - - Determines whether the specified capability is supported by the server. - - The IMAP capability to probe for (for example "IDLE"). - The capability parameter is null. - An unexpected response has been received from - the server; The message property of the exception contains the error message returned by - the server. - There was a failure writing to or reading from the - network. - The ImapClient object has been disposed. - true if the specified capability is supported by the server; Otherwise - false. - This method may be called in non-authenticated state. - - This example demonstrates how to connect and login to an IMAP server. - - // Connect to Gmail's IMAP server on port 993 using SSL. - ImapClient Client = null; - try { - Client = new ImapClient("imap.gmail.com", 993, "My_Username", - "My_Password", true, AuthMethod.Auto); - - // Check if the server supports IMAP IDLE. - if(Client.Supports("IDLE")) - Console.WriteLine("This server supports the IMAP4 IDLE specification"); - else - Console.WriteLine("This server does not support IMAP IDLE"); - } - catch(InvalidCredentialsException) { - Console.WriteLine("The server rejected the supplied credentials"); - } - finally { - // Release resources. - if(Client != null) - Client.Dispose(); - } - - - - - - Changes the name of the specified mailbox. - - The mailbox to rename. - The new name the mailbox will be renamed to. - The mailbox parameter or the - newName parameter is null. - The mailbox could not be renamed; The message - property of the exception contains the error message returned by the server. - There was a failure writing to or reading from the - network. - The ImapClient object has been disposed. - The method was called in non-authenticated - state, i.e. before logging in. - - - - Permanently removes the specified mailbox. - - The name of the mailbox to remove. - The mailbox parameter is null. - The specified mailbox could not be removed. - The message property of the exception contains the error message returned by the - server. - There was a failure writing to or reading from the - network. - The ImapClient object has been disposed. - The method was called in non-authenticated - state, i.e. before logging in. - - - - Creates a new mailbox with the specified name. - - The name of the mailbox to create. - The mailbox parameter is null. - The mailbox with the specified name could - not be created. The message property of the exception contains the error message returned - by the server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - Selects the specified mailbox so that the messages of the mailbox can be accessed. - - The mailbox to select. If this parameter is null, the - default mailbox is selected. - The specified mailbox could not be selected. - The message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - IMAP Idle must be paused or stopped before calling this method. - - - - Retrieves a list of all available and selectable mailboxes on the server. - - An enumerable collection of the names of all available and selectable - mailboxes. - The list of mailboxes could not be retrieved. - The message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - The mailbox name "INBOX" is a special name reserved to mean "the primary mailbox - for this user on this server". - - - - Permanently removes all messages that have the \Deleted flag set from the specified mailbox. - - The mailbox to remove all messages from that have the \Deleted flag - set. If this parameter is omitted, the value of the DefaultMailbox property is used to - determine the mailbox to operate on. - The expunge operation could not be completed. - The message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - - Retrieves status information (total number of messages, various attributes as well as quota - information) for the specified mailbox. - The mailbox to retrieve status information for. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - A MailboxInfo object containing status information for the mailbox. - The operation could not be completed because - the server returned an error. The message property of the exception contains the error message - returned by the server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - Not all IMAP servers support the retrieval of quota information. If it is not - possible to retrieve this information, the UsedStorage and FreeStorage properties of the - returned MailboxStatus instance are set to 0. - - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe", - "My_Password", true, AuthMethod.Login); - - // Get a list of all mailboxes. - foreach(string m in Client.ListMailboxes()) - { - MailboxInfo info = Client.GetMailboxInfo(m); - - Console.WriteLine(info.Name); - Console.WriteLine("Used storage: " + info.UsedStorage); - Console.WriteLine("Free storage: " + info.FreeStorage); - Console.WriteLine("Next UID: " + info.NextUID); - Console.WriteLine("Messages: " + info.Messages); - Console.WriteLine("Unread: " + info.Unread); - Console.WriteLine("Set Flags: "); - foreach (MailboxFlag f in info.Flags) - Console.Write(f.ToString() + ","); - Console.WriteLine(); - } - - Client.Dispose(); - - - - - - Retrieves the set of special-use flags associated with the specified mailbox. - - The mailbox to receive the special-use flags for. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - The operation could not be completed because - the server returned an error. The message property of the exception contains the error - message returned by the server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - An enumerable collection of special-use flags set on the specified - mailbox. - This feature is an optional extension to the IMAP protocol and as such some servers - may not report any flags at all. - - - - Retrieves status information (total number of messages, number of unread messages, etc.) for - the specified mailbox. - The mailbox to retrieve status information for. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - A MailboxStatus object containing status information for the mailbox. - The operation could not be completed because - the server returned an error. The message property of the exception contains the error - message returned by the server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - Searches the specified mailbox for messages that match the given search criteria. - - A search criteria expression; Only messages that match this - expression will be included in the result set returned by this method. - The mailbox that will be searched. If this parameter is omitted, the - value of the DefaultMailbox property is used to determine the mailbox to operate on. - The criteria parameter is null. - The search could not be completed. The message - property of the exception contains the error message returned by the server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - The search values contain characters beyond the - ASCII range and the server does not support handling non-ASCII strings. - An enumerable collection of unique identifiers (UIDs) which can be used with the - GetMessage family of methods to download the mail messages. - A unique identifier (UID) is a 32-bit value assigned to each message which uniquely - identifies the message within the respective mailbox. No two messages in a mailbox share - the same UID. - - This example demonstrates how to use the search method to get a list of all - unread messages in the mailbox. - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username", - "My_Password", true, AuthMethod.Login); - - // Get a list of unique identifiers (UIDs) of all unread messages in the mailbox. - IEnumerable<uint> uids = Client.Search( SearchCondition.Unseen() ); - - // Fetch the messages and print out their subject lines. - foreach(uint uid in uids) { - MailMessage message = Client.GetMessage(uid); - - Console.WriteLine(message.Subject); - } - - // Free up any resources associated with this instance. - Client.Dispose(); - - - This example demonstrates how to perform a search using multiple search criteria. - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username", - "My_Password", true, AuthMethod.Login); - - // Get a list of unique identifiers (UIDs) of all messages sent before the 01.04.2012 - // and that are larger than 1 Kilobyte. - IEnumerable<uint> uids = Client.Search( SearchCondition.SentBefore(new DateTime(2012, 4, 1)) - .And( SearchCondition.Larger(1024) )); - - Console.WriteLine("Found " + uids.Count() + " messages"); - - // Free up any resources associated with this instance. - Client.Dispose(); - - - The following example demonstrates how to perform a search using characters outside - the ASCII range. - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username", - "My_Password", true, AuthMethod.Login); - - // Get a list of unique identifiers (UIDs) of all messages that have - // the Japanese expression "フーリエ変換" in their subject lines. - try { - IEnumerable<uint> uids = Client.Search(SearchCondition.Subject("フーリエ変換")); - - Console.WriteLine("Found " + uids.Count() + " messages"); - } catch(NotSupportedException e) { - // If this exception is thrown, the server does not support searching for characters - // outside the ASCII range. - Console.WriteLine("The server does not support searching for non-ASCII values."); - } - - // Free up any resources associated with this instance. - Client.Dispose(); - - - - - - Retrieves the mail message with the specified unique identifier (UID). - - The unique identifier of the mail message to retrieve. - Set this to true to set the \Seen flag for this message on the - server. - The mailbox the message will be retrieved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - An initialized instance of the MailMessage class representing the fetched mail - message. - The mail message could not be fetched. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - A unique identifier (UID) is a 32-bit value assigned to each message which uniquely - identifies the message within the respective mailbox. No two messages in a mailbox share - the same UID. - - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe", - "My_Password", true, AuthMethod.Login); - - // Find all messages in the mailbox that were sent from "John.Doe@gmail.com". - IEnumerable<uint> uids = Client.Search( SearchCondition.From("John.Doe@gmail.com") ); - - // Fetch the first message and print it's subject and body. - if(uids.Count() > 0) { - MailMessage msg = Client.GetMessage(uids.First()); - - Console.WriteLine("Subject: " + msg.Subject); - Console.WriteLine("Body: " + msg.Body); - } - - Client.Dispose(); - - - - - - Retrieves the mail message with the specified unique identifier (UID) using the specified - fetch-option. - - The unique identifier of the mail message to retrieve. - A value from the FetchOptions enumeration which allows - for fetching selective parts of a mail message. - Set this to true to set the \Seen flag for this message on the - server. - The mailbox the message will be retrieved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - An initialized instance of the MailMessage class representing the fetched mail - message. - The mail message could not be fetched. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - A unique identifier (UID) is a 32-bit value assigned to each message which uniquely - identifies the message within the respective mailbox. No two messages in a mailbox share - the same UID. - If you need more fine-grained control over which parts of a mail message to fetch, - consider using one of the overloaded GetMessage methods. - - - - This example demonstrates how to fetch only the mail message headers of - a mail message, instead of the entire message. - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe", - "My_Password", true, AuthMethod.Login); - - // Find all messages in the mailbox that have "Hello" in the subject. - IEnumerable<uint> uids = Client.Search( SearchCondition.Subject("Hello") ); - - // Fetch the mail headers of the first message and print it's subject line. - if(uids.Count() > 0) { - MailMessage msg = Client.GetMessage(uids.First(), FetchOptions.HeadersOnly); - - Console.WriteLine("Subject: " + msg.Subject); - } - - Client.Dispose(); - - - - - - Retrieves the mail message with the specified unique identifier (UID) while only fetching - those parts of the message that satisfy the condition of the specified delegate. - - The unique identifier of the mail message to retrieve. - A delegate which will be invoked for every MIME body-part of the - mail message to determine whether the part should be fetched from the server or - skipped. - Set this to true to set the \Seen flag for this message on the - server. - The mailbox the message will be retrieved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - An initialized instance of the MailMessage class representing the fetched mail - message. - The callback parameter is null. - The mail message could not be fetched. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - A unique identifier (UID) is a 32-bit value assigned to each message which uniquely - identifies the message within the respective mailbox. No two messages in a mailbox share - the same UID. - - This example demonstrates how to use the ExaminePartDelegate with the GetMessage - method to only download message parts with a size of 1 Megabyte or less. - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe", - "My_Password", true, AuthMethod.Login); - - // Find all messages in the inbox. - IEnumerable<uint> uids = Client.Search( SearchCondition.All() ); - - // Download each message but skip message parts that are larger than 1 Megabyte. - foreach(uint uid in uids) { - MailMessage msg = Client.GetMessage(uid, (Bodypart part) => { - if(part.Size > (1024 * 1024)) - return false; - else - return true; - } - ); - } - - Client.Dispose(); - - - - - - Retrieves the set of mail messages with the specified unique identifiers (UIDs). - - An enumerable collection of unique identifiers of the mail messages to - retrieve. - Set this to true to set the \Seen flag for the fetched messages on the - server. - The mailbox the messages will be retrieved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - An enumerable collection of initialized instances of the MailMessage class - representing the fetched mail messages. - The uids parameter is null. - The mail messages could not be fetched. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - A unique identifier (UID) is a 32-bit value assigned to each message which uniquely - identifies the message within the respective mailbox. No two messages in a mailbox share - the same UID. - - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe", - "My_Password", true, AuthMethod.Login); - - // Find all messages that have been sent since June the 1st. - IEnumerable<uint> uids = Client.Search( SearchCondition.SentSince( new DateTime(2012, 6, 1) ) ); - - // Fetch the messages and print out their subject lines. - IEnumerable<MailMessage> messages = Client.GetMessages( uids ); - - foreach(MailMessage m in messages) - Console.WriteLine("Subject: " + m.Subject); - - Client.Dispose(); - - - - - - Retrieves the set of mail messages with the specified unique identifiers (UIDs) while only - fetching those parts of the messages that satisfy the condition of the specified delegate. - - An enumerable collection of unique identifiers of the mail messages to - retrieve. - A delegate which will be invoked for every MIME body-part of each - mail message to determine whether the part should be fetched from the server or - skipped. - Set this to true to set the \Seen flag for the fetched messages on the - server. - The mailbox the messages will be retrieved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - An enumerable collection of initialized instances of the MailMessage class - representing the fetched mail messages. - The uids parameter or the callback parameter is - null. - The mail messages could not be fetched. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - A unique identifier (UID) is a 32-bit value assigned to each message which uniquely - identifies the message within the respective mailbox. No two messages in a mailbox share - the same UID. - - - - - Retrieves the set of mail messages with the specified unique identifiers (UIDs) using the - specified fetch-option. - - An enumerable collection of unique identifiers of the mail messages to - retrieve. - A value from the FetchOptions enumeration which allows for fetching - selective parts of a mail message. - Set this to true to set the \Seen flag for the fetched messages on the - server. - The mailbox the messages will be retrieved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - An enumerable collection of initialized instances of the MailMessage class - representing the fetched mail messages. - The uids parameter is null. - The mail messages could not be fetched. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - A unique identifier (UID) is a 32-bit value assigned to each message which uniquely - identifies the message within the respective mailbox. No two messages in a mailbox share - the same UID. - - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe", - "My_Password", true, AuthMethod.Login); - - // Find all messages that have been sent since June the 1st. - IEnumerable<uint> uids = Client.Search( SearchCondition.SentSince( new DateTime(2012, 6, 1) ) ); - - // Retrieve the messages and print out their subject lines. If any of the messages are multipart - // messages, only those parts, that have a content-type of text will be fetched. - IEnumerable<MailMessage> messages = Client.GetMessages( uids, FetchOptions.TextOnly ); - - foreach(MailMessage m in messages) - Console.WriteLine("Subject: " + m.Subject); - - Client.Dispose(); - - - - - - Stores the specified mail message on the IMAP server. - - The mail message to store on the server. - Set this to true to set the \Seen flag for the message on the - server. - The mailbox the message will be stored in. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to store - the message in. - The unique identifier (UID) of the stored message. - The message parameter is null. - The mail message could not be stored. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - A unique identifier (UID) is a 32-bit value assigned to each message which uniquely - identifies the message within the respective mailbox. No two messages in a mailbox share - the same UID. - - - This example demonstrates how to store a mail message on an IMAP server. - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe", - "My_Password", true, AuthMethod.Login); - - MailMessage message = CreateSimpleMailMessage(); - uint uid = Client.StoreMessage(message); - - Console.WriteLine("The UID of the stored mail message is " + uid); - - Client.Dispose(); - - // ........... - - // This creates a simple mail message with a text/plain body and a PNG image - // as a file attachment. - // Consult the MSDN website for more details on the System.Net.Mail.Mailmessage class. - static MailMessage CreateSimpleMailMessage() { - MailMessage message = new MailMessage(); - - message.From = new MailAddress("someone@someplace.com"); - message.To.Add("john.doe@someplace.com"); - - message.Subject = "This is just a test!"; - message.Body = "This is the text/plain body. An additional HTML body " + - "can optionally be attached as an alternate view"; - - // Add the attachment. - Attachment attachment = new Attachment("some_image.png", "image/png"); - attachment.Name = "my_attached_image.png"; - message.Attachments.Add(attachment); - - return message; - } - - - - - - Stores the specified mail messages on the IMAP server. - - An enumerable collection of mail messages to store on the - server. - Set this to true to set the \Seen flag for each message on the - server. - The mailbox the messages will be stored in. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to store - the messages in. - An enumerable collection of unique identifiers (UID) representing the stored - messages on the server. - The messages parameter is null. - The mail messages could not be stored. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - A unique identifier (UID) is a 32-bit value assigned to each message which uniquely - identifies the message within the respective mailbox. No two messages in a mailbox share - the same UID. - - - - - Retrieves the mail header for the mail message with the specified unique identifier (UID). - - The UID of the mail message to retrieve the mail header for. - Set this to true to set the \Seen flag for the fetched messages on the - server. - The mailbox the messages will be retrieved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - A string containing the raw mail header of the mail message with the specified - UID. - The mail header could not be fetched. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - Retrieves the body structure for the mail message with the specified unique identifier (UID). - - The UID of the mail message to retrieve the body structure for. - The mailbox the messages will be retrieved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - A string containing the raw body structure of the mail message with the specified - UID. - The body structure could not be fetched. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - A body structure is a textual description of the layout of a mail message. It is - described in some detail in RFC 3501 under 7.4.2 FETCH response. - - - - Retrieves the MIME body-part with the specified part number of the multipart message with - the specified unique identifier (UID). - - The UID of the mail message to retrieve a MIME body part for. - The part number of the body part to fetch. - Set this to true to set the \Seen flag for the fetched messages on the - server. - The mailbox the messages will be retrieved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - A string containing the specified body part of the mail message with the specified - UID. - The body part could not be fetched. The message - property of the exception contains the error message returned by the server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - Retrieves the raw MIME/RFC822 mail message data for the mail message with the specified UID. - - The UID of the mail message to retrieve as a MIME/RFC822 string. - Set this to true to set the \Seen flag for the fetched message on the - server. - The mailbox the message will be retrieved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - A string containing the raw MIME/RFC822 data of the mail message with the - specified UID. - The mail message data could not be fetched. - The message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - Retrieves the highest UID in the specified mailbox. - - The mailbox to find the highest UID for. If this parameter is null, - the value of the DefaultMailbox property is used to determine the mailbox to operate - on. - The highest unique identifier value (UID) in the mailbox. - The UID could not be determined. The message - property of the exception contains the error message returned by the server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - The highest UID usually corresponds to the newest message in a mailbox. - - - - Copies the mail message with the specified UID to the specified destination mailbox. - - The UID of the mail message to copy. - The name of the mailbox to copy the message to. - The mailbox the message will be copied from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - The destination parameter is null. - The mail message could not be copied to the - specified destination. The message property of the exception contains the error message - returned by the server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - - Copies the mail messages with the specified UIDs to the specified destination mailbox. - - An enumerable collection of UIDs of the mail messages to copy. - The name of the mailbox to copy the messages to. - The mailbox the message will be copied from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - When copying many messages, this method is more efficient than calling - for each individual message. - The uids parameter or the destination parameter is - null. - The specified collection of UIDs is empty. - The mail messages could not be copied to the - specified destination. The message property of the exception contains the error message - returned by the server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - - Moves the mail message with the specified UID to the specified destination mailbox. - - The UID of the mail message to move. - The name of the mailbox to move the message into. - The mailbox the message will be moved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - The destination parameter is null. - The mail message could not be moved to the - specified destination. The message property of the exception contains the error message - returned by the server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - - - Moves the mail messages with the specified UIDs to the specified destination mailbox. - - An enumerable collection of UIDs of the mail messages to move. - The name of the mailbox to move the messages into. - The mailbox the messages will be moved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - When moving many messages, this method is more efficient than calling - for each individual message. - The uids parameter or the destination parameter is - null. - The mail messages could not be moved to the - specified destination. The message property of the exception contains the error message - returned by the server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - - - Deletes the mail message with the specified UID. - - The UID of the mail message to delete. - The mailbox the message will be deleted from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - The mail message could not be deleted. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - - Deletes the mail messages with the specified UIDs. - - An enumerable collection of UIDs of the mail messages to delete. - The mailbox the messages will be deleted from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - When deleting many messages, this method is more efficient than calling - for each individual message. - The uids parameter is null. - The specified collection of UIDs is empty. - The mail messages could not be deleted. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - - Retrieves the IMAP message flag attributes for the mail message with the specified unique - identifier (UID). - - The UID of the mail message to retrieve the flag attributes for. - The mailbox the message will be retrieved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - An enumerable collection of message flags set for the message with the specified - UID. - The mail message flags could not be retrieved. - The message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - - - - Sets the IMAP message flag attributes for the mail message with the specified unique - identifier (UID). - - The UID of the mail message to set the flag attributes for. - The mailbox that contains the mail message. If this parameter is null, - the value of the DefaultMailbox property is used to determine the mailbox to operate - on. - One or multiple message flags from the MessageFlag enumeration. - The mail message flags could not be set. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - This method replaces the current flag attributes of the message with the specified - new flags. If you wish to retain the old attributes, use the - method instead. - - - - - - - Adds the specified set of IMAP message flags to the existing flag attributes of the mail - message with the specified unique identifier (UID). - - The UID of the mail message to add the flag attributes to. - The mailbox that contains the mail message. If this parameter is null, - the value of the DefaultMailbox property is used to determine the mailbox to operate - on. - One or multiple message flags from the MessageFlag enumeration. - The mail message flags could not be added. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - This method adds the specified set of flags to the existing set of flag attributes - of the message. If you wish to replace the old attributes, use the - method instead. - - - - - - - Removes the specified set of IMAP message flags from the existing flag attributes of the - mail message with the specified unique identifier (UID). - - The UID of the mail message to remove the flag attributes for. - The mailbox that contains the mail message. If this parameter is null, - the value of the DefaultMailbox property is used to determine the mailbox to operate - on. - One or multiple message flags from the MessageFlag enumeration. - The mail message flags could not be removed. - The message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - This method removes the specified set of flags from the existing set of flag - attributes of the message. If you wish to replace the old attributes, use the - method instead. - - - - - - - Starts receiving of IMAP IDLE notifications from the IMAP server. - - An unexpected program condition occured. - The IDLE operation could not be completed. The - message property of the exception contains the error message returned by the - server. - The server does not support the IMAP4 IDLE - command. - There was a failure writing to or reading from the - network. - The ImapClient object has been disposed. - The method was called in non-authenticated - state, i.e. before logging in. - Calling this method when already receiving idle notifications has no - effect. - - - - - - - Stops receiving IMAP IDLE notifications from the IMAP server. - - The IDLE operation could not be completed. The - message property of the exception contains the error message returned by the - server. - The server does not support the IMAP4 IDLE - command. - There was a failure writing to or reading from the - network. - The ImapClient object has been disposed. - The method was called in non-authenticated - state, i.e. before logging in. - Calling this method when not receiving idle notifications has no effect. - - - - - - Temporarily pauses receiving IMAP IDLE notifications from the IMAP server. - - The IDLE operation could not be completed. The - message property of the exception contains the error message returned by the - server. - The server does not support the IMAP4 IDLE - command. - There was a failure writing to or reading from the - network. - The ImapClient object has been disposed. - The method was called in non-authenticated - state, i.e. before logging in. - To resume receiving IDLE notifications ResumeIdling must be called. - - - - - - - Resumes receiving IMAP IDLE notifications from the IMAP server. - - An unexpected program condition occured. - The IDLE operation could not be completed. The - message property of the exception contains the error message returned by the - server. - The server does not support the IMAP4 IDLE - command. - There was a failure writing to or reading from the - network. - The ImapClient object has been disposed. - The method was called in non-authenticated - state, i.e. before logging in. - - - - - The main idle loop. Waits for incoming IMAP IDLE notifications and dispatches - them as events. This runs in its own thread whenever IMAP IDLE - notifications are being received. - - - - - Blocks on a queue and wakes up whenever a new notification is put into the queue. The - notification is then examined and dispatched as an event. - - - - - Issues a NOOP command to the IMAP server. Called in the context of a System.Timer event - when IDLE notifications are being received. - - This is needed by the IMAP IDLE mechanism to give the server an indication that the - connection is still active. - - - - - Retrieves IMAP QUOTA information for the specified mailbox. - - The mailbox to retrieve QUOTA information for. If this parameter is - null, the value of the DefaultMailbox property is used to determine the mailbox to operate - on. - An enumerable collection of MailboxQuota objects describing usage and limits of the - quota roots for the mailbox. - The quota operation could not be completed. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The IMAP4 QUOTA extension is not supported by - the server. - The method was called in non-authenticated - state, i.e. before logging in. - - - - Releases all resources used by the current instance of the ImapClient class. - - - - - Releases all resources used by the current instance of the ImapClient class, optionally - disposing of managed resource. - - true to dispose of managed resources, otherwise false. - - - - Asserts the instance has not been disposed of and is in a valid state. - - The ImapClient object has been - disposed. - The method was called in non-authenticated - state, i.e. before logging in. - - - - The default mailbox to operate on. - - The property is being set and the value is - null. - The property is being set and the value is the empty - string. - The default value for this property is "INBOX" which is a special name reserved - to mean "the primary mailbox for this user on this server". - - - - Determines whether the client is authenticated with the server. - - - - - The event that is raised when a new mail message has been received by the server. - - To probe a server for IMAP IDLE support, the - method can be used, specifying "IDLE" for the capability parameter. - - Please note that the event handler will be executed on a threadpool thread. - - - This example demonstrates how to receive IMAP IDLE notifications. - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe", - "My_Password", true, AuthMethod.Login); - - // Make sure our server actually supports IMAP IDLE. - if(!Client.Supports("IDLE")) - throw new Exception("This server does not support IMAP IDLE"); - - // Our event handler will be called whenever a new message is received - // by the server. - Client.NewMessage += new EventHandler<IdleMessageEventArgs>(OnNewMessage); - - // ......... - - Client.Dispose(); - - // ........ - - void OnNewMessage(object sender, IdleMessageEventArgs e) { - Console.WriteLine("Received a new message!"); - Console.WriteLine("Total number of messages in the mailbox: " + - e.MessageCount); - } - - - - - - The event that is raised when a message has been deleted on the server. - - To probe a server for IMAP IDLE support, the - method can be used, specifying "IDLE" for the capability parameter. - - Please note that the event handler will be executed on a threadpool thread. - - - This example demonstrates how to receive IMAP IDLE notifications. - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe", - "My_Password", true, AuthMethod.Login); - - // Make sure our server actually supports IMAP IDLE. - if(!Client.Supports("IDLE")) - throw new Exception("This server does not support IMAP IDLE"); - - // Our event handler will be called whenever a message is deleted on the server. - Client.MessageDeleted += new EventHandler<IdleMessageEventArgs>(OnMessageDeleted); - - // ......... - - // Don't forget to dispose the client once you're done with it. - Client.Dispose(); - - // ........ - - void OnMessageDeleted(object sender, IdleMessageEventArgs e) { - Console.WriteLine("A mail message was deleted on the server!"); - Console.WriteLine("Total number of mail messages in the mailbox: " + - e.MessageCount); - } - - - - - - The event that is raised when an I/O exception occurs in the idle-thread. - - - An I/O exception can occur if the underlying network connection has been reset or the - server unexpectedly closed the connection. - - - - - A delegate which is invoked during a call to GetMessage or GetMessages for every MIME part in - a multipart mail message. The delegate can examine the MIME body part and decide to either - include it in the returned mail message or dismiss it. - - A MIME body part of a mail message which consists of multiple parts. - true to include the body part in the returned MailMessage object, or false to skip - it. - - - - The exception that is thrown when an unexpected response is received from the server. - - - - - Initializes a new instance of the BadServerResponseException class - - - - - Initializes a new instance of the BadServerResponseException class with its message - string set to . - - A description of the error. The content of message is intended - to be understood by humans. - - - - Initializes a new instance of the BadServerResponseException class with its message - string set to and a reference to the inner exception that - is the cause of this exception. - - A description of the error. The content of message is intended - to be understood by humans. - The exception that is the cause of the current exception. - - - - Initializes a new instance of the BadServerResponseException class with the specified - serialization and context information. - - An object that holds the serialized object data about the exception - being thrown. - An object that contains contextual information about the source - or destination. - - - - The exception that is thrown when the supplied credentials were rejected by the server. - - - - - Initializes a new instance of the InvalidCredentialsException class - - - - - Initializes a new instance of the InvalidCredentialsException class with its message - string set to . - - A description of the error. The content of message is intended - to be understood by humans. - - - - Initializes a new instance of the InvalidCredentialsException class with its message - string set to and a reference to the inner exception that - is the cause of this exception. - - A description of the error. The content of message is intended - to be understood by humans. - The exception that is the cause of the current exception. - - - - Initializes a new instance of the InvalidCredentialsException class with the specified - serialization and context information. - - An object that holds the serialized object data about the exception - being thrown. - An object that contains contextual information about the source - or destination. - - - - The exception that is thrown when a client has not authenticated with the server and - attempts to call a method which can only be called when authenticated. - - - - - Initializes a new instance of the NotAuthenticatedException class - - - - - Initializes a new instance of the NotAuthenticatedException class with its message - string set to . - - A description of the error. The content of message is intended - to be understood by humans. - - - - Initializes a new instance of the NotAuthenticatedException class with its message - string set to and a reference to the inner exception that - is the cause of this exception. - - A description of the error. The content of message is intended - to be understood by humans. - The exception that is the cause of the current exception. - - - - Initializes a new instance of the NotAuthenticatedException class with the specified - serialization and context information. - - An object that holds the serialized object data about the exception - being thrown. - An object that contains contextual information about the source - or destination. - - - - Provides access to status information such as the total number of messages and quota - information for a mailbox. - - - The terms "mailbox" and "folder" can be used interchangeably and refer to the IMAP concept of - multiple server-side directories into which messages can be stored (such as "Inbox", - "Sent Items", "Trash", etc.). - - - - - Initializes a new instance of the MailboxInfo class with the specified values. - - The IMAP name of the mailbox. - The IMAP flags set on this mailbox. - The number of messages in the mailbox. - The number of unread messages in the mailbox. - The next unique identifier (UID) of the mailbox. - The amount of used storage of the mailbox, in bytes. - The amount of free storage of the mailbox, in bytes. - - - - Returns the name of the mailbox. - - The name of the mailbox - - - - The name of the mailbox. - - - - - An enumerable collection of flags set on the mailbox. - - - - - The total number of messages in the mailbox. - - - - - The number of unread (unseen) messages in the mailbox. - - - - - The next unique identifier value of the mailbox. - - - - - The amount of used storage in the mailbox, measured in bytes. - - Not all IMAP servers support the retrieval of quota information. If it is not - possible to retrieve the amount of used storage, this property will be 0. - - - - - The amount of free storage in the mailbox, measured in bytes. - - Not all IMAP servers support the retrieval of quota information. If it is not - possible to retrieve the amount of free storage, this property will be 0. - - - - - Defines possible attributes for mailboxes. - - - - An IMAP mailbox can have a number of flags (read: attributes) set on it, indicating its - designated purpose (such as "Spam" or "Drafts"). - - - This is especially convenient when dealing with international mailbox names, because, by - examining the associated flags, the mailbox purpose can be determined, even if the mailbox - name provides no useful indication. - - - Unfortunately, as with many things IMAP, reporting the flags described here is an optional - extension (XLIST) to the IMAP protocol and as such may or may not be supported by an IMAP - server. - - - - - - The mailbox presents a view on all messages in the user's message store. - - - - - The mailbox is used to archive messages. The meaning of an "archival" mailbox is server - dependent. - - - - - The mailbox is used to hold draft messages, typically these are messages that are being - composed but have not yet been sent. - - - - - The mailbox is used to hold copies of messages that have been sent. - - - - - The mailbox is where messages deemed to be junk mail (spam) are held. - - - - - The mailbox is used to hold messages that have been deleted or marked for deletion. - - - - - Represents an IMAP QUOTA entry for a resource which typically consists of a resource name, - the current usage of the resource, and the resource limit. - - - - - Initializes a new instance of the MailboxQuota class with the specified values. - - The name of the resource this MailboxQuota instance describes. - The current usage of the resource in units of 1024 bytes. - The limit of the resource in units of 1024 bytes. - - - - The name of the resource this MailboxQuota instance describes. - - - - - The current usage of the resource this MailboxQuota instance describes, in bytes. - - - - - The limit of the resource this MailboxQuota instance describes, in bytes. - - - - - Represents the status information of a mailbox which can be constructed from the server - response to a STATUS command. - - - - - Initializes a new MailboxStatus instance with the specified number of total and unread - messages. - - The total number of messages in the mailbox. - The number of unread (unseen) messages in the mailbox. - The next unique identifier value of the mailbox - - - - The next unique identifier value of the mailbox. - - - - - The total number of messages in the mailbox. - - - - - The number of unread (unseen) messages in the mailbox. - - - - - Adds extension methods to the MailMessage class of the .NET Framework. - - - Most of the methods are only used internally and are not visible outside of the - S22.Imap assembly. - - - - - Returns the date and time the mail message was composed. - - The MailMessage instance to return the date and time for. - The date and time the mail message was composed, or null if the mail message - does not contain any date information. - - - - Constructs a textual representation of a mail message from the specified MailMessage - instance compliant with the RFC822 and MIME standards. - - The MailMessage instance to construct the textual representation - from. - An RFC822/MIME-compliant string representing the specified mail message. - The From property is null or has not been - properly initialized. - - - - Builds a RFC822/MIME-compliant mail header from the specified MailMessage instance and - returns it as a NameValueCollection. - - The MailMessage instance to build the header from. - A NameValueCollection representing the RFC822/MIME mail header fields. - - - - A map for mapping the values of the MailPriority enumeration to their corresponding MIME - priority values as defined in RFC2156. - - - - - A map for mapping the values of the MailPriority enumeration to their corresponding MIME - importance values as defined in RFC2156. - - - - - Takes a unicode string and encodes it using Q-encoding. - - The string to encode. - The input string encoded as Q-encoded string containing only ASCII - characters. - - - - Takes a unicode string and encodes it using Base64-encoding. - - The string to encode. - The input string encoded as Base64-encoded string containing only ASCII - characters. - - - - Creates an address string from the specified MailAddress instance in compliance with the - address specification as outlined in RFC2822 under section 3.4 - - The MailAddress instance to create the address string from. - An address string as is used in RFC822 mail headers. - - - - Generates a unique sequence of characters for indicating a boundary between parts in a - multipart message. - - A unique content boundary string. - - - - Builds an RFC822/MIME-compliant mail body from the specified MailMessage instance and - returns it as a formatted string. - - The MailMessage instance to build the mail body from. - The RFC822/MIME mail header to use for constructing the mail - body. - An RFC822/MIME-compliant mail body as a string. - According to RFC2822 each line of a mail message should at max be 78 characters in - length excluding carriage return and newline characters. This method accounts for that and - ensures line breaks are inserted to meet this requirement. - - - - Adds a body part to the specified Stringbuilder object composed from the Body and - BodyEncoding properties of the MailMessage class. - - The Stringbuilder to append the body part to. - The MailMessage instance to build the body part from. - The RFC822/MIME mail header to use for constructing the mail body. - Set to true to append body headers before adding the actual body - part content. - - - - Creates a MIME body part from an entry of the AlternateView or Attachments collection of a - MailMessage instance and appends it to the specified Stringbuilder instance. - - The Stringbuilder instance to append the body part to. - An entry from either the AlternateView or the Attachments collection of - a MailMessage instance. - - - - Creates a nested multipart/alternative part which contains all entries from the - AlternateViews collection of the specified MailMessage instance as well as the body part - for the Body and BodyEncoding properties of the specified MailMessage instance. - - The StringBuilder instance to append to. - The MailMessage instance whose AlternateView collection will be added to the - nested multipart/alternative part. - The RFC822/MIME mail header to use for constructing the mail body. - This is used if the MailMessage instance contains both alternative views and - attachments. In this case the created RFC822/MIME mail message will contain nested body - parts. - - - - Creates a nested multipart/mixed part which contains all entries from the Attachments - collection of the specified MailMessage instance. - - The StringBuilder instance to append to. - The MailMessage instance whose Attachments collection will be added to the - nested multipart/mixed part. - This is used if the MailMessage instance contains both alternative views and - attachments. In this case the created RFC822/MIME mail message will contain nested body - parts. - - - - A helper class for reading mail message data and building a MailMessage instance out of it. - - - - - Creates a new empty instance of the MailMessage class from a string containing a raw mail - message header. - - The mail header to create the MailMessage instance from. - A MailMessage instance with initialized Header fields but without any - content. - - - - Creates a new instance of the MailMessage class from a string containing raw RFC822/MIME - mail message data. - - The mail message data to create the MailMessage instance from. - An initialized instance of the MailMessage class. - This is used when fetching entire messages instead of the partial-fetch mechanism - because it saves redundant round-trips to the server. - - - - Parses the mail header of a mail message and returns it as a NameValueCollection. - - The mail header to parse. - A NameValueCollection containing the header fields as keys with their respective - values as values. - - - - Strips RFC822/MIME comments from the specified string. - - The string to strip comments from. - A new string stripped of any comments. - - - - Parses a MIME header field which can contain multiple 'parameter = value' - pairs (such as Content-Type: text/html; charset=iso-8859-1). - - The header field to parse. - A NameValueCollection containing the parameter names as keys with the respective - parameter values as values. - The value of the actual field disregarding the 'parameter = value' pairs is stored - in the collection under the key "value" (in the above example of Content-Type, this would - be "text/html"). - - - - Parses a mail header address-list field such as To, Cc and Bcc which can contain multiple - email addresses. - - The address-list field to parse - An array of MailAddress objects representing the parsed mail addresses. - - - - Splits the specified address-list into individual parts consisting of a mail address and - optionally a display-name. - - The address-list to split into parts. - An enumerable collection of parts. - - - - Parses a mail message identifier from a string. - - The field to parse the message id from - The field argument does not contain a valid message - identifier. - The parsed message id. - A message identifier (msg-id) is a globally unique identifier for a - message. - - - - Parses the priority of a mail message which can be specified as part of the header - information. - - The mail header priority value. The value can be null in which case - a "normal priority" is returned. - A value from the MailPriority enumeration corresponding to the specified mail - priority. If the passed priority value is null or invalid, a normal priority is assumed and - MailPriority.Normal is returned. - - - - Sets the address fields (From, To, CC, etc.) of a MailMessage object using the specified - mail message header information. - - The MailMessage instance to operate on. - A collection of mail and MIME headers. - - - - Adds a body part to an existing MailMessage instance. - - Extension method for the MailMessage class. - The body part to add to the MailMessage instance. - The content of the body part. - - - - Creates an instance of the Attachment class used by the MailMessage class to store mail - message attachments. - - The MIME body part to create the attachment from. - An array of bytes composing the content of the attachment. - An initialized instance of the Attachment class. - - - - Creates an instance of the AlternateView class used by the MailMessage class to store - alternate views of the mail message's content. - - The MIME body part to create the alternate view from. - An array of bytes composing the content of the alternate view. - An initialized instance of the AlternateView class. - - - - Parses the body part of a MIME/RFC822 mail message. - - The body of the mail message. - The header of the mail message whose body will be parsed. - An array of initialized MIMEPart instances representing the body parts of the mail - message. - - - - Parses the body of a multipart MIME mail message. - - An instance of the StringReader class initialized with a string - containing the body of the mail message. - The boundary value as is present as part of the Content-Type header - field in multipart mail messages. - An array of initialized MIMEPart instances representing the various parts of the - MIME mail message. - - - - Glue method to create a bodypart from a MIMEPart instance. - - The MIMEPart instance to create the bodypart instance from. - An initialized instance of the Bodypart class. - - - - Defines possible attributes for mail messages on an IMAP server. - - - - - Indicates that the message has been read. - - - - - Indicates that the message has been answered. - - - - - Indicates that the message is "flagged" for urgent/special attention. - - - - - Indicates that the message has been marked as "deleted" and will be removed upon the next - call to the Expunge method. - - - - - Indicates that the message has not completed composition and is marked as a draft. - - - - - Indicates that the message has recently arrived in the mailbox. - - - - - Represents a part of a MIME multi-part message. Each part consists of its own content header - and a content body. - - - - - A collection containing the content header information as key-value pairs. - - - - - A string containing the content body of the part. - - - - - A thread-safe Queue. - - - - - Adds an object to the end of the queue. - - The object to add to the queue. - - - - Removes and returns the object at the beginning of the queue. If the queue is empty, the - method blocks the calling thread until an object is put into the queue by another thread. - - The object that was removed from the beginning of the queue. - - - - Adds extension methods to the BinaryReader class to simplify the - deserialization of NTLM messages. - - - - - Reads an ASCII-string of the specified length from this instance. - - Extension method for the BinaryReader class. - The number of bytes to read from the underlying - stream. - A string decoded from the bytes read from the underlying - stream using the ASCII character set. - - - - The NTLM flags which are contained in a bitfield within the header of - an NTLM message. - - - - - 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. - - - - - 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's usage has not been identified. - - - - - Indicates that NTLM authentication is being used. - - - - - 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. - - - - - Indicates that the NTLM2 signing and sealing scheme should be used for - protecting authenticated communications. Note that this refers to a - particular session security scheme, and is not related to the use of - NTLMv2 authentication. This flag can, however, have an effect on the - response calculations. - - - - - This flag's usage has not been identified. - - - - - This flag's usage has not been identified. - - - - - This flag's usage has not been identified. - - - - - 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. - - - - - 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. - - - - - Represents the data contained in the target information block of an - NTLM type 2 message. - - - - - The server name. - - - - - The domain name. - - - - - The fully-qualified DNS host name. - - - - - The fully-qualified DNS domain name. - - - - - Describes the different versions of the Type 2 message that have - been observed. - - - - - The version is unknown. - - - - - This form is seen in older Win9x-based systems. - - - - - This form is seen in most out-of-box shipping versions of Windows. - - - - - This form was introduced in a relatively recent Service Pack, and - is seen on currently-patched versions of Windows 2000, Windows XP, - and Windows 2003. - - - - - Indicates the type of data in Type 2 target information blocks. - - - - - Signals the end of the target information block. - - - - - The data in the information block contains the server name. - - - - - The data in the information block contains the domain name. - - - - - The data in the information block contains the DNS hostname. - - - - - The data in the information block contans the DNS domain name. - - - - - Computes the MD4 hash value for the input data. - Courtesy of Keith Wood. - - - - - Describes the different types of NTLM messages. - - - - - An NTLM type 1 message is the initial client response to the - server. - - - - - An NTLM type 2 message is the challenge sent by the server in - response to an NTLM type 1 message. - - - - - An NTLM type 3 message is the challenge response sent by the client - in response to an NTLM type 2 message. - - - - - Indicates the version and build number of the operating system. - - - - - Default constructor. - - - - - Creates a new instance of the OSVersion class using the specified - values. - - The major version of the operating - system. - The minor version of the operating - system. - The build number of the operating systen. - - - - Serializes this instance of the OSVersion class to an array of - bytes. - - An array of bytes representing this instance of the OSVersion - class. - - - - The major version number of the operating system. - - - - - The minor version number of the operating system. - - - - - The build number of the operating system. - - - - - Contains methods for calculating the various Type 3 challenge - responses. - - - - - Computes the LM-response to the challenge sent as part of an - NTLM type 2 message. - - The challenge sent by the server. - The user account password. - An array of bytes representing the response to the - specified challenge. - - - - Computes the NTLM-response to the challenge sent as part of an - NTLM type 2 message. - - The challenge sent by the server. - The user account password. - An array of bytes representing the response to the - specified challenge. - - - - Computes the NTLMv2-response to the challenge sent as part of an - NTLM type 2 message. - - The name of the authentication target. - The user account name to authenticate with. - The user account password. - The target information block from - the NTLM type 2 message. - The challenge sent by the server. - A random 8-byte client nonce. - An array of bytes representing the response to the - specified challenge. - - - - Computes the LMv2-response to the challenge sent as part of an - NTLM type 2 message. - - The name of the authentication target. - The user account to authenticate with. - The user account password. - The challenge sent by the server. - A random 8-byte client nonce. - An array of bytes representing the response to the - specified challenge. - - - - Creates the LM Hash of the specified password. - - The password to create the LM Hash of. - The LM Hash of the given password, used in the calculation - of the LM Response. - Thrown if the password argument - is null. - - - - Creates a DES encryption key from the specified key material. - - The key material to create the DES encryption - key from. - An offset into the byte array at which to - extract the key material from. - A 56-bit DES encryption key as an array of bytes. - - - - Applies odd parity to the specified byte array. - - The byte array to apply odd parity to. - A reference to the byte array. - - - - Creates the LM Response from the specified hash and Type 2 challenge. - - An LM or NTLM hash. - The server challenge from the Type 2 - message. - The challenge response as an array of bytes. - Thrown if the hash or the - challenge parameter is null. - - - - Creates the NTLM Hash of the specified password. - - The password to create the NTLM hash of. - The NTLM hash for the specified password. - Thrown if the password - parameter is null. - - - - Creates the NTLMv2 Hash of the specified target, username - and password values. - - The name of the authentication target as is - specified in the target name field of the NTLM type 3 message. - The user account name. - The password for the user account. - The NTLMv2 hash for the specified input values. - Thrown if the username or - the password parameter is null. - - - - Returns the current time as the number of tenths of a microsecond - since January 1, 1601. - - The current time as the number of tenths of a microsecond - since January 1, 1601. - - - - Creates the "blob" data block which is part of the NTLMv2 challenge - response. - - The target information block from - the NTLM type 2 message. - A random 8-byte client nonce. - The blob, used in the calculation of the NTLMv2 Response. - - - - Creates the LMv2 Response from the given NTLMv2 hash, client data, and - Type 2 challenge. - - The NTLMv2 Hash. - The client data (blob or client nonce). - The server challenge from the Type 2 message. - The response which is either for NTLMv2 or LMv2, depending - on the client data. - - - - Represents an NTLM security buffer, which is a structure used to point - to a buffer of binary data within an NTLM message. - - - - - Creates a new instance of the SecurityBuffer class using the specified - values. - - The length of the buffer described by this instance - of the SecurityBuffer class. - The offset at which the buffer starts, in bytes. - Thrown if the length value exceeds - the maximum value allowed. The security buffer structure stores the - length value as a 2-byte short value. - - - - Creates a new instance of the SecurityBuffer class using the specified - values. - - The data of the buffer described by this instance - of the SecurityBuffer class. - The offset at which the buffer starts, in bytes. - Thrown if the length of the data - buffer exceeds the maximum value allowed. The security buffer structure - stores the buffer length value as a 2-byte short value. - - - - Serializes this instance of the SecurityBuffer into an array of bytes. - - A byte array representing this instance of the SecurityBuffer - class. - - - - The length of the buffer content in bytes (may be zero). - - - - - The allocated space for the buffer in bytes (typically the same as - the length). - - - - - The offset from the beginning of the NTLM message to the start of - the buffer, in bytes. - - - - - Represents an NTLM Type 1 Message. - - - - - The NTLM message signature which is always "NTLMSSP". - - - - - The NTML message type which is always 1 for an NTLM Type 1 message. - - - - - Creates a new instance of the Type1Message class using the specified - domain and workstation names. - - The domain in which the client's workstation has - membership. - The client's workstation name. - Thrown if the domain or the - workstation parameter is null. - Thrown if the domain - or the workstation name exceeds the maximum allowed string - length. - The domain as well as the workstation name is restricted - to ASCII characters and must not be longer than 65536 characters. - - - - - Serializes this instance of the Type1 class to an array of bytes. - - An array of bytes representing this instance of the Type1 - class. - - - - The NTLM flags set on this instance. - - - - - The supplied domain name as an array of bytes in the ASCII - range. - - - - - The offset within the message where the domain name data starts. - - - - - The supplied workstation name as an array of bytes in the - ASCII range. - - - - - The offset within the message where the workstation name data starts. - - - - - The length of the supplied workstation name as a 16-bit short value. - - - - - Contains information about the client's OS version. - - - - - Represents an NTLM Type 2 Message. - - - - - The NTLM message signature which is always "NTLMSSP". - - - - - The NTML message type which is always 2 for an NTLM Type 2 message. - - - - - Private constructor. - - - - - Deserializes a Type 2 message instance from the specified buffer - of bytes. - - The buffer containing a sequence of bytes - representing an NTLM Type 2 message. - An initialized instance of the Type2 class. - Thrown if an error occurs - during deserialization of the Type 2 message. - - - - Determines the version of an NTLM type 2 message. - - The target offset field of the NTLM - type 2 message. - A value from the Type2Version enumeration. - - - - Reads the OS information data present in version 3 of an NTLM - type 2 message from the specified BinaryReader. - - The BinaryReader instance to read from. - An initialized instance of the OSVersion class. - - - - Reads the target information data present in version 2 and 3 of - an NTLM type 2 message from the specified BinaryReader. - - The BinaryReader instance to read from. - An initialized instance of the Type2TargetInformation - class. - - - - Retrieves the target name from the specified byte array. - - A byte array containing the target name. - If true the target name will be decoded - using UTF-16 unicode encoding. - - - - - The challenge is an 8-byte block of random data. - - - - - The target name of the authentication target. - - - - - The NTLM flags set on this message. - - - - - The SSPI context handle when a local call is being made, - otherwise null. - - - - - Contains the data present in the OS version structure. - - - - - The version of this Type 2 message instance. - - - - - Contains the data present in the target information block. - - - - - Contains the raw data present in the target information block. - - - - - Represents an NTLM Type 3 Message. - - - - - The NTLM message signature which is always "NTLMSSP". - - - - - The NTML message type which is always 3 for an NTLM Type 3 message. - - - - - Creates a new instance of an NTLM type 3 message using the specified - values. - - The Windows account name to use for - authentication. - The Windows account password to use for - authentication. - The challenge received from the server as part - of the NTLM type 2 message. - The client's workstation name. - Set to true to send an NTLMv2 challenge - response. - The authentication realm in which the - authenticating account has membership. - The target information block from - the NTLM type 2 message. - The target name is a domain name for domain accounts, or - a server name for local machine accounts. All security buffers will - be encoded as Unicode. - - - - Creates a new instance of an NTLM type 3 message using the specified - values. - - The Windows account name to use for - authentication. - The Windows account password to use for - authentication. - The challenge received from the server as part - of the NTLM type 2 message. - Set this to true, if Unicode encoding has been - negotiated between client and server. - The client's workstation name. - Set to true to send an NTLMv2 challenge - response. - The authentication realm in which the - authenticating account has membership. - The target information block from - the NTLM type 2 message. - The target name is a domain name for domain accounts, or - a server name for local machine accounts. - Thrown if the username, password - or challenge parameters are null. - - - - Serializes this instance of the Type3 class to an array of bytes. - - An array of bytes representing this instance of the Type3 - class. - - - - Returns a random 8-byte cnonce value. - - A random 8-byte cnonce value. - - - - The NTLM flags set on this instance. - - - - - The "Lan Manager" challenge response. - - - - - The offset at which the LM challenge response data starts. - - - - - The NTLM challenge response. - - - - - The offset at which the NTLM challenge response data starts. - - - - - The authentication realm in which the authenticating account - has membership. - - - - - The offset at which the target name data starts. - - - - - The authenticating account name. - - - - - The offset at which the username data starts. - - - - - The client workstation's name. - - - - - The offset at which the client workstation's name data starts. - - - - - The session key value which is used by the session security mechanism - during key exchange. - - - - - The offset at which the session key data starts. - - - - - Contains the data present in the OS version structure. - - - - - The encoding used for transmitting the contents of the various - security buffers. - - - - - Implements the Sasl Cram-Md5 authentication method as described in - RFC 2195. - - - - - Private constructor for use with Sasl.SaslFactory. - - - - - Creates and initializes a new instance of the SaslCramMd5 class - using the specified username and password. - - The username to authenticate with. - The plaintext password to authenticate - with. - Thrown if the username - or the password parameter is null. - Thrown if the username - parameter is empty. - - - - Computes the client response to the specified Cram-Md5 challenge. - - The challenge sent by the server - The response to the Cram-Md5 challenge. - Thrown if the response could not - be computed. - - - - True if the authentication exchange between client and server - has been completed. - - - - - The IANA name for the Cram-Md5 authentication mechanism as described - in RFC 2195. - - - - - The username to authenticate with. - - - - - The password to authenticate with. - - - - - Implements the Sasl Cram-Md5 authentication method as described in - RFC 2831. - - - - - The client nonce value used during authentication. - - - - - Cram-Md5 involves several steps. - - - - - Private constructor for use with Sasl.SaslFactory. - - - - - Internal constructor used for unit testing. - - The username to authenticate with. - The plaintext password to authenticate - with. - The client nonce value to use. - Thrown if the username - or the password parameter is null. - Thrown if the username - parameter is empty. - - - - Creates and initializes a new instance of the SaslDigestMd5 class - using the specified username and password. - - The username to authenticate with. - The plaintext password to authenticate - with. - Thrown if the username - or the password parameter is null. - Thrown if the username - parameter is empty. - - - - Computes the client response to the specified Digest-Md5 challenge. - - The challenge sent by the server - The response to the Digest-Md5 challenge. - Thrown if the response could not - be computed. - - - - Parses the challenge string sent by the server in response to a Digest-Md5 - authentication request. - - The challenge sent by the server as part of - "Step One" of the Digest-Md5 authentication mechanism. - An initialized NameValueCollection instance made up of the - attribute/value pairs contained in the challenge. - Thrown if the challenge parameter - is null. - Refer to RFC 2831 section 2.1.1 for a detailed description of the - format of the challenge sent by the server. - - - - Computes the "response-value" hex-string which is part of the - Digest-MD5 challenge-response. - - A collection containing the attributes - and values of the challenge sent by the server. - The cnonce value to use for computing - the response-value. - The "digest-uri" string to use for - computing the response-value. - The username to use for computing the - response-value. - The password to use for computing the - response-value. - A string containing a hash-value which is part of the - response sent by the client. - Refer to RFC 2831, section 2.1.2.1 for a detailed - description of the computation of the response-value. - - - - Calculates the MD5 hash value for the specified string. - - The string to calculate the MD5 hash value for. - The encoding to employ for encoding the - characters in the specified string into a sequence of bytes for - which the MD5 hash will be calculated. - An MD5 hash as a 32-character hex-string. - Thrown if the input string - is null. - - - - Encloses the specified string in double-quotes. - - The string to enclose in double-quote characters. - The enclosed string. - - - - Generates a random cnonce-value which is a "client-specified data string - which must be different each time a digest-response is sent". - - A random "cnonce-value" string. - - - - True if the authentication exchange between client and server - has been completed. - - - - - The IANA name for the Digest-Md5 authentication mechanism as described - in RFC 2195. - - - - - The username to authenticate with. - - - - - The password to authenticate with. - - - - - Implements the Sasl NTLM authentication method which is used in various - Microsoft network protocol implementations. - - Implemented with the help of the excellent documentation on - NTLM composed by Eric Glass. - - - - NTLM involves several steps. - - - - - Private constructor for use with Sasl.SaslFactory. - - - - - Creates and initializes a new instance of the SaslNtlm class - using the specified username and password. - - The username to authenticate with. - The plaintext password to authenticate - with. - Thrown if the username - or the password parameter is null. - Thrown if the username - parameter is empty. - - - - Computes the client response to the specified NTLM challenge. - - The challenge sent by the server - The response to the NTLM challenge. - Thrown if the response could not - be computed. - - - - Computes the initial client response to an NTLM challenge. - - The challenge sent by the server. Since - NTLM expects an initial client response, this will usually be - empty. - The initial response to the NTLM challenge. - Thrown if the response could not - be computed. - - - - Computes the actual challenge response to an NTLM challenge - which is sent as part of an NTLM type 2 message. - - The challenge sent by the server. - The response to the NTLM challenge. - Thrown if the challenge - response could not be computed. - - - - True if the authentication exchange between client and server - has been completed. - - - - - The IANA name for the NTLM authentication mechanism. - - - - - The username to authenticate with. - - - - - The password to authenticate with. - - - - - Implements the Sasl NTLMv2 authentication method which addresses - some of the security issues present in NTLM version 1. - - - - - Private constructor for use with Sasl.SaslFactory. - - - - - Creates and initializes a new instance of the SaslNtlmv2 class - using the specified username and password. - - The username to authenticate with. - The plaintext password to authenticate - with. - Thrown if the username - or the password parameter is null. - Thrown if the username - parameter is empty. - - - - Computes the client response to the specified NTLM challenge. - - The challenge sent by the server - The response to the NTLM challenge. - Thrown if the response could not - be computed. - - - - Computes the actual challenge response to an NTLM challenge - which is sent as part of an NTLM type 2 message. - - The challenge sent by the server. - The response to the NTLM challenge. - Thrown if the challenge - response could not be computed. - - - - Implements the Sasl OAuth authentication method. - - - - - Private constructor for use with Sasl.SaslFactory. - - - - - Creates and initializes a new instance of the SaslOAuth class - using the specified username and password. - - The username to authenticate with. - Thrown if the accessToken - parameter is null. - Thrown if the accessToken - parameter is empty. - - - - Computes the client response for a OAuth challenge. - - The challenge sent by the server. - The response to the OAuth challenge. - Thrown if the response could not - be computed. - - - - True if the authentication exchange between client and server - has been completed. - - - - - The IANA name for the OAuth authentication mechanism. - - - - - The access token to authenticate with. - - - - - Implements the Sasl OAuth 2.0 authentication method. - - - - - The server sends an error response in case authentication fails - which must be acknowledged. - - - - - Private constructor for use with Sasl.SaslFactory. - - - - - Creates and initializes a new instance of the SaslOAuth class - using the specified username and password. - - The username to authenticate with. - The username to authenticate with. - Thrown if the username - or the accessToken parameter is null. - Thrown if the username or - the accessToken parameter is empty. - - - - Computes the client response to an XOAUTH2 challenge. - - The challenge sent by the server. - The response to the OAuth2 challenge. - Thrown if the response could not - be computed. - - - - Computes the initial client response to an XOAUTH2 challenge. - - The challenge sent by the server. - The response to the OAuth2 challenge. - Thrown if the response could not - be computed. - - - - True if the authentication exchange between client and server - has been completed. - - - - - The IANA name for the OAuth 2.0 authentication mechanism. - - - - - The username to authenticate with. - - - - - The access token to authenticate with. - - - - - Implements the Sasl Plain authentication method as described in - RFC 4616. - - - - - Private constructor for use with Sasl.SaslFactory. - - - - - Creates and initializes a new instance of the SaslPlain class - using the specified username and password. - - The username to authenticate with. - The plaintext password to authenticate - with. - Thrown if the username - or the password parameter is null. - Thrown if the username - parameter is empty. - - - - Computes the client response for a plain-challenge. - - The challenge sent by the server. For the - "plain" mechanism this will usually be empty. - The response for the "plain"-challenge. - Thrown if the response could not - be computed. - - - - True if the authentication exchange between client and server - has been completed. - - - - - The IANA name for the Plain authentication mechanism as described - in RFC 4616. - - - - - The username to authenticate with. - - - - - The plain-text password to authenticate with. - - - - - The exception is thrown when a Sasl-related error or unexpected condition occurs. - - - - - Initializes a new instance of the SaslException class - - - - - Initializes a new instance of the SaslException class with its message - string set to . - - A description of the error. The content of message is intended - to be understood by humans. - - - - Initializes a new instance of the SaslException class with its message - string set to and a reference to the inner exception that - is the cause of this exception. - - A description of the error. The content of message is intended - to be understood by humans. - The exception that is the cause of the current exception. - - - - Initializes a new instance of the SaslException class with the specified - serialization and context information. - - An object that holds the serialized object data about the exception - being thrown. - An object that contains contextual information about the source - or destination. - - - - A factory class for producing instances of Sasl mechanisms. - - - - - Creates an instance of the Sasl mechanism with the specified - name. - - The name of the Sasl mechanism of which an - instance will be created. - An instance of the Sasl mechanism with the specified name. - Thrown if the name parameter - is null. - Thrown if the Sasl mechanism with the - specified name is not registered with Sasl.SaslFactory. - - - - Registers a Sasl mechanism with the factory using the specified name. - - The name with which to register the Sasl mechanism - with the factory class. - The type of the class implementing the Sasl mechanism. - The implementing class must be a subclass of Sasl.SaslMechanism. - Thrown if the name or the t - parameter is null. - Thrown if the class represented - by the specified type does not derive from Sasl.SaslMechanism. - Thrown if the Sasl mechanism could not - be registered with the factory. Refer to the inner exception for error - details. - - - - Static class constructor. Initializes static properties. - - - - - A dictionary of Sasl mechanisms registered with the factory class. - - - - - Represents chainable search conditions that can be used with the Search method. - - - - - Finds all messages in the mailbox. - - A SearchCondition object representing the "all" search criterion. - - - - Finds messages that contain the specified string in the header or body of the message. - - String to search messages for. - A SearchCondition object representing the "text" search criterion. - The text parameter is null. - - - - Finds messages that contain the specified string in the envelope structure's BCC field. - - String to search the envelope structure's BCC field for. - A SearchCondition object representing the "BCC" search criterion. - The text parameter is null. - - - - Finds messages whose internal date (disregarding time and timezone) is earlier than the - specified date. - - The date to compare the message's internal date with. - A SearchCondition object representing the "Before" search criterion. - - - - Finds messages that contain the specified string in the body of the message. - - String to search the message body for. - A SearchCondition object representing the "Body" search criterion. - The text parameter is null. - - - - Finds messages that contain the specified string in the envelope structure's CC field. - - String to search the envelope structure's CC field for. - A SearchCondition object representing the "CC" search criterion. - The text parameter is null. - - - - Finds messages that contain the specified string in the envelope structure's FROM field. - - String to search the envelope structure's FROM field for. - A SearchCondition object representing the "FROM" search criterion. - The text parameter is null. - - - - Finds messages that have a header with the specified field-name and that contains the - specified string in the text of the header. - - field-name of the header to search for. - String to search for in the text of the header. - A SearchCondition object representing the "HEADER" search criterion. - - If the string to search is zero-length, this matches all messages that have a header line - with the specified field-name regardless of the contents. - - The name parameter or the text parameter is - null. - - - - Finds messages with the specified keyword flag set. - - The keyword flag to search for. - A SearchCondition object representing the "KEYWORD" search criterion. - The text parameter is null. - - - - Finds messages with a size larger than the specified number of bytes. - - Minimum size, in bytes a message must have to be included in the search - result. - A SearchCondition object representing the "LARGER" search criterion. - - - - Finds messages with a size smaller than the specified number of bytes. - - Maximum size, in bytes a message must have to be included in the search - result. - A SearchCondition object representing the "SMALLER" search criterion. - - - - Finds messages whose Date: header (disregarding time and timezone) is earlier than the - specified date. - - The date to compare the Date: header field with. - A SearchCondition object representing the "SENTBEFORE" search criterion. - - - - Finds messages whose Date: header (disregarding time and timezone) is within the specified - date. - - The date to compare the Date: header field with. - A SearchCondition object representing the "SENTON" search criterion. - - - - Finds messages whose Date: header (disregarding time and timezone) is within or later than - the specified date. - - The date to compare the Date: header field with. - A SearchCondition object representing the "SENTSINCE" search criterion. - - - - Finds messages that contain the specified string in the envelope structure's SUBJECT field. - - String to search the envelope structure's SUBJECT field for. - A SearchCondition object representing the "SUBJECT" search criterion. - The text parameter is null. - - - - Finds messages that contain the specified string in the envelope structure's TO field. - - String to search the envelope structure's TO field for. - A SearchCondition object representing the "TO" search criterion. - The text parameter is null. - - - - Finds messages with unique identifiers corresponding to the specified unique identifier set. - - One or several unique identifiers (UID). - A SearchCondition object representing the "UID" search criterion. - - - - Finds messages with a unique identifier greater than the specified unique identifier. - - A unique identifier (UID). - A SearchCondition object representing the "UID" search criterion. - - Because of the nature of the IMAP search mechanism, the result set will always contain the - UID of the last message in the mailbox, even if said UID is smaller than the UID specified. - - - - - Finds messages with a unique identifier less than the specified unique identifier. - - A unique identifier (UID). - A SearchCondition object representing the "UID" search criterion. - - - - Finds messages that do not have the specified keyword flag set. - - The IMAP keyword flag to search for. - A SearchCondition object representing the "UNKEYWORD" search criterion. - The text parameter is null. - - - - Finds messages that have the \Answered flag set. - - A SearchCondition object representing the "ANSWERED" search criterion. - - - - Finds messages that have the \Deleted flag set. - - A SearchCondition object representing the "DELETED" search criterion. - - - - Finds messages that have the \Draft flag set. - - A SearchCondition object representing the "DRAFT" search criterion. - - - - Finds messages that have the \Flagged flag set. - - A SearchCondition object representing the "FLAGGED" search criterion. - - - - Finds messages that have the \Recent flag set but not the \Seen flag. - - A SearchCondition object representing the "NEW" search criterion. - - - - Finds messages that do not have the \Recent flag set. - - A SearchCondition object representing the "OLD" search criterion. - - - - Finds messages that have the \Recent flag set. - - A SearchCondition object representing the "RECENT" search criterion. - - - - Finds messages that have the \Seen flag set. - - A SearchCondition object representing the "SEEN" search criterion. - - - - Finds messages that do not have the \Answered flag set. - - A SearchCondition object representing the "UNANSWERED" search criterion. - - - - Finds messages that do not have the \Deleted flag set. - - A SearchCondition object representing the "UNDELETED" search criterion. - - - - Finds messages that do not have the \Draft flag set. - - A SearchCondition object representing the "UNDRAFT" search criterion. - - - - Finds messages that do not have the \Flagged flag set. - - A SearchCondition object representing the "UNFLAGGED" search criterion. - - - - Finds messages that do not have the \Seen flag set. - - A SearchCondition object representing the "UNSEEN" search criterion. - - - - Logically ANDs multiple search conditions, meaning a message will only be included in the - search result if both of the ANDed conditions are met. - - A search condition to logically AND this SearchCondition instance - with. - A new SearchCondition instance which can be further chained with other search - conditions. - The other parameter is null. - - - - Logically negates search conditions, meaning a message will only be included in the search - result if the specified conditions are not met. - - A search condition that must not be met by a message for it to be - included in the search result set. - A new SearchCondition instance which can be further chained with other search - conditions. - The other parameter is null. - - - - Logically ORs multiple search conditions, meaning a message will be included in the search - result if it meets at least either of the conditions. - - A search condition to logically OR this SearchCondition instance - with. - A new SearchCondition instance which can be further chained with other search - conditions. - The other parameter is null. - - - - Joins two SearchCondition objects into a new one using the specified logical operator. - - The logical operator to use for joining the search conditions. - Possible values are "OR", "NOT" and the empty string "" which denotes a logical AND. - The first SearchCondition object - The second SearchCondition object - A new SearchCondition object representing the two search conditions joined by the - specified logical operator. - - - - Concatenates the members of a collection, using the specified separator between each - member. - - The type of the members of values. - The string to use as a separator. - A collection that contains the objects to concatenate. - A string that consists of the members of values delimited by the separator - string. If values has no members, the method returns System.String.Empty. - The values parameter is null. - This is already part of the String class in .NET 4.0 and newer but is needed - for backwards compatibility with .NET 3.5. - - - - Constructs a string from the SearchCondition object using the proper syntax as is required - for the IMAP SEARCH command. - - A string representing this SearchCondition instance that can be used with the IMAP - SEARCH command. - - - - The search keys which can be used with the IMAP SEARCH command, as are defined in section - 6.4.4 of RFC 3501. - - - - - A static utility class containing methods for decoding encoded non-ASCII data as well as - extension methods for some classes of the base class library. - - - - - Returns a copy of the string enclosed in double-quotes and with escaped CRLF, back-slash - and double-quote characters (as is expected by some commands of the IMAP protocol). - - Extends the System.String class - A copy of the string enclosed in double-quotes and properly escaped as is required - by the IMAP protocol. - - - - Returns true if the string contains only ASCII characters. - - Extension method for the String class. - true if the string contains only ASCII characters; Otherwise false. - - - - Splits a string into chunks of the specified number of characters. - - Extension method for the String class. - The length of a chunk, measured in characters. - An array of string chunks. - - - - Determines whether the specified string occurs within this string. - - Extension method for the String class. - The string to seek. - One of the enumeration values that specifies the rules for the - search. - true if the value parameter occurs within this string, or if value is the empty - string (""); otherwise, false. - The value parameter is null. - - - - Raises the event. Ensures the event is only raised, if it is not null. - - Extends System.EventHandler class. - Extends System.EventHandler class. - The sender of the event. - The event arguments associated with this event. - - - - Throws an ArgumentNullException if the given data item is null. - - The item to check for nullity. - The name to use when throwing an exception, if necessary. - Courtesy of Jon Skeet. - - - - Throws an ArgumentNullException if the given data item is null. - - The item to check for nullity. - Courtesy of Jon Skeet. - - - - Throws an ArgumentNullException if the given string is null or throws an ArgumentException - if the given string is empty. - - The string to check for nullity and emptiness. - - - - Throws an ArgumentNullException if the given string is null or throws an ArgumentException - if the given string is empty. - - The string to check for nullity and emptiness. - The name to use when throwing an exception, if necessary. - - - - Reads an unsigned short value from the underlying stream, optionally using big-endian byte - ordering. - - Extension method for BinaryReader. - Set to true to interpret the short value as big endian value. - The 16-byte unsigned short value read from the underlying stream. - - - - Decodes a string composed of one or several MIME 'encoded-words'. - - A string to composed of one or several MIME 'encoded-words'. - An unknown encoding (other than Q-Encoding or Base64) is - encountered. - A concatenation of all enconded-words in the passed string - - - - Internal function reuse to add separation between multiple 'encoded-word's correctly. - - - - - The regular expression for matching encoded-words. This also accounts for the extension for - including language information (as defined in RFC2231). - - - - - Decodes a MIME 'encoded-word' string. - - The encoded word to decode - An unknown encoding (other than Q-Encoding or Base64) is - encountered. - A decoded string - MIME encoded-word syntax is a way to encode strings that contain non-ASCII data. - Commonly used encodings for the encoded-word sytax are Q-Encoding and Base64. For an - in-depth description, refer to RFC 2047. - - - - Takes a Q-encoded string and decodes it using the specified encoding. - - The Q-encoded string to decode. - The encoding to use for encoding the returned string. - The string is not a valid Q-encoded string. - The Q-decoded string. - - - - Takes a quoted-printable encoded string and decodes it using the specified encoding. - - The quoted-printable-encoded string to decode. - The encoding to use for encoding the returned string. - The string is not a valid quoted-printable encoded - string. - A quoted-printable decoded string. - - - - Decodes the specified MIME parameter value. - - The MIME parameter value to decode. - The decoded MIME parameter value. - The specified value is not a valid Rfc2231-encoded - string. - Refer to RFC2231 for the details of the encoding mechanism. - - - - Takes a Base64-encoded string and decodes it. - - The Base64-encoded string to decode. - A byte array containing the Base64-decoded bytes of the input string. - The value parameter is null. - The length of value, ignoring white-space - characters, is not zero or a multiple of 4, or the format of value is invalid, or the value - contains a non-base-64 character, more than two padding characters, or a non-white - space-character among the padding characters. - - - - Takes a UTF-16 encoded string and encodes it as modified UTF-7. - - The string to encode. - A UTF-7 encoded string - IMAP uses a modified version of UTF-7 for encoding international mailbox names. For - details, refer to RFC 3501 section 5.1.3 (Mailbox International Naming Convention). - - - - Takes a modified UTF-7 encoded string and decodes it. - - The UTF-7 encoded string to decode. - A UTF-16 encoded "standard" C# string - The input string is not a properly UTF-7 encoded - string. - IMAP uses a modified version of UTF-7 for encoding international mailbox names. For - details, refer to RFC 3501 section 5.1.3 (Mailbox International Naming Convention). - - - - This just wraps Encoding.GetEncoding in a try-catch block to ensure it never fails. If the - encoding can not be determined ASCII is returned as a default. - - The code page name of the preferred encoding. Any value returned by - System.Text.Encoding.WebName is a valid input. - The System.Text.Encoding associated with the specified code page or Encoding.ASCII - if the specified code page could not be resolved. - - - - Converts the specified enumerable collection of UIDs into an IMAP sequence-set. - - An enumerable collection of UIDs. - An IMAP sequence-set suitable for use with IMAP commands. - The uids parameter is null. - The specified collection of UIDs is empty. - Refer to RFC3501, 9.Formal Syntax "sequence-set" for a description of IMAP - sequence-sets. - - - diff --git a/App/packages/S22.Imap.3.6.0.0/lib/net35/S22.Imap.dll b/App/packages/S22.Imap.3.6.0.0/lib/net35/S22.Imap.dll deleted file mode 100644 index 360f335..0000000 Binary files a/App/packages/S22.Imap.3.6.0.0/lib/net35/S22.Imap.dll and /dev/null differ diff --git a/App/packages/S22.Imap.3.6.0.0/lib/net40/S22.Imap.XML b/App/packages/S22.Imap.3.6.0.0/lib/net40/S22.Imap.XML deleted file mode 100644 index 9995b3c..0000000 --- a/App/packages/S22.Imap.3.6.0.0/lib/net40/S22.Imap.XML +++ /dev/null @@ -1,7178 +0,0 @@ - - - - S22.Imap - - - - - Defines supported means of authenticating with an IMAP server. - - - - - Automatically selects the most-secure authentication mechanism supported by the server. - - - - - Login using plaintext password authentication; This is supported by most servers. - - - - - Login using the SASL PLAIN authentication mechanism. - - - - - Login using the CRAM-MD5 authentication mechanism. - - - - - Login using the DIGEST-MD5 authentication mechanism. - - - - - Login using OAuth via the SASL XOAuth mechanism. - - - - - Login using OAuth 2.0 via the SASL XOAUTH2 mechanism. - - - - - Login using the NTLM authentication mechanism. - - - - - Login using the NTLMv2 authentication mechanism. - - - - - Login using the NTLM/NTLMv2 authentication mechanism via Microsoft's Security Support - Provider Interface (SSPI). - - - - - Login using Kerberos authentication via the SASL GSSAPI mechanism. - - - - - Login using the SCRAM-SHA-1 authentication mechanism. - - - - - Login using the Secure Remote Password (SRP) authentication mechanism. - - The SRP mechanism is only available when targeting .NET 4.0 or newer. - - - - A utility class modeled after the BCL StringBuilder to simplify - building binary-data messages. - - - - - The actual byte buffer. - - - - - The current position in the buffer. - - - - - Resizes the internal byte buffer. - - Amount in bytes by which to increase the - size of the buffer. - - - - Appends one or several byte values to this instance. - - Byte values to append. - A reference to the calling instance. - - - - Appends the specified number of bytes from the specified buffer - starting at the specified offset to this instance. - - The buffer to append bytes from. - The offset into the buffert at which to start - reading bytes from. - The number of bytes to read from the buffer. - A reference to the calling instance. - - - - Appends the specified 32-bit integer value to this instance. - - A 32-bit integer value to append. - Set this to true, to append the value as - big-endian. - A reference to the calling instance. - - - - Appends the specified 16-bit short value to this instance. - - A 16-bit short value to append. - Set this to true, to append the value as - big-endian. - A reference to the calling instance. - - - - Appends the specified 16-bit unsigend short value to this instance. - - A 16-bit unsigend short value to append. - Set this to true, to append the value as - big-endian. - A reference to the calling instance. - - - - Appends the specified 32-bit unsigned integer value to this instance. - - A 32-bit unsigned integer value to append. - Set this to true, to append the value as - big-endian. - A reference to the calling instance. - - - - Appends the specified 64-bit integer value to this instance. - - A 64-bit integer value to append. - Set this to true, to append the value as - big-endian. - A reference to the calling instance. - - - - Appends the specified string using the specified encoding to this - instance. - - The string vale to append. - The encoding to use for decoding the string value - into a sequence of bytes. If this is null, ASCII encoding is used as a - default. - A reference to the calling instance. - - - - Returns the ByteBuilder's content as an array of bytes. - - An array of bytes. - - - - Removes all bytes from the current ByteBuilder instance. - - - - - The length of the underlying data buffer. - - - - - A filter stream sitting between Negotiate- and NetworkStream to - enable managed NTLM/GSSAPI authentication. - - - We use a filter for hooking into the NegotiateStream protocol rather - than p/invoking SSPI directly as that would require unmanaged - code privileges (internally NegotiateStream uses an SSPI wrapper). - - NegotiateStream - FilterStream - NetworkStream. - - - - - A buffer for accumulating handshake data until an entire handshake - has been read. - - - - - A buffer for accumulating the payload data following the handshake - data. - - - - - The latest handshake header sent by the client. - - - - - The buffer from which client reads will be satisfied. - - - - - The number of bytes the client has already consumed/read - from the receivedData buffer. - - - - - The current state of the filter stream. - - - - - Determines whether this instance should close the inner stream - when disposed. - - - - - An error code as specified by the NegotiateStream protocol which is - handed to the NegotiateStream instance in case authentication - unexpectedly fails. - - - - - Gets the stream used by this FilterStream for sending and - receiving data. - - - - - Initializes a new instance of the FilterStream class using the - specified Stream. - - A Stream object used by the FilterStream for sending - and receiving data. - Set to true to indicate that closing this - FilterStream has no effect on innerstream, or set to false to - indicate that closing this FilterStream also closes innerStream. - - - - Reads data from this stream and stores it in the specified array. - - A byte array that receives the bytes read from - the stream. - The zero-based index into the buffer at which to - begin storing the data read from this stream. - The the maximum number of bytes to read from the - stream. - The the number of bytes read from the underlying stream. When - there is no more data to be read, returns 0. - The read operation failed. - - - - Reads the server response from the underlying inner stream. - - - - - Write the specified number of bytes to the underlying stream using the - specified buffer and offset. - - A byte array that supplies the bytes written to - the stream. - The zero-based index in the buffer at which to - begin reading bytes to be written to the stream. - The number of bytes to read from buffer. - The write operation failed. - - - - Reads the client's handshake from the specified buffer. - - A byte array from which the handshake data - will be read. - The zero-based index in the buffer at which to - begin reading bytes. - The number of bytes to read from buffer. - True if the handshake has been read completely, otherwise - false. - - - - Reads the payload from the specified buffer. - - A byte array from which the payload data - will be read. - The zero-based index in the buffer at which to - begin reading bytes. - The number of bytes to read from buffer. - True if all of the payload data has been read, otherwise - false. - - - - Sends the accumulated payload data to the server. - - true if the client is done sending data, otherwise - false. - - - - Reads a line of ASCII-encoded text terminated by a CRLF from the - specified stream. - - The stream to read the line of text from. - Set this to true, to resolve automatically - resolve possible literals. - A line of ASII-encoded text read from the specified - stream. - "Literals" are a special feature of IMAP, employed by some - server implementations. Please refer to RFC 3501 Section 4.3 for - details. - - - - Reads the specified number of bytes from the specified stream and - returns them as an ASCII-encoded string. - - The stream to read from. - The number of bytes to read. - The read bytes encoded as an ASCII string. - - - - Causes any buffered data to be written to the underlying device. - - - - - Throws NotSupportedException. - - This value is ignored. - This value is ignored. - Always throws a NotSupportedException. - - - - Sets the length of the underlying stream. - - A value that specifies the length of the - stream. - - - - Releases all resources used by the stream. - - True to release both managed and unmanaged - resources, false to release only unmanaged resources. - - - - Gets a boolean value that indicates whether the underlying stream is - readable. - - - - - Gets a boolean value that indicates whether the underlying stream is - seekable. - - - - - Gets a boolean value that indicates whether the underlying stream - supports time-outs. - - - - - Gets a boolean value that indicates whether the underlying stream is - writable. - - - - - Gets the length of the underlying stream. - - - - - Gets or sets the current position in the underlying stream. - - Setting this property - is not supported. - - - - The different states the FilterStream can be in. - - - - - The stream is reading the client's handshake message. - - - - - The stream is reading the client's payload data. - - - - - The stream is waiting for the server's response. - - - - - The stream has buffered the server's response and is satisfying - client reads from its buffer. - - - - - Represents a NegotiateStream handshake message. - - - - - This is the only permissible value according to specification. - - - - - This is the only permissible value according to specification. - - - - - Creates a new instance of the Handshake class using the specified type - and payload size. - - The type of handshake. - The size, in bytes, of the payload following - the handshake header. - - - - Private default constructor for deserializing. - - - - - Deserializes a handshake instance from the specified byte array. - - An array of bytes containing handshake data. - An initialized instance of the Handshake class deserialized - from the specified byte array. - Thrown if the specified byte - array does not contain valid handshake data. - - - - Serializes an instance of the Handshake class to a sequence of bytes. - - A sequence of bytes representing this Handshake instance. - - - - The type of the handshake message. - - - - - Specifies the major version of the NegotiateStream protocol - being used. - - - - - Specifies the minor version of the NegotiateStream protocol - being used. - - - - - Defines the size, in bytes, of the AuthPayload field, which immediately - follows the handshake. - - - - - Describes the different types of handshake messages. - - - - - The handshake has completed successfully. - - - - - An error occurred during the handshake. The AuthPayload field contains - an HRESULT. - - - - - The message is part of the handshake phase and is not the final message - from the host. The final Handshake message from a host is always - transferred in a HandshakeDone message. - - - - - Implements the Sasl SCRAM-SHA-1 authentication method as described in - RFC 5802. - - - - - The abstract base class from which all classes implementing a Sasl - authentication mechanism must derive. - - - - - Computes the client response to a challenge sent by the server. - - - The client response to the specified challenge. - - - - - - - - Retrieves the base64-encoded client response for the specified - base64-encoded challenge sent by the server. - - A base64-encoded string representing a challenge - sent by the server. - A base64-encoded string representing the client response to the - server challenge. - The IMAP, POP3 and SMTP authentication commands expect challenges - and responses to be base64-encoded. This method automatically decodes the - server challenge before passing it to the Sasl implementation and - encodes the client response to a base64-string before returning it to the - caller. - Thrown if the client response could - not be retrieved. Refer to the inner exception for error details. - - - - Retrieves the client response for the specified server challenge. - - A byte array containing the challenge sent by - the server. - An array of bytes representing the client response to the - server challenge. - - - - IANA name of the authentication mechanism. - - - - - True if the authentication exchange between client and server - has been completed. - - - - - A map of mechanism-specific properties which are needed by the - authentication mechanism to compute it's challenge-responses. - - - - - The client nonce value used during authentication. - - - - - Scram-Sha-1 involves several steps. - - - - - The salted password. This is needed for client authentication and later - on again for verifying the server signature. - - - - - The auth message is part of the authentication exchange and is needed for - authentication as well as for verifying the server signature. - - - - - Private constructor for use with Sasl.SaslFactory. - - - - - Internal constructor used for unit testing. - - The username to authenticate with. - The plaintext password to authenticate - with. - The client nonce value to use. - Thrown if the username - or the password parameter is null. - Thrown if the username - parameter is empty. - - - - Creates and initializes a new instance of the SaslScramSha1 - class using the specified username and password. - - The username to authenticate with. - The plaintext password to authenticate - with. - Thrown if the username - or the password parameter is null. - Thrown if the username - parameter is empty. - - - - Computes the client response to the specified SCRAM-SHA-1 challenge. - - The challenge sent by the server - The response to the SCRAM-SHA-1 challenge. - Thrown if the response could not - be computed. - - - - Computes the initial response sent by the client to the server. - - An array of bytes containing the initial client - response. - - - - Computes the "client-final-message" which completes the authentication - process. - - The "server-first-message" challenge received - from the server in response to the initial client response. - An array of bytes containing the client's challenge - response. - - - - Verifies the nonce value sent by the server. - - The nonce value sent by the server as part of the - server-first-message. - True if the nonce value is valid, otherwise false. - - - - Verifies the server signature which is sent by the server as the final - step of the authentication process. - - The server signature as a base64-encoded - string. - The client's response to the server. This will be an empty - byte array if verification was successful, or the '*' SASL cancellation - token. - - - - Parses the "server-first-message" received from the server. - - The challenge received from the server. - A collection of key/value pairs contained extracted from - the server message. - Thrown if the message parameter - is null. - - - - Computes the "Hi()"-formula which is part of the client's response - to the server challenge. - - The supplied password to use. - The salt received from the server. - The iteration count. - An array of bytes containing the result of the computation of the - "Hi()"-formula. - - Hi is, essentially, PBKDF2 with HMAC as the pseudorandom function (PRF) and with - dkLen == output length of HMAC() == output length of H(). (Refer to RFC 5802, p.6) - - - - - Applies the HMAC keyed hash algorithm using the specified key to - the specified input data. - - The key to use for initializing the HMAC - provider. - The input to compute the hashcode for. - The hashcode of the specified data input. - - - - Applies the HMAC keyed hash algorithm using the specified key to - the specified input string. - - The key to use for initializing the HMAC - provider. - The input string to compute the hashcode for. - The hashcode of the specified string. - - - - Applies the cryptographic hash function SHA-1 to the specified data - array. - - The data array to apply the hash function to. - The hash value for the specified byte array. - - - - Applies the exclusive-or operation to combine the specified byte array - a with the specified byte array b. - - The first byte array. - The second byte array. - An array of bytes of the same length as the input arrays - containing the result of the exclusive-or operation. - Thrown if either argument is - null. - Thrown if the input arrays - are not of the same length. - - - - Generates a random cnonce-value which is a "client-specified data string - which must be different each time a digest-response is sent". - - A random "cnonce-value" string. - - - - Prepares the specified string as is described in RFC 5802. - - A string value. - A "Saslprepped" string. - - - - True if the authentication exchange between client and server - has been completed. - - - - - The IANA name for the Scram-Sha-1 authentication mechanism as described - in RFC 5802. - - - - - The username to authenticate with. - - - - - The password to authenticate with. - - - - - Implements the Sasl Secure Remote Password (SRP) authentication - mechanism as is described in the IETF SRP 08 draft. - - - This requires .NET Framework 4 because it makes use of the System.Numeric namespace - which has only been part of .NET since version 4. - - Some notes: - - Don't bother with the example given in the IETF 08 draft - document (7.5 Example); It is broken. - - Integrity and confidentiality protection is not implemented. - In fact, the "mandatory"-option is not supported at all. - - - - - SRP involves several steps. - - - - - The negotiated hash algorithm which will be used to perform any - message digest calculations. - - - - - The public key computed as part of the authentication exchange. - - - - - The client's private key used for calculating the client evidence. - - - - - The secret key shared between client and server. - - - - - The client evidence calculated as part of the authentication exchange. - - - - - The options chosen by the client, picked from the list of options - advertised by the server. - - - - - Private constructor for use with Sasl.SaslFactory. - - - - - Internal constructor used for unit testing. - - The username to authenticate with. - The plaintext password to authenticate - with. - The client private key to use. - Thrown if the username - or the password parameter is null. - Thrown if the username - parameter is empty. - - - - Creates and initializes a new instance of the SaslSrp class using - the specified username and password. - - The username to authenticate with. - The plaintext password to authenticate - with. - Thrown if the username - or the password parameter is null. - Thrown if the username - parameter is empty. - - - - Computes the client response to the specified SRP challenge. - - The challenge sent by the server - The response to the SRP challenge. - Thrown if the response could not - be computed. - - - - Computes the initial response sent by the client to the server. - - An array of bytes containing the initial client - response. - - - - Computes the client response containing the client's public key and - evidence. - - The challenge containing the protocol elements - received from the server in response to the initial client - response. - An array of bytes containing the client's challenge - response. - Thrown if the server specified any - mandatory options which are not supported. - - - - Verifies the server signature which is sent by the server as the final - step of the authentication process. - - The server signature as a base64-encoded - string. - The client's response to the server. This will be an empty - byte array if verification was successful, or the '*' SASL cancellation - token. - - - - Selects a message digest algorithm from the specified list of - supported algorithms. - - A tuple containing the name of the selected message digest - algorithm as well as the type. - Thrown if none of the algorithms - specified in the list parameter is supported. - - - - True if the authentication exchange between client and server - has been completed. - - - - - The IANA name for the SRP authentication mechanism. - - - - - The username to authenticate with. - - - - - The password to authenticate with. - - - - - The authorization id (userid in draft jargon). - - - - - Represents the initial client-response sent to the server to initiate - the authentication exchange. - - - - - Creates a new instance of the ClientMessage1 class using the specified - username. - - The username to authenticate with. - The authorization id to authenticate with. - Thrown if the username parameter - is null. - - - - Serializes this instance of the ClientMessage1 class into a sequence of - bytes according to the requirements of the SRP specification. - - A sequence of bytes representing this instance of the - ClientMessage1 class. - Thrown if the cummultative length - of the serialized data fields exceeds the maximum number of bytes - allowed as per SRP specification. - SRP specification imposes a limit of 2,147,483,643 bytes on - the serialized data. - - - - The username to authenticate with. - - SRP specification imposes a limit of 65535 bytes - on this field. - - - - The authorization identity to authenticate with. - - SRP specification imposes a limit of 65535 bytes - on this field. - - - - The session identifier of a previous session whose parameters the - client wishes to re-use. - - SRP specification imposes a limit of 65535 bytes - on this field. If the client wishes to initialize a new session, - this parameter must be set to the empty string. - - - - The client's nonce used in deriving a new shared context key from - the shared context key of the previous session. - - SRP specification imposes a limit of 255 bytes on this - field. If not needed, it must be set to an empty byte array. - - - - Represents the second client-response sent to the server as part of - the SRP authentication exchange. - - - - - Creates and initializes a new instance of the ClientMessage2 class. - - - - - Creates and initializes a new instance of the ClientMessage2 class using - the specified public key and client proof. - - The client's public key. - The calculated client proof. - Thrown if either the public key - or the proof parameter is null. - - - - Serializes this instance of the ClientMessage2 class into a sequence of - bytes according to the requirements of the SRP specification. - - A sequence of bytes representing this instance of the - ClientMessage2 class. - Thrown if the cummultative length - of the serialized data fields exceeds the maximum number of bytes - allowed as per SRP specification. - SRP specification imposes a limit of 2,147,483,643 bytes on - the serialized data. - - - - Serializes the client's options collection into a comma-seperated - options string. - - A comma-seperated string containing the client's chosen - options. - - - - The client's ephemeral public key. - - - - - The evidence which proves to the server client-knowledge of the shared - context key. - - - - - The options list indicating the security services chosen by the client. - - - - - The initial vector the server will use to set up its encryption - context, if confidentiality protection will be employed. - - - - - Adds extension methods to the BinaryReader class to simplify the - deserialization of SRP messages. - - - - - Reads an unsigned integer value from the underlying stream, - optionally using big endian byte ordering. - - Extension method for BinaryReader. - Set to true to interpret the integer value - as big endian value. - The 32-byte unsigned integer value read from the underlying - stream. - - - - Reads an unsigned short value from the underlying stream, optionally - using big endian byte ordering. - - Extension method for BinaryReader. - Set to true to interpret the short value - as big endian value. - The 16-byte unsigned short value read from the underlying - stream. - - - - Reads a "multi-precision integer" from this instance. - - Extension method for the BinaryReader class. - An instance of the Mpi class decoded from the bytes read - from the underlying stream. - - - - Reads an "octet-sequence" from this instance. - - Extension method for the BinaryReader class. - An instance of the OctetSequence class decoded from the bytes - read from the underlying stream. - - - - Reads an UTF-8 string from this instance. - - Extension method for the BinaryReader class. - An instance of the Utf8String class decoded from the bytes - read from the underlying stream. - - - - Contains helper methods for calculating the various components of the - SRP authentication exchange. - - - - - The trace source used for informational and debug messages. - - - - - Determines whether the specified modulus is valid. - - The modulus to validate. - True if the specified modulus is valid, otherwise - false. - - - - Determines whether the specified generator is valid. - - The generator to validate. - True if the specified generator is valid, otherwise - false. - - - - Generates a random "multi-precision integer" which will act as the - client's private key. - - The client's ephemeral private key as a "multi-precision - integer". - - - - Calculates the client's ephemeral public key. - - The generator sent by the server. - The safe prime modulus sent by - the server. - The client's private key. - The client's ephemeral public key as a - "multi-precision integer". - - A = Client Public Key - g = Generator - a = Client Private Key - N = Safe Prime Modulus - - - - - Calculates the shared context key K from the given parameters. - - The user's password salt. - The username to authenticate with. - The password to authenticate with. - The client's ephemeral public key. - The server's ephemeral public key. - The client's private key. - The generator sent by the server. - The safe prime modulus sent by the - server. - The negotiated hash algorithm to use - for the calculations. - The shared context key K as a "multi-precision - integer". - - A = Client Public Key - B = Server Public Key - N = Safe Prime Modulus - U = Username - p = Password - s = User's Password Salt - a = Client Private Key - g = Generator - K = Shared Public Key - - - - - Computes the client evidence from the given parameters. - - The safe prime modulus sent by the - server. - The generator sent by the server. - The username to authenticate with. - The client's password salt. - The client's ephemeral public key. - The server's ephemeral public key. - The shared context key. - The authorization identity. - The raw options string as received from the - server. - The message digest algorithm to use for - calculating the client proof. - The client proof as an array of bytes. - - - - Computes the server evidence from the given parameters. - - The client's ephemeral public key. - - The shared context key. - The authorization identity. - The raw options string as sent by the - client. - The session id sent by the server. - The time-to-live value for the session id sent - by the server. - The message digest algorithm to use for - calculating the server proof. - The server proof as an array of bytes. - - - - Applies the exclusive-or operation to combine the specified byte array - a with the specified byte array b. - - The first byte array. - The second byte array. - An array of bytes of the same length as the input arrays - containing the result of the exclusive-or operation. - Thrown if either argument is - null. - Thrown if the input arrays - are not of the same length. - - - - Recommended values for the safe prime modulus (Refer to Appendix A. - "Modulus and Generator Values" of the IETF SRP draft). - - - - - Represents a "multi-precision integer" (MPI) as is described in the - SRP specification (3.2 Multi-Precision Integers, p.5). - - Multi-Precision Integers, or MPIs, are positive integers used - to hold large integers used in cryptographic computations. - - - - Creates a new "multi-precision integer" from the specified array - of bytes. - - A big-endian sequence of bytes forming the - integer value of the multi-precision integer. - - - - Creates a new "multi-precision integer" from the specified BigInteger - instance. - - The BigInteger instance to initialize the MPI - with. - - - - Returns a sequence of bytes in big-endian order forming the integer - value of this "multi-precision integer" instance. - - Returns a sequence of bytes in big-endian order representing - this "multi-precision integer" instance. - - - - Serializes the "multi-precision integer" into a sequence of bytes - according to the requirements of the SRP specification. - - A big-endian sequence of bytes representing the integer - value of the MPI. - - - - The underlying BigInteger instance used to represent this - "multi-precision integer". - - - - - Represents an "octet-sequence" as is described in the SRP specification - (3.3 Octet sequences, p.6). - - - - - Creates a new instance of the OctetSequence class using the specified - byte array. - - The sequence of bytes to initialize this instance - of the OctetSequence class with. - - - - Serializes this instance of the OctetSequence class into a sequence of - bytes according to the requirements of the SRP specification. - - A sequence of bytes representing this instance of the - OctetSequence class. - Thrown if the length of the byte - sequence exceeds the maximum number of bytes allowed as per SRP - specification. - SRP specification imposes a limit of 255 bytes on the - length of the underlying byte array. - - - - The underlying byte array forming this instance of the OctetSequence - class. - - - - - Represents the first message sent by the server in response to an - initial client-response. - - - - - Deserializes a new instance of the ServerMessage1 class from the - specified buffer of bytes. - - The byte buffer to deserialize the ServerMessage1 - instance from. - An instance of the ServerMessage1 class deserialized from the - specified byte array. - Thrown if the byte buffer does not - contain valid data. - - - - Parses the options string sent by the server. - - A comma-delimited options string. - An initialized instance of the NameValueCollection class - containing the parsed server options. - - - - The safe prime modulus sent by the server. - - - - - The generator sent by the server. - - - - - The user's password salt. - - - - - The server's ephemeral public key. - - - - - The options list indicating available security services. - - - - - The raw options as received from the server. - - - - - Represents the second message sent by the server as part of the SRP - authentication exchange. - - - - - Deserializes a new instance of the ServerMessage2 class from the - specified buffer of bytes. - - The byte buffer to deserialize the ServerMessage2 - instance from. - An instance of the ServerMessage2 class deserialized from the - specified byte array. - Thrown if the byte buffer does not - contain valid data. - - - - The evidence which proves to the client server-knowledge of the shared - context key. - - - - - The initial vector the client will use to set up its encryption - context, if confidentiality protection will be employed. - - - - - The session identifier the server has given to this session. - - - - - The time period for which this session's parameters may be re-usable. - - - - - Represents an UTF-8 string as is described in the SRP specification - (3.5 Text, p.6). - - - - - The value of the UTF-8 string. - - - - - Creates a new instance of the Utf8String class using the specified - string value. - - The string to initialize the Utf8String instance - with. - - - - Serializes this instance of the Utf8String class into a sequence of - bytes according to the requirements of the SRP specification. - - A sequence of bytes representing this instance of the - Utf8String class. - Thrown if the string value exceeds - the maximum number of bytes allowed as per SRP specification. - SRP specification imposes a limit of 65535 bytes on the - string data after it has been encoded into a sequence of bytes - using an encoding of UTF-8. - - - - Represents a MIME body part of a mail message that has multiple - parts. - - - - - Initializes a new instance of the Bodypart class with default - values. - - The part number as is expected by the - IMAP FETCH command. - - - - Returns a detailed description listing all properties of this - Bodypart instance. - - A string describing this instance of the Bodypart class - - - - The body part number which acts as part specifier for - the FETCH BODY command. - - - - - The MIME content-type of this body part. The content-type is - used to declare the general type of data. - - - - - The MIME content-subtype of this body part. The subtype - specifies a specific format for the type of data. - - - - - Parameter values present in the MIME content-type header - of this body part (for instance, 'charset'). - - - - - The MIME content-id of this body part, if any. This value - may be used for uniquely identifying MIME entities in - several contexts. - - - - - The MIME content-description of this body part. This value - may contain some descriptive information on the body part. - - - - - The MIME content-transfer-encoding mechanism used for - encoding this body part's data. - - - - - The size of this body part in bytes. Note that this size - is the size in its transfer encoding and not the resulting - size after any decoding. - - - - - The size of the body in text lines. This field is only - present in body parts with a content-type of text. - - - - - The computed MD5-Hash of the body part. This field is not - mandatory and may be empty. - - - - - The MIME content-disposition for this body part. This field - is not mandatory and may be empty. - - - - - A string giving the body language. This field is not mandatory - and may be empty. - - - - - A string list giving the body content URI. This field is not - mandatory and may be empty. - - - - - Provides a means for parsing the textual description of the body structure of a mail - message as is returned by an IMAP server for a "FETCH BODYSTRUCTURE" command. - - - They couldn't have made the BODYSTRUCTURE any more complicated and unnecessarily - hard to parse. I wonder what they were thinking when they came up with this. - - - - - Parses the body structure of a mail message as is returned by the IMAP server - in response to a FETCH BODYSTRUCTURE command. - - The body structure server response - An array of initialized Bodypart objects representing the body - structure of the mail message - Thrown if the passed string does not - contain a valid body structure and parsing failed. - - - - A Reader object initialized with the string containing the bodystructure - response. - - - - - Initializes a new instance of the Bodystructure class. - - - - - - Parses a bodypart entry from the body structure and advances the - read pointer. - - The designated part specifier by which the body - part is refered to by the server. - Set to true if the bodypart is enclosed - in parenthesis. - - - - - Parses the mandatory extra fields that are present if the bodypart is - of type message/rfc822 (see RFC 3501, p. 75). - - The bodypart instance the parsed fields will be - added to. - - - - Parses the optional fields of a bodypart entry from the body structure - and advances the read pointer. - - The bodypart instance the parsed fields will be - added to. - Set to true if the bodypart entry is enclosed - in parenthesis. - - - - Parses a list of bodypart entries as is outlined in the description of the - BODYPART response in RFC 3501. - - The nesting prefix that will be prefixed to the - bodyparts partNumber. - An array of initialized Bodypart objects parsed from the - list. - - - - Advances the read pointer to skip over a multipart entry. - - - - - Advances the read pointer to skip over an arbitrary - expression enclosed in parentheses. - - - - - Represents the content disposition as is presented in the BODYSTRUCTURE - response by the IMAP server. - - - - - Initializes a new instance of the ContentDisposition class with - default values. - - - - - Maps MIME content disposition string values to their corresponding - counter-parts of the ContentDispositionType enumeration. - - - - - The content disposition specifies the presentation style. - - - - - Additional attribute fields for specifying the name of a file, the creation - date and modification date, which can be used by the reader's mail user agent - to store the attachment. - - - - - Contains the name of the transmitted file if the content-disposition is of type - "Attachment" and if the name value was provided as part of the header information. - This field may be empty. - - - - - Possible values for the content disposition type which determines the presentation - style - - - - - The content disposition could not be determined. - - - - - An inline content disposition means that the content should be automatically - displayed when the message is displayed. - - - - - An attachment content disposition means that the content should not be displayed - automatically and requires some form of action from the user to open it. - - - - - Possible values for the "Encoding" property of the Bodypart class. The content - transfer encoding indicates whether or not a binary-to-text encoding - scheme has been used on top of the original encoding as specified within the - Content-Type header. - - - - - The content tranfer encoding could not be determined or is unknown. - - - - - Up to 998 bytes per line of the code range 1 - 127 with CR and LF only - allowed to appear as part of a CRLF line ending. - - - - - Up to 998 bytes per line with CR and LF only allowed to appear as part - of a CRLF line ending. - - - - - Any sequence of bytes. - - - - - Byte sequence is encoded using the quoted-printable encoding. - - - - - Byte sequence is encoded using Base64 encoding. - - - - - Possible values for the "Type" property of the Bodypart class. - For a detailed description of MIME Media Types refer to - RFC 2046. - - - - - The "text" media type is intended for sending material which - is principally textual in form. - - - - - A media type of "image" indicates that the body contains an image. - The subtype names the specific image format. - - - - - A media type of "audio" indicates that the body contains audio - data. - - - - - A media type of "video" indicates that the body contains a - time-varying-picture image, possibly with color and coordinated sound. - - - - - The "application" media type is to be used for discrete data which do - not fit in any of the other categories, and particularly for data to - be processed by some type of application program. - - - - - The "message" content type allows messages to contain other messages - or pointers to other messages. - - - - - The media type value is unknown or could not be determined. - - - - - A helper class for parsing the BODYSTRUCTURE response of an - IMAP FETCH command more conveniently. - - - - - Initializes a new instance of the Reader class that reads from the - specified string. - - The string to which the Reader instance should be - initialized. - - - - Reads the next character from the input string and advances the - character position by one character. - - The next character from the underlying string. - Thrown when reading is - attempted past the end of the underlying string. - - - - Returns the next available character but does not consume it. - - Set to true to skip any preceding - whitespace characters. - An integer representing the next character to be read, - or -1 if no more characters are available. - - - - Advances the character position until the specified character - is encountered. - - The character to skip to. - Thrown when reading is - attempted past the end of the underlying string. - - - - Advances the character position over any whitespace characters - and subsequently ensures the next read will not return a - whitespace character. - - Thrown when reading is - attempted past the end of the underlying string. - - - - Reads characters until the specified character is encountered. - - The character to read up to. - The read characters as a string value. - Thrown when reading is - attempted past the end of the underlying string. - - - - Reads a word from the underlying string. A word in this context - is a literal enclosed in double-quotes. - - The read word. - Thrown when reading is - attempted past the end of the underlying string. - - - - Reads an integer from the underlying string. - - The read integer value. - Thrown when reading is - attempted past the end of the underlying string. - - - - Reads a list from the underlying string. A list in this context - is a list of attribute/value literals (enclosed in double-quotes) - enclosed in parenthesis. - - The read list as a dictionary with the attribute names - as keys and attribute values as values. - Thrown when reading is - attempted past the end of the underlying string. - - - - Reads a disposition from the underlying string. A disposition in - this context is a list of attribute/value literals (enclosed in - double-quotes) preceded by a word enclosed in parenthesis. - - An initialized ContentDisposition instance representing - the parsed disposition. - Thrown when reading is - attempted past the end of the underlying string. - - - - The exception that is thrown when reading is attempted past the end - of a string. - - - - - Initializes a new instance of the EndOfStringException class - - - - - Initializes a new instance of the EndOfStringException class with its message - string set to . - - A description of the error. The content of message is intended - to be understood by humans. - - - - Initializes a new instance of the EndOfStringException class with its message - string set to and a reference to the inner exception that - is the cause of this exception. - - A description of the error. The content of message is intended - to be understood by humans. - The exception that is the cause of the current exception. - - - - Initializes a new instance of the EndOfStringException class with the specified - serialization and context information. - - An object that holds the serialized object data about the exception - being thrown. - An object that contains contextual information about the source - or destination. - - - - Defines the different means by which mail messages may be fetched from the server. - - - - - Fetches the entire mail message with all of its content. - - - - - Only the mail message headers will be retrieved, while the actual content will not be - downloaded. If this option is specified, only the header fields of the returned MailMessage - object will be initialized. - - - - - Retrieves the mail message, but will only download content that has a content-type of text. - This will retrieve text as well as HTML representation, while skipping inline content and - attachments. - - - - - Retrieves the mail message, but skips any content that is an attachment. - - - - - Provides data for IMAP idle error events. - - - - - Initializes a new instance of the IdleErrorEventArgs class. - - The exception that causes the event. - The instance of the ImapClient class that raised the event. - The exception parameter or the client parameter - is null. - - - - The exception that caused the error event. - - - - - The instance of the ImapClient class that raised the event. - - - - - Provides data for IMAP idle notification events. - - - - - Initializes a new instance of the IdleMessageEventArgs class and sets the - MessageCount attribute to the value of the - parameter. - - The number of messages in the selected mailbox. - The unique identifier (UID) of the newest message in the - mailbox. - The instance of the ImapClient class that raised the event. - - - - The total number of messages in the selected mailbox. - - - - - The unique identifier (UID) of the newest message in the mailbox. - - The UID can be passed to the GetMessage method in order to retrieve the mail - message from the server. - - - - The instance of the ImapClient class that raised the event. - - - - - Enables applications to communicate with a mail server using the Internet Message Access - Protocol (IMAP). - - - - - Attempts to establish an authenticated session with the server using the specified - credentials. - - The username with which to login in to the IMAP server. - The password with which to log in to the IMAP server. - The requested method of authentication. Can be one of the values - of the AuthMethod enumeration. - The username parameter or the password parameter - is null. - There was a failure writing to or reading from the - network. - The server rejected the supplied - credentials. - The specified authentication method is not - supported by the server. - - This example demonstrates how to authenticate with an IMAP server once a connection - has been established. Notice that you can also connect and login in one step - using one of the overloaded constructors. - - // Connect to Gmail's IMAP server on port 993 using SSL. - ImapClient Client = new ImapClient("imap.gmail.com", 993, true); - - try { - Client.Login("My_Username", "My_Password", AuthMethod.Auto); - } - catch(InvalidCredentialsException) { - Console.WriteLine("The server rejected the supplied credentials."); - } - - Client.Dispose(); - - - - - - Logs an authenticated client out of the server. After the logout sequence has been completed, - the server closes the connection with the client. - - An unexpected response has been received from - the server during the logout sequence. - Calling this method in non-authenticated state has no effect. - There was a failure writing to or reading from the - network. - The ImapClient object has been disposed. - - - - Returns an enumerable collection of capabilities the IMAP server supports. All strings in - the returned collection are guaranteed to be upper-case. - - An unexpected response has been received from - the server; The message property of the exception contains the error message returned by - the server. - There was a failure writing to or reading from the - network. - The ImapClient object has been disposed. - An enumerable collection of capabilities supported by the server. - This method may be called in non-authenticated state. - - - - Determines whether the specified capability is supported by the server. - - The IMAP capability to probe for (for example "IDLE"). - The capability parameter is null. - An unexpected response has been received from - the server; The message property of the exception contains the error message returned by - the server. - There was a failure writing to or reading from the - network. - The ImapClient object has been disposed. - true if the specified capability is supported by the server; Otherwise - false. - This method may be called in non-authenticated state. - - This example demonstrates how to connect and login to an IMAP server. - - // Connect to Gmail's IMAP server on port 993 using SSL. - ImapClient Client = null; - try { - Client = new ImapClient("imap.gmail.com", 993, "My_Username", - "My_Password", true, AuthMethod.Auto); - - // Check if the server supports IMAP IDLE. - if(Client.Supports("IDLE")) - Console.WriteLine("This server supports the IMAP4 IDLE specification"); - else - Console.WriteLine("This server does not support IMAP IDLE"); - } - catch(InvalidCredentialsException) { - Console.WriteLine("The server rejected the supplied credentials"); - } - finally { - // Release resources. - if(Client != null) - Client.Dispose(); - } - - - - - - Changes the name of the specified mailbox. - - The mailbox to rename. - The new name the mailbox will be renamed to. - The mailbox parameter or the - newName parameter is null. - The mailbox could not be renamed; The message - property of the exception contains the error message returned by the server. - There was a failure writing to or reading from the - network. - The ImapClient object has been disposed. - The method was called in non-authenticated - state, i.e. before logging in. - - - - Permanently removes the specified mailbox. - - The name of the mailbox to remove. - The mailbox parameter is null. - The specified mailbox could not be removed. - The message property of the exception contains the error message returned by the - server. - There was a failure writing to or reading from the - network. - The ImapClient object has been disposed. - The method was called in non-authenticated - state, i.e. before logging in. - - - - Creates a new mailbox with the specified name. - - The name of the mailbox to create. - The mailbox parameter is null. - The mailbox with the specified name could - not be created. The message property of the exception contains the error message returned - by the server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - Retrieves a list of all available and selectable mailboxes on the server. - - An enumerable collection of the names of all available and selectable - mailboxes. - The list of mailboxes could not be retrieved. - The message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - The mailbox name "INBOX" is a special name reserved to mean "the primary mailbox - for this user on this server". - - - - Permanently removes all messages that have the \Deleted flag set from the specified mailbox. - - The mailbox to remove all messages from that have the \Deleted flag - set. If this parameter is omitted, the value of the DefaultMailbox property is used to - determine the mailbox to operate on. - The expunge operation could not be completed. - The message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - - Retrieves status information (total number of messages, various attributes as well as quota - information) for the specified mailbox. - The mailbox to retrieve status information for. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - A MailboxInfo object containing status information for the mailbox. - The operation could not be completed because - the server returned an error. The message property of the exception contains the error message - returned by the server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - Not all IMAP servers support the retrieval of quota information. If it is not - possible to retrieve this information, the UsedStorage and FreeStorage properties of the - returned MailboxStatus instance are set to 0. - - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe", - "My_Password", true, AuthMethod.Login); - - // Get a list of all mailboxes. - foreach(string m in Client.ListMailboxes()) - { - MailboxInfo info = Client.GetMailboxInfo(m); - - Console.WriteLine(info.Name); - Console.WriteLine("Used storage: " + info.UsedStorage); - Console.WriteLine("Free storage: " + info.FreeStorage); - Console.WriteLine("Next UID: " + info.NextUID); - Console.WriteLine("Messages: " + info.Messages); - Console.WriteLine("Unread: " + info.Unread); - Console.WriteLine("Set Flags: "); - foreach (MailboxFlag f in info.Flags) - Console.Write(f.ToString() + ","); - Console.WriteLine(); - } - - Client.Dispose(); - - - - - - Searches the specified mailbox for messages that match the given search criteria. - - A search criteria expression; Only messages that match this - expression will be included in the result set returned by this method. - The mailbox that will be searched. If this parameter is omitted, the - value of the DefaultMailbox property is used to determine the mailbox to operate on. - The criteria parameter is null. - The search could not be completed. The message - property of the exception contains the error message returned by the server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - The search values contain characters beyond the - ASCII range and the server does not support handling non-ASCII strings. - An enumerable collection of unique identifiers (UIDs) which can be used with the - GetMessage family of methods to download the mail messages. - A unique identifier (UID) is a 32-bit value assigned to each message which uniquely - identifies the message within the respective mailbox. No two messages in a mailbox share - the same UID. - - This example demonstrates how to use the search method to get a list of all - unread messages in the mailbox. - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username", - "My_Password", true, AuthMethod.Login); - - // Get a list of unique identifiers (UIDs) of all unread messages in the mailbox. - IEnumerable<uint> uids = Client.Search( SearchCondition.Unseen() ); - - // Fetch the messages and print out their subject lines. - foreach(uint uid in uids) { - MailMessage message = Client.GetMessage(uid); - - Console.WriteLine(message.Subject); - } - - // Free up any resources associated with this instance. - Client.Dispose(); - - - This example demonstrates how to perform a search using multiple search criteria. - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username", - "My_Password", true, AuthMethod.Login); - - // Get a list of unique identifiers (UIDs) of all messages sent before the 01.04.2012 - // and that are larger than 1 Kilobyte. - IEnumerable<uint> uids = Client.Search( SearchCondition.SentBefore(new DateTime(2012, 4, 1)) - .And( SearchCondition.Larger(1024) )); - - Console.WriteLine("Found " + uids.Count() + " messages"); - - // Free up any resources associated with this instance. - Client.Dispose(); - - - The following example demonstrates how to perform a search using characters outside - the ASCII range. - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username", - "My_Password", true, AuthMethod.Login); - - // Get a list of unique identifiers (UIDs) of all messages that have - // the Japanese expression "フーリエ変換" in their subject lines. - try { - IEnumerable<uint> uids = Client.Search(SearchCondition.Subject("フーリエ変換")); - - Console.WriteLine("Found " + uids.Count() + " messages"); - } catch(NotSupportedException e) { - // If this exception is thrown, the server does not support searching for characters - // outside the ASCII range. - Console.WriteLine("The server does not support searching for non-ASCII values."); - } - - // Free up any resources associated with this instance. - Client.Dispose(); - - - - - - Retrieves the mail message with the specified unique identifier (UID). - - The unique identifier of the mail message to retrieve. - Set this to true to set the \Seen flag for this message on the - server. - The mailbox the message will be retrieved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - An initialized instance of the MailMessage class representing the fetched mail - message. - The mail message could not be fetched. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - A unique identifier (UID) is a 32-bit value assigned to each message which uniquely - identifies the message within the respective mailbox. No two messages in a mailbox share - the same UID. - - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe", - "My_Password", true, AuthMethod.Login); - - // Find all messages in the mailbox that were sent from "John.Doe@gmail.com". - IEnumerable<uint> uids = Client.Search( SearchCondition.From("John.Doe@gmail.com") ); - - // Fetch the first message and print it's subject and body. - if(uids.Count() > 0) { - MailMessage msg = Client.GetMessage(uids.First()); - - Console.WriteLine("Subject: " + msg.Subject); - Console.WriteLine("Body: " + msg.Body); - } - - Client.Dispose(); - - - - - - Retrieves the mail message with the specified unique identifier (UID) using the specified - fetch-option. - - The unique identifier of the mail message to retrieve. - A value from the FetchOptions enumeration which allows - for fetching selective parts of a mail message. - Set this to true to set the \Seen flag for this message on the - server. - The mailbox the message will be retrieved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - An initialized instance of the MailMessage class representing the fetched mail - message. - The mail message could not be fetched. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - A unique identifier (UID) is a 32-bit value assigned to each message which uniquely - identifies the message within the respective mailbox. No two messages in a mailbox share - the same UID. - If you need more fine-grained control over which parts of a mail message to fetch, - consider using one of the overloaded GetMessage methods. - - - - This example demonstrates how to fetch only the mail message headers of - a mail message, instead of the entire message. - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe", - "My_Password", true, AuthMethod.Login); - - // Find all messages in the mailbox that have "Hello" in the subject. - IEnumerable<uint> uids = Client.Search( SearchCondition.Subject("Hello") ); - - // Fetch the mail headers of the first message and print it's subject line. - if(uids.Count() > 0) { - MailMessage msg = Client.GetMessage(uids.First(), FetchOptions.HeadersOnly); - - Console.WriteLine("Subject: " + msg.Subject); - } - - Client.Dispose(); - - - - - - Retrieves the mail message with the specified unique identifier (UID) while only fetching - those parts of the message that satisfy the condition of the specified delegate. - - The unique identifier of the mail message to retrieve. - A delegate which will be invoked for every MIME body-part of the - mail message to determine whether the part should be fetched from the server or - skipped. - Set this to true to set the \Seen flag for this message on the - server. - The mailbox the message will be retrieved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - An initialized instance of the MailMessage class representing the fetched mail - message. - The callback parameter is null. - The mail message could not be fetched. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - A unique identifier (UID) is a 32-bit value assigned to each message which uniquely - identifies the message within the respective mailbox. No two messages in a mailbox share - the same UID. - - This example demonstrates how to use the ExaminePartDelegate with the GetMessage - method to only download message parts with a size of 1 Megabyte or less. - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe", - "My_Password", true, AuthMethod.Login); - - // Find all messages in the inbox. - IEnumerable<uint> uids = Client.Search( SearchCondition.All() ); - - // Download each message but skip message parts that are larger than 1 Megabyte. - foreach(uint uid in uids) { - MailMessage msg = Client.GetMessage(uid, (Bodypart part) => { - if(part.Size > (1024 * 1024)) - return false; - else - return true; - } - ); - } - - Client.Dispose(); - - - - - - Retrieves the set of mail messages with the specified unique identifiers (UIDs). - - An enumerable collection of unique identifiers of the mail messages to - retrieve. - Set this to true to set the \Seen flag for the fetched messages on the - server. - The mailbox the messages will be retrieved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - An enumerable collection of initialized instances of the MailMessage class - representing the fetched mail messages. - The uids parameter is null. - The mail messages could not be fetched. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - A unique identifier (UID) is a 32-bit value assigned to each message which uniquely - identifies the message within the respective mailbox. No two messages in a mailbox share - the same UID. - - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe", - "My_Password", true, AuthMethod.Login); - - // Find all messages that have been sent since June the 1st. - IEnumerable<uint> uids = Client.Search( SearchCondition.SentSince( new DateTime(2012, 6, 1) ) ); - - // Fetch the messages and print out their subject lines. - IEnumerable<MailMessage> messages = Client.GetMessages( uids ); - - foreach(MailMessage m in messages) - Console.WriteLine("Subject: " + m.Subject); - - Client.Dispose(); - - - - - - Retrieves the set of mail messages with the specified unique identifiers (UIDs) while only - fetching those parts of the messages that satisfy the condition of the specified delegate. - - An enumerable collection of unique identifiers of the mail messages to - retrieve. - A delegate which will be invoked for every MIME body-part of each - mail message to determine whether the part should be fetched from the server or - skipped. - Set this to true to set the \Seen flag for the fetched messages on the - server. - The mailbox the messages will be retrieved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - An enumerable collection of initialized instances of the MailMessage class - representing the fetched mail messages. - The uids parameter or the callback parameter is - null. - The mail messages could not be fetched. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - A unique identifier (UID) is a 32-bit value assigned to each message which uniquely - identifies the message within the respective mailbox. No two messages in a mailbox share - the same UID. - - - - - Retrieves the set of mail messages with the specified unique identifiers (UIDs) using the - specified fetch-option. - - An enumerable collection of unique identifiers of the mail messages to - retrieve. - A value from the FetchOptions enumeration which allows for fetching - selective parts of a mail message. - Set this to true to set the \Seen flag for the fetched messages on the - server. - The mailbox the messages will be retrieved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - An enumerable collection of initialized instances of the MailMessage class - representing the fetched mail messages. - The uids parameter is null. - The mail messages could not be fetched. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - A unique identifier (UID) is a 32-bit value assigned to each message which uniquely - identifies the message within the respective mailbox. No two messages in a mailbox share - the same UID. - - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe", - "My_Password", true, AuthMethod.Login); - - // Find all messages that have been sent since June the 1st. - IEnumerable<uint> uids = Client.Search( SearchCondition.SentSince( new DateTime(2012, 6, 1) ) ); - - // Retrieve the messages and print out their subject lines. If any of the messages are multipart - // messages, only those parts, that have a content-type of text will be fetched. - IEnumerable<MailMessage> messages = Client.GetMessages( uids, FetchOptions.TextOnly ); - - foreach(MailMessage m in messages) - Console.WriteLine("Subject: " + m.Subject); - - Client.Dispose(); - - - - - - Stores the specified mail message on the IMAP server. - - The mail message to store on the server. - Set this to true to set the \Seen flag for the message on the - server. - The mailbox the message will be stored in. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to store - the message in. - The unique identifier (UID) of the stored message. - The message parameter is null. - The mail message could not be stored. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - A unique identifier (UID) is a 32-bit value assigned to each message which uniquely - identifies the message within the respective mailbox. No two messages in a mailbox share - the same UID. - - - This example demonstrates how to store a mail message on an IMAP server. - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe", - "My_Password", true, AuthMethod.Login); - - MailMessage message = CreateSimpleMailMessage(); - uint uid = Client.StoreMessage(message); - - Console.WriteLine("The UID of the stored mail message is " + uid); - - Client.Dispose(); - - // ........... - - // This creates a simple mail message with a text/plain body and a PNG image - // as a file attachment. - // Consult the MSDN website for more details on the System.Net.Mail.Mailmessage class. - static MailMessage CreateSimpleMailMessage() { - MailMessage message = new MailMessage(); - - message.From = new MailAddress("someone@someplace.com"); - message.To.Add("john.doe@someplace.com"); - - message.Subject = "This is just a test!"; - message.Body = "This is the text/plain body. An additional HTML body " + - "can optionally be attached as an alternate view"; - - // Add the attachment. - Attachment attachment = new Attachment("some_image.png", "image/png"); - attachment.Name = "my_attached_image.png"; - message.Attachments.Add(attachment); - - return message; - } - - - - - - Stores the specified mail messages on the IMAP server. - - An enumerable collection of mail messages to store on the - server. - Set this to true to set the \Seen flag for each message on the - server. - The mailbox the messages will be stored in. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to store - the messages in. - An enumerable collection of unique identifiers (UID) representing the stored - messages on the server. - The messages parameter is null. - The mail messages could not be stored. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - A unique identifier (UID) is a 32-bit value assigned to each message which uniquely - identifies the message within the respective mailbox. No two messages in a mailbox share - the same UID. - - - - - Copies the mail message with the specified UID to the specified destination mailbox. - - The UID of the mail message to copy. - The name of the mailbox to copy the message to. - The mailbox the message will be copied from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - The destination parameter is null. - The mail message could not be copied to the - specified destination. The message property of the exception contains the error message - returned by the server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - - Copies the mail messages with the specified UIDs to the specified destination mailbox. - - An enumerable collection of UIDs of the mail messages to copy. - The name of the mailbox to copy the messages to. - The mailbox the message will be copied from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - When copying many messages, this method is more efficient than calling - for each individual message. - The uids parameter or the destination parameter is - null. - The specified collection of UIDs is empty. - The mail messages could not be copied to the - specified destination. The message property of the exception contains the error message - returned by the server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - - Moves the mail message with the specified UID to the specified destination mailbox. - - The UID of the mail message to move. - The name of the mailbox to move the message into. - The mailbox the message will be moved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - The destination parameter is null. - The mail message could not be moved to the - specified destination. The message property of the exception contains the error message - returned by the server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - - - Moves the mail messages with the specified UIDs to the specified destination mailbox. - - An enumerable collection of UIDs of the mail messages to move. - The name of the mailbox to move the messages into. - The mailbox the messages will be moved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - When moving many messages, this method is more efficient than calling - for each individual message. - The uids parameter or the destination parameter is - null. - The mail messages could not be moved to the - specified destination. The message property of the exception contains the error message - returned by the server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - - - Deletes the mail message with the specified UID. - - The UID of the mail message to delete. - The mailbox the message will be deleted from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - The mail message could not be deleted. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - - Deletes the mail messages with the specified UIDs. - - An enumerable collection of UIDs of the mail messages to delete. - The mailbox the messages will be deleted from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - When deleting many messages, this method is more efficient than calling - for each individual message. - The uids parameter is null. - The specified collection of UIDs is empty. - The mail messages could not be deleted. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - - Retrieves the IMAP message flag attributes for the mail message with the specified unique - identifier (UID). - - The UID of the mail message to retrieve the flag attributes for. - The mailbox the message will be retrieved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - An enumerable collection of message flags set for the message with the specified - UID. - The mail message flags could not be retrieved. - The message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - - - - Sets the IMAP message flag attributes for the mail message with the specified unique - identifier (UID). - - The UID of the mail message to set the flag attributes for. - The mailbox that contains the mail message. If this parameter is null, - the value of the DefaultMailbox property is used to determine the mailbox to operate - on. - One or multiple message flags from the MessageFlag enumeration. - The mail message flags could not be set. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - This method replaces the current flag attributes of the message with the specified - new flags. If you wish to retain the old attributes, use the - method instead. - - - - - - - Adds the specified set of IMAP message flags to the existing flag attributes of the mail - message with the specified unique identifier (UID). - - The UID of the mail message to add the flag attributes to. - The mailbox that contains the mail message. If this parameter is null, - the value of the DefaultMailbox property is used to determine the mailbox to operate - on. - One or multiple message flags from the MessageFlag enumeration. - The mail message flags could not be added. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - This method adds the specified set of flags to the existing set of flag attributes - of the message. If you wish to replace the old attributes, use the - method instead. - - - - - - - Removes the specified set of IMAP message flags from the existing flag attributes of the - mail message with the specified unique identifier (UID). - - The UID of the mail message to remove the flag attributes for. - The mailbox that contains the mail message. If this parameter is null, - the value of the DefaultMailbox property is used to determine the mailbox to operate - on. - One or multiple message flags from the MessageFlag enumeration. - The mail message flags could not be removed. - The message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - This method removes the specified set of flags from the existing set of flag - attributes of the message. If you wish to replace the old attributes, use the - method instead. - - - - - - - The default mailbox to operate on. - - The property is being set and the value is - null. - The property is being set and the value is the empty - string. - The default value for this property is "INBOX" which is a special name reserved - to mean "the primary mailbox for this user on this server". - - - - Determines whether the client is authenticated with the server. - - - - - The event that is raised when a new mail message has been received by the server. - - To probe a server for IMAP IDLE support, the - method can be used, specifying "IDLE" for the capability parameter. - - Please note that the event handler will be executed on a threadpool thread. - - - This example demonstrates how to receive IMAP IDLE notifications. - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe", - "My_Password", true, AuthMethod.Login); - - // Make sure our server actually supports IMAP IDLE. - if(!Client.Supports("IDLE")) - throw new Exception("This server does not support IMAP IDLE"); - - // Our event handler will be called whenever a new message is received - // by the server. - Client.NewMessage += new EventHandler<IdleMessageEventArgs>(OnNewMessage); - - // ......... - - Client.Dispose(); - - // ........ - - void OnNewMessage(object sender, IdleMessageEventArgs e) { - Console.WriteLine("Received a new message!"); - Console.WriteLine("Total number of messages in the mailbox: " + - e.MessageCount); - } - - - - - - The event that is raised when a message has been deleted on the server. - - To probe a server for IMAP IDLE support, the - method can be used, specifying "IDLE" for the capability parameter. - - Please note that the event handler will be executed on a threadpool thread. - - - This example demonstrates how to receive IMAP IDLE notifications. - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe", - "My_Password", true, AuthMethod.Login); - - // Make sure our server actually supports IMAP IDLE. - if(!Client.Supports("IDLE")) - throw new Exception("This server does not support IMAP IDLE"); - - // Our event handler will be called whenever a message is deleted on the server. - Client.MessageDeleted += new EventHandler<IdleMessageEventArgs>(OnMessageDeleted); - - // ......... - - // Don't forget to dispose the client once you're done with it. - Client.Dispose(); - - // ........ - - void OnMessageDeleted(object sender, IdleMessageEventArgs e) { - Console.WriteLine("A mail message was deleted on the server!"); - Console.WriteLine("Total number of mail messages in the mailbox: " + - e.MessageCount); - } - - - - - - Enables applications to communicate with a mail server using the Internet Message Access - Protocol (IMAP). - - - - - This constructor is solely used for unit testing. - - A stream to initialize the ImapClient instance with. - - - - Initializes a new instance of the ImapClient class and connects to the specified port - on the specified host, optionally using the Secure Socket Layer (SSL) security protocol. - - The DNS name of the server to which you intend to connect. - The port number of the server to which you intend to connect. - Set to true to use the Secure Socket Layer (SSL) security protocol. - Delegate used for verifying the remote Secure Sockets - Layer (SSL) certificate which is used for authentication. Can be null if not needed. - The port parameter is not between MinPort - and MaxPort. - The hostname parameter is null. - An unexpected response has been received from - the server upon connecting. - There was a failure writing to or reading from the - network. - An error occurred while accessing the socket used for - establishing the connection to the IMAP server. Use the ErrorCode property to obtain the - specific error code. - An authentication - error occured while trying to establish a secure connection. - - This example shows how to establish a connection with an IMAP server - and print out the IMAP options, which the server supports. - - // Connect to Gmail's IMAP server on port 993 using SSL. - ImapClient Client = new ImapClient("imap.gmail.com", 993, true); - - // Print out the server's capabilities. - foreach(string s in Client.Capabilities()) - Console.WriteLine(s); - - Client.Dispose(); - - - - - - Initializes a new instance of the ImapClient class and connects to the specified port on - the specified host, optionally using the Secure Socket Layer (SSL) security protocol and - attempts to authenticate with the server using the specified authentication method and - credentials. - - The DNS name of the server to which you intend to connect. - The port number of the server to which you intend to connect. - The username with which to login in to the IMAP server. - The password with which to log in to the IMAP server. - The requested method of authentication. Can be one of the values - of the AuthMethod enumeration. - Set to true to use the Secure Socket Layer (SSL) security protocol. - Delegate used for verifying the remote Secure Sockets Layer - (SSL) certificate which is used for authentication. Can be null if not needed. - The port parameter is not between MinPort - and MaxPort. - The hostname parameter is null. - An unexpected response has been received from - the server upon connecting. - There was a failure writing to or reading from the - network. - The provided credentials were rejected by the - server. - An error occurred while accessing the socket used for - establishing the connection to the IMAP server. Use the ErrorCode property to obtain the - specific error code. - An authentication - error occured while trying to establish a secure connection. - - This example demonstrates how to connect and login to an IMAP server. - - // Connect to Gmail's IMAP server on port 993 using SSL. - ImapClient Client = null; - try { - Client = new ImapClient("imap.gmail.com", 993, "My_Username", - "My_Password", true, AuthMethod.Auto); - - // Check if the server supports IMAP IDLE. - if(Client.Supports("IDLE")) - Console.WriteLine("This server supports the IMAP4 IDLE specification"); - else - Console.WriteLine("This server does not support IMAP IDLE"); - } - catch(InvalidCredentialsException) { - Console.WriteLine("The server rejected the supplied credentials"); - } - finally { - // Release resources. - if(Client != null) - Client.Dispose(); - } - - - - - - Connects to the specified port on the specified host, optionally using the Secure Socket Layer - (SSL) security protocol. - - The DNS name of the server to which you intend to connect. - The port number of the server to which you intend to connect. - Set to true to use the Secure Socket Layer (SSL) security protocol. - Delegate used for verifying the remote Secure Sockets Layer (SSL) - certificate which is used for authentication. Can be null if not needed. - The port parameter is not between MinPort - and MaxPort. - The hostname parameter is null. - An unexpected response has been received - from the server upon connecting. - There was a failure writing to or reading from the - network. - An error occurred while accessing the socket used for - establishing the connection to the IMAP server. Use the ErrorCode property to obtain the - specific error code. - An authentication - error occured while trying to establish a secure connection. - - - - Determines whether the specified response is a valid IMAP OK response. - - A response string received from the server. - A tag if the response is associated with a command. - true if the response is a valid IMAP OK response; Otherwise false. - - - - Attempts to establish an authenticated session with the server using the specified - credentials. - - The username with which to login in to the IMAP server. - The password with which to log in to the IMAP server. - The requested method of authentication. Can be one of the values - of the AuthMethod enumeration. - The username parameter or the password parameter - is null. - There was a failure writing to or reading from the - network. - The server rejected the supplied - credentials. - The specified authentication method is not - supported by the server. - - This example demonstrates how to authenticate with an IMAP server once a connection - has been established. Notice that you can also connect and login in one step - using one of the overloaded constructors. - - // Connect to Gmail's IMAP server on port 993 using SSL. - ImapClient Client = new ImapClient("imap.gmail.com", 993, true); - - try { - Client.Login("My_Username", "My_Password", AuthMethod.Auto); - } - catch(InvalidCredentialsException) { - Console.WriteLine("The server rejected the supplied credentials."); - } - - Client.Dispose(); - - - - - - Performs authentication using the most secure authentication mechanism supported by the - server. - - The tag identifier to use for performing the authentication - commands. - The username with which to login in to the IMAP server. - The password with which to log in to the IMAP server. - The response sent by the server. - The order of preference of authentication types employed by this method is - Ntlm, Scram-Sha-1, Digest-Md5, followed by Cram-Md5 and finally plaintext Login as - a last resort. - - - - Performs an actual IMAP "LOGIN" command using the specified username and plain-text - password. - - The tag identifier to use for performing the authentication - commands. - The username with which to login in to the IMAP server. - The password with which to log in to the IMAP server. - The response sent by the server. - - - - Performs NTLM and Kerberos authentication via the Security Support Provider Interface (SSPI). - - The tag identifier to use for performing the authentication - commands. - The username with which to login in to the IMAP server. - The password with which to log in to the IMAP server. - True to authenticate using NTLM, otherwise GSSAPI (Kerberos) is - used. - The response sent by the server. - The specified authentication method is not - supported by the server. - - - - Performs authentication using a SASL authentication mechanism via IMAP's authenticate - command. - - The tag identifier to use for performing the authentication - commands. - The username with which to login in to the IMAP server. - The password with which to log in to the IMAP server. - The name of the SASL authentication mechanism to use. - The response sent by the server. - The authentication mechanism with the specified name could - not be found. - The specified authentication mechanism is not - supported by the server. - An unexpected response has been received from - the server. - - - - Logs an authenticated client out of the server. After the logout sequence has been completed, - the server closes the connection with the client. - - An unexpected response has been received from - the server during the logout sequence. - Calling this method in non-authenticated state has no effect. - There was a failure writing to or reading from the - network. - The ImapClient object has been disposed. - - - - Generates a unique identifier to prefix a command with, as is required by the IMAP protocol. - - A unique identifier string. - - - - Sends a command string to the server. This method blocks until the command has been - transmitted. - - The command to send to the server. The string is suffixed by CRLF - prior to sending. - - - - Sends a command string to the server and subsequently waits for a response, which is then - returned to the caller. This method blocks until the server response has been received. - - The command to send to the server. This is suffixed by CRLF prior - to sending. - Set to true to resolve possible literals returned by the - server (Refer to RFC 3501 Section 4.3 for details). - The response received by the server. - - - - Waits for a response from the server. This method blocks until a response has been received. - - Set to true to resolve possible literals returned by the - server (Refer to RFC 3501 Section 4.3 for details). - A response string from the server - The underlying socket is closed or there was a failure - reading from the network. - - - - Reads the specified amount of bytes from the server. This method blocks until the specified - amount of bytes has been read from the network stream. - - The number of bytes to read. - The read bytes as an ASCII-encoded string. - The underlying socket is closed or there was a failure - reading from the network. - - - - Returns an enumerable collection of capabilities the IMAP server supports. All strings in - the returned collection are guaranteed to be upper-case. - - An unexpected response has been received from - the server; The message property of the exception contains the error message returned by - the server. - There was a failure writing to or reading from the - network. - The ImapClient object has been disposed. - An enumerable collection of capabilities supported by the server. - This method may be called in non-authenticated state. - - - - Determines whether the specified capability is supported by the server. - - The IMAP capability to probe for (for example "IDLE"). - The capability parameter is null. - An unexpected response has been received from - the server; The message property of the exception contains the error message returned by - the server. - There was a failure writing to or reading from the - network. - The ImapClient object has been disposed. - true if the specified capability is supported by the server; Otherwise - false. - This method may be called in non-authenticated state. - - This example demonstrates how to connect and login to an IMAP server. - - // Connect to Gmail's IMAP server on port 993 using SSL. - ImapClient Client = null; - try { - Client = new ImapClient("imap.gmail.com", 993, "My_Username", - "My_Password", true, AuthMethod.Auto); - - // Check if the server supports IMAP IDLE. - if(Client.Supports("IDLE")) - Console.WriteLine("This server supports the IMAP4 IDLE specification"); - else - Console.WriteLine("This server does not support IMAP IDLE"); - } - catch(InvalidCredentialsException) { - Console.WriteLine("The server rejected the supplied credentials"); - } - finally { - // Release resources. - if(Client != null) - Client.Dispose(); - } - - - - - - Changes the name of the specified mailbox. - - The mailbox to rename. - The new name the mailbox will be renamed to. - The mailbox parameter or the - newName parameter is null. - The mailbox could not be renamed; The message - property of the exception contains the error message returned by the server. - There was a failure writing to or reading from the - network. - The ImapClient object has been disposed. - The method was called in non-authenticated - state, i.e. before logging in. - - - - Permanently removes the specified mailbox. - - The name of the mailbox to remove. - The mailbox parameter is null. - The specified mailbox could not be removed. - The message property of the exception contains the error message returned by the - server. - There was a failure writing to or reading from the - network. - The ImapClient object has been disposed. - The method was called in non-authenticated - state, i.e. before logging in. - - - - Creates a new mailbox with the specified name. - - The name of the mailbox to create. - The mailbox parameter is null. - The mailbox with the specified name could - not be created. The message property of the exception contains the error message returned - by the server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - Selects the specified mailbox so that the messages of the mailbox can be accessed. - - The mailbox to select. If this parameter is null, the - default mailbox is selected. - The specified mailbox could not be selected. - The message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - IMAP Idle must be paused or stopped before calling this method. - - - - Retrieves a list of all available and selectable mailboxes on the server. - - An enumerable collection of the names of all available and selectable - mailboxes. - The list of mailboxes could not be retrieved. - The message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - The mailbox name "INBOX" is a special name reserved to mean "the primary mailbox - for this user on this server". - - - - Permanently removes all messages that have the \Deleted flag set from the specified mailbox. - - The mailbox to remove all messages from that have the \Deleted flag - set. If this parameter is omitted, the value of the DefaultMailbox property is used to - determine the mailbox to operate on. - The expunge operation could not be completed. - The message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - - Retrieves status information (total number of messages, various attributes as well as quota - information) for the specified mailbox. - The mailbox to retrieve status information for. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - A MailboxInfo object containing status information for the mailbox. - The operation could not be completed because - the server returned an error. The message property of the exception contains the error message - returned by the server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - Not all IMAP servers support the retrieval of quota information. If it is not - possible to retrieve this information, the UsedStorage and FreeStorage properties of the - returned MailboxStatus instance are set to 0. - - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe", - "My_Password", true, AuthMethod.Login); - - // Get a list of all mailboxes. - foreach(string m in Client.ListMailboxes()) - { - MailboxInfo info = Client.GetMailboxInfo(m); - - Console.WriteLine(info.Name); - Console.WriteLine("Used storage: " + info.UsedStorage); - Console.WriteLine("Free storage: " + info.FreeStorage); - Console.WriteLine("Next UID: " + info.NextUID); - Console.WriteLine("Messages: " + info.Messages); - Console.WriteLine("Unread: " + info.Unread); - Console.WriteLine("Set Flags: "); - foreach (MailboxFlag f in info.Flags) - Console.Write(f.ToString() + ","); - Console.WriteLine(); - } - - Client.Dispose(); - - - - - - Retrieves the set of special-use flags associated with the specified mailbox. - - The mailbox to receive the special-use flags for. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - The operation could not be completed because - the server returned an error. The message property of the exception contains the error - message returned by the server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - An enumerable collection of special-use flags set on the specified - mailbox. - This feature is an optional extension to the IMAP protocol and as such some servers - may not report any flags at all. - - - - Retrieves status information (total number of messages, number of unread messages, etc.) for - the specified mailbox. - The mailbox to retrieve status information for. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - A MailboxStatus object containing status information for the mailbox. - The operation could not be completed because - the server returned an error. The message property of the exception contains the error - message returned by the server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - Searches the specified mailbox for messages that match the given search criteria. - - A search criteria expression; Only messages that match this - expression will be included in the result set returned by this method. - The mailbox that will be searched. If this parameter is omitted, the - value of the DefaultMailbox property is used to determine the mailbox to operate on. - The criteria parameter is null. - The search could not be completed. The message - property of the exception contains the error message returned by the server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - The search values contain characters beyond the - ASCII range and the server does not support handling non-ASCII strings. - An enumerable collection of unique identifiers (UIDs) which can be used with the - GetMessage family of methods to download the mail messages. - A unique identifier (UID) is a 32-bit value assigned to each message which uniquely - identifies the message within the respective mailbox. No two messages in a mailbox share - the same UID. - - This example demonstrates how to use the search method to get a list of all - unread messages in the mailbox. - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username", - "My_Password", true, AuthMethod.Login); - - // Get a list of unique identifiers (UIDs) of all unread messages in the mailbox. - IEnumerable<uint> uids = Client.Search( SearchCondition.Unseen() ); - - // Fetch the messages and print out their subject lines. - foreach(uint uid in uids) { - MailMessage message = Client.GetMessage(uid); - - Console.WriteLine(message.Subject); - } - - // Free up any resources associated with this instance. - Client.Dispose(); - - - This example demonstrates how to perform a search using multiple search criteria. - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username", - "My_Password", true, AuthMethod.Login); - - // Get a list of unique identifiers (UIDs) of all messages sent before the 01.04.2012 - // and that are larger than 1 Kilobyte. - IEnumerable<uint> uids = Client.Search( SearchCondition.SentBefore(new DateTime(2012, 4, 1)) - .And( SearchCondition.Larger(1024) )); - - Console.WriteLine("Found " + uids.Count() + " messages"); - - // Free up any resources associated with this instance. - Client.Dispose(); - - - The following example demonstrates how to perform a search using characters outside - the ASCII range. - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username", - "My_Password", true, AuthMethod.Login); - - // Get a list of unique identifiers (UIDs) of all messages that have - // the Japanese expression "フーリエ変換" in their subject lines. - try { - IEnumerable<uint> uids = Client.Search(SearchCondition.Subject("フーリエ変換")); - - Console.WriteLine("Found " + uids.Count() + " messages"); - } catch(NotSupportedException e) { - // If this exception is thrown, the server does not support searching for characters - // outside the ASCII range. - Console.WriteLine("The server does not support searching for non-ASCII values."); - } - - // Free up any resources associated with this instance. - Client.Dispose(); - - - - - - Retrieves the mail message with the specified unique identifier (UID). - - The unique identifier of the mail message to retrieve. - Set this to true to set the \Seen flag for this message on the - server. - The mailbox the message will be retrieved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - An initialized instance of the MailMessage class representing the fetched mail - message. - The mail message could not be fetched. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - A unique identifier (UID) is a 32-bit value assigned to each message which uniquely - identifies the message within the respective mailbox. No two messages in a mailbox share - the same UID. - - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe", - "My_Password", true, AuthMethod.Login); - - // Find all messages in the mailbox that were sent from "John.Doe@gmail.com". - IEnumerable<uint> uids = Client.Search( SearchCondition.From("John.Doe@gmail.com") ); - - // Fetch the first message and print it's subject and body. - if(uids.Count() > 0) { - MailMessage msg = Client.GetMessage(uids.First()); - - Console.WriteLine("Subject: " + msg.Subject); - Console.WriteLine("Body: " + msg.Body); - } - - Client.Dispose(); - - - - - - Retrieves the mail message with the specified unique identifier (UID) using the specified - fetch-option. - - The unique identifier of the mail message to retrieve. - A value from the FetchOptions enumeration which allows - for fetching selective parts of a mail message. - Set this to true to set the \Seen flag for this message on the - server. - The mailbox the message will be retrieved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - An initialized instance of the MailMessage class representing the fetched mail - message. - The mail message could not be fetched. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - A unique identifier (UID) is a 32-bit value assigned to each message which uniquely - identifies the message within the respective mailbox. No two messages in a mailbox share - the same UID. - If you need more fine-grained control over which parts of a mail message to fetch, - consider using one of the overloaded GetMessage methods. - - - - This example demonstrates how to fetch only the mail message headers of - a mail message, instead of the entire message. - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe", - "My_Password", true, AuthMethod.Login); - - // Find all messages in the mailbox that have "Hello" in the subject. - IEnumerable<uint> uids = Client.Search( SearchCondition.Subject("Hello") ); - - // Fetch the mail headers of the first message and print it's subject line. - if(uids.Count() > 0) { - MailMessage msg = Client.GetMessage(uids.First(), FetchOptions.HeadersOnly); - - Console.WriteLine("Subject: " + msg.Subject); - } - - Client.Dispose(); - - - - - - Retrieves the mail message with the specified unique identifier (UID) while only fetching - those parts of the message that satisfy the condition of the specified delegate. - - The unique identifier of the mail message to retrieve. - A delegate which will be invoked for every MIME body-part of the - mail message to determine whether the part should be fetched from the server or - skipped. - Set this to true to set the \Seen flag for this message on the - server. - The mailbox the message will be retrieved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - An initialized instance of the MailMessage class representing the fetched mail - message. - The callback parameter is null. - The mail message could not be fetched. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - A unique identifier (UID) is a 32-bit value assigned to each message which uniquely - identifies the message within the respective mailbox. No two messages in a mailbox share - the same UID. - - This example demonstrates how to use the ExaminePartDelegate with the GetMessage - method to only download message parts with a size of 1 Megabyte or less. - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe", - "My_Password", true, AuthMethod.Login); - - // Find all messages in the inbox. - IEnumerable<uint> uids = Client.Search( SearchCondition.All() ); - - // Download each message but skip message parts that are larger than 1 Megabyte. - foreach(uint uid in uids) { - MailMessage msg = Client.GetMessage(uid, (Bodypart part) => { - if(part.Size > (1024 * 1024)) - return false; - else - return true; - } - ); - } - - Client.Dispose(); - - - - - - Retrieves the set of mail messages with the specified unique identifiers (UIDs). - - An enumerable collection of unique identifiers of the mail messages to - retrieve. - Set this to true to set the \Seen flag for the fetched messages on the - server. - The mailbox the messages will be retrieved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - An enumerable collection of initialized instances of the MailMessage class - representing the fetched mail messages. - The uids parameter is null. - The mail messages could not be fetched. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - A unique identifier (UID) is a 32-bit value assigned to each message which uniquely - identifies the message within the respective mailbox. No two messages in a mailbox share - the same UID. - - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe", - "My_Password", true, AuthMethod.Login); - - // Find all messages that have been sent since June the 1st. - IEnumerable<uint> uids = Client.Search( SearchCondition.SentSince( new DateTime(2012, 6, 1) ) ); - - // Fetch the messages and print out their subject lines. - IEnumerable<MailMessage> messages = Client.GetMessages( uids ); - - foreach(MailMessage m in messages) - Console.WriteLine("Subject: " + m.Subject); - - Client.Dispose(); - - - - - - Retrieves the set of mail messages with the specified unique identifiers (UIDs) while only - fetching those parts of the messages that satisfy the condition of the specified delegate. - - An enumerable collection of unique identifiers of the mail messages to - retrieve. - A delegate which will be invoked for every MIME body-part of each - mail message to determine whether the part should be fetched from the server or - skipped. - Set this to true to set the \Seen flag for the fetched messages on the - server. - The mailbox the messages will be retrieved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - An enumerable collection of initialized instances of the MailMessage class - representing the fetched mail messages. - The uids parameter or the callback parameter is - null. - The mail messages could not be fetched. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - A unique identifier (UID) is a 32-bit value assigned to each message which uniquely - identifies the message within the respective mailbox. No two messages in a mailbox share - the same UID. - - - - - Retrieves the set of mail messages with the specified unique identifiers (UIDs) using the - specified fetch-option. - - An enumerable collection of unique identifiers of the mail messages to - retrieve. - A value from the FetchOptions enumeration which allows for fetching - selective parts of a mail message. - Set this to true to set the \Seen flag for the fetched messages on the - server. - The mailbox the messages will be retrieved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - An enumerable collection of initialized instances of the MailMessage class - representing the fetched mail messages. - The uids parameter is null. - The mail messages could not be fetched. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - A unique identifier (UID) is a 32-bit value assigned to each message which uniquely - identifies the message within the respective mailbox. No two messages in a mailbox share - the same UID. - - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe", - "My_Password", true, AuthMethod.Login); - - // Find all messages that have been sent since June the 1st. - IEnumerable<uint> uids = Client.Search( SearchCondition.SentSince( new DateTime(2012, 6, 1) ) ); - - // Retrieve the messages and print out their subject lines. If any of the messages are multipart - // messages, only those parts, that have a content-type of text will be fetched. - IEnumerable<MailMessage> messages = Client.GetMessages( uids, FetchOptions.TextOnly ); - - foreach(MailMessage m in messages) - Console.WriteLine("Subject: " + m.Subject); - - Client.Dispose(); - - - - - - Stores the specified mail message on the IMAP server. - - The mail message to store on the server. - Set this to true to set the \Seen flag for the message on the - server. - The mailbox the message will be stored in. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to store - the message in. - The unique identifier (UID) of the stored message. - The message parameter is null. - The mail message could not be stored. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - A unique identifier (UID) is a 32-bit value assigned to each message which uniquely - identifies the message within the respective mailbox. No two messages in a mailbox share - the same UID. - - - This example demonstrates how to store a mail message on an IMAP server. - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe", - "My_Password", true, AuthMethod.Login); - - MailMessage message = CreateSimpleMailMessage(); - uint uid = Client.StoreMessage(message); - - Console.WriteLine("The UID of the stored mail message is " + uid); - - Client.Dispose(); - - // ........... - - // This creates a simple mail message with a text/plain body and a PNG image - // as a file attachment. - // Consult the MSDN website for more details on the System.Net.Mail.Mailmessage class. - static MailMessage CreateSimpleMailMessage() { - MailMessage message = new MailMessage(); - - message.From = new MailAddress("someone@someplace.com"); - message.To.Add("john.doe@someplace.com"); - - message.Subject = "This is just a test!"; - message.Body = "This is the text/plain body. An additional HTML body " + - "can optionally be attached as an alternate view"; - - // Add the attachment. - Attachment attachment = new Attachment("some_image.png", "image/png"); - attachment.Name = "my_attached_image.png"; - message.Attachments.Add(attachment); - - return message; - } - - - - - - Stores the specified mail messages on the IMAP server. - - An enumerable collection of mail messages to store on the - server. - Set this to true to set the \Seen flag for each message on the - server. - The mailbox the messages will be stored in. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to store - the messages in. - An enumerable collection of unique identifiers (UID) representing the stored - messages on the server. - The messages parameter is null. - The mail messages could not be stored. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - A unique identifier (UID) is a 32-bit value assigned to each message which uniquely - identifies the message within the respective mailbox. No two messages in a mailbox share - the same UID. - - - - - Retrieves the mail header for the mail message with the specified unique identifier (UID). - - The UID of the mail message to retrieve the mail header for. - Set this to true to set the \Seen flag for the fetched messages on the - server. - The mailbox the messages will be retrieved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - A string containing the raw mail header of the mail message with the specified - UID. - The mail header could not be fetched. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - Retrieves the body structure for the mail message with the specified unique identifier (UID). - - The UID of the mail message to retrieve the body structure for. - The mailbox the messages will be retrieved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - A string containing the raw body structure of the mail message with the specified - UID. - The body structure could not be fetched. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - A body structure is a textual description of the layout of a mail message. It is - described in some detail in RFC 3501 under 7.4.2 FETCH response. - - - - Retrieves the MIME body-part with the specified part number of the multipart message with - the specified unique identifier (UID). - - The UID of the mail message to retrieve a MIME body part for. - The part number of the body part to fetch. - Set this to true to set the \Seen flag for the fetched messages on the - server. - The mailbox the messages will be retrieved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - A string containing the specified body part of the mail message with the specified - UID. - The body part could not be fetched. The message - property of the exception contains the error message returned by the server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - Retrieves the raw MIME/RFC822 mail message data for the mail message with the specified UID. - - The UID of the mail message to retrieve as a MIME/RFC822 string. - Set this to true to set the \Seen flag for the fetched message on the - server. - The mailbox the message will be retrieved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - A string containing the raw MIME/RFC822 data of the mail message with the - specified UID. - The mail message data could not be fetched. - The message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - Retrieves the highest UID in the specified mailbox. - - The mailbox to find the highest UID for. If this parameter is null, - the value of the DefaultMailbox property is used to determine the mailbox to operate - on. - The highest unique identifier value (UID) in the mailbox. - The UID could not be determined. The message - property of the exception contains the error message returned by the server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - The highest UID usually corresponds to the newest message in a mailbox. - - - - Copies the mail message with the specified UID to the specified destination mailbox. - - The UID of the mail message to copy. - The name of the mailbox to copy the message to. - The mailbox the message will be copied from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - The destination parameter is null. - The mail message could not be copied to the - specified destination. The message property of the exception contains the error message - returned by the server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - - Copies the mail messages with the specified UIDs to the specified destination mailbox. - - An enumerable collection of UIDs of the mail messages to copy. - The name of the mailbox to copy the messages to. - The mailbox the message will be copied from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - When copying many messages, this method is more efficient than calling - for each individual message. - The uids parameter or the destination parameter is - null. - The specified collection of UIDs is empty. - The mail messages could not be copied to the - specified destination. The message property of the exception contains the error message - returned by the server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - - Moves the mail message with the specified UID to the specified destination mailbox. - - The UID of the mail message to move. - The name of the mailbox to move the message into. - The mailbox the message will be moved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - The destination parameter is null. - The mail message could not be moved to the - specified destination. The message property of the exception contains the error message - returned by the server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - - - Moves the mail messages with the specified UIDs to the specified destination mailbox. - - An enumerable collection of UIDs of the mail messages to move. - The name of the mailbox to move the messages into. - The mailbox the messages will be moved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - When moving many messages, this method is more efficient than calling - for each individual message. - The uids parameter or the destination parameter is - null. - The mail messages could not be moved to the - specified destination. The message property of the exception contains the error message - returned by the server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - - - Deletes the mail message with the specified UID. - - The UID of the mail message to delete. - The mailbox the message will be deleted from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - The mail message could not be deleted. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - - Deletes the mail messages with the specified UIDs. - - An enumerable collection of UIDs of the mail messages to delete. - The mailbox the messages will be deleted from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - When deleting many messages, this method is more efficient than calling - for each individual message. - The uids parameter is null. - The specified collection of UIDs is empty. - The mail messages could not be deleted. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - - Retrieves the IMAP message flag attributes for the mail message with the specified unique - identifier (UID). - - The UID of the mail message to retrieve the flag attributes for. - The mailbox the message will be retrieved from. If this parameter is - omitted, the value of the DefaultMailbox property is used to determine the mailbox to - operate on. - An enumerable collection of message flags set for the message with the specified - UID. - The mail message flags could not be retrieved. - The message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - - - - - - - Sets the IMAP message flag attributes for the mail message with the specified unique - identifier (UID). - - The UID of the mail message to set the flag attributes for. - The mailbox that contains the mail message. If this parameter is null, - the value of the DefaultMailbox property is used to determine the mailbox to operate - on. - One or multiple message flags from the MessageFlag enumeration. - The mail message flags could not be set. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - This method replaces the current flag attributes of the message with the specified - new flags. If you wish to retain the old attributes, use the - method instead. - - - - - - - Adds the specified set of IMAP message flags to the existing flag attributes of the mail - message with the specified unique identifier (UID). - - The UID of the mail message to add the flag attributes to. - The mailbox that contains the mail message. If this parameter is null, - the value of the DefaultMailbox property is used to determine the mailbox to operate - on. - One or multiple message flags from the MessageFlag enumeration. - The mail message flags could not be added. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - This method adds the specified set of flags to the existing set of flag attributes - of the message. If you wish to replace the old attributes, use the - method instead. - - - - - - - Removes the specified set of IMAP message flags from the existing flag attributes of the - mail message with the specified unique identifier (UID). - - The UID of the mail message to remove the flag attributes for. - The mailbox that contains the mail message. If this parameter is null, - the value of the DefaultMailbox property is used to determine the mailbox to operate - on. - One or multiple message flags from the MessageFlag enumeration. - The mail message flags could not be removed. - The message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The method was called in non-authenticated - state, i.e. before logging in. - This method removes the specified set of flags from the existing set of flag - attributes of the message. If you wish to replace the old attributes, use the - method instead. - - - - - - - Starts receiving of IMAP IDLE notifications from the IMAP server. - - An unexpected program condition occured. - The IDLE operation could not be completed. The - message property of the exception contains the error message returned by the - server. - The server does not support the IMAP4 IDLE - command. - There was a failure writing to or reading from the - network. - The ImapClient object has been disposed. - The method was called in non-authenticated - state, i.e. before logging in. - Calling this method when already receiving idle notifications has no - effect. - - - - - - - Stops receiving IMAP IDLE notifications from the IMAP server. - - The IDLE operation could not be completed. The - message property of the exception contains the error message returned by the - server. - The server does not support the IMAP4 IDLE - command. - There was a failure writing to or reading from the - network. - The ImapClient object has been disposed. - The method was called in non-authenticated - state, i.e. before logging in. - Calling this method when not receiving idle notifications has no effect. - - - - - - Temporarily pauses receiving IMAP IDLE notifications from the IMAP server. - - The IDLE operation could not be completed. The - message property of the exception contains the error message returned by the - server. - The server does not support the IMAP4 IDLE - command. - There was a failure writing to or reading from the - network. - The ImapClient object has been disposed. - The method was called in non-authenticated - state, i.e. before logging in. - To resume receiving IDLE notifications ResumeIdling must be called. - - - - - - - Resumes receiving IMAP IDLE notifications from the IMAP server. - - An unexpected program condition occured. - The IDLE operation could not be completed. The - message property of the exception contains the error message returned by the - server. - The server does not support the IMAP4 IDLE - command. - There was a failure writing to or reading from the - network. - The ImapClient object has been disposed. - The method was called in non-authenticated - state, i.e. before logging in. - - - - - The main idle loop. Waits for incoming IMAP IDLE notifications and dispatches - them as events. This runs in its own thread whenever IMAP IDLE - notifications are being received. - - - - - Blocks on a queue and wakes up whenever a new notification is put into the queue. The - notification is then examined and dispatched as an event. - - - - - Issues a NOOP command to the IMAP server. Called in the context of a System.Timer event - when IDLE notifications are being received. - - This is needed by the IMAP IDLE mechanism to give the server an indication that the - connection is still active. - - - - - Retrieves IMAP QUOTA information for the specified mailbox. - - The mailbox to retrieve QUOTA information for. If this parameter is - null, the value of the DefaultMailbox property is used to determine the mailbox to operate - on. - An enumerable collection of MailboxQuota objects describing usage and limits of the - quota roots for the mailbox. - The quota operation could not be completed. The - message property of the exception contains the error message returned by the - server. - The ImapClient object has been disposed. - There was a failure writing to or reading from the - network. - The IMAP4 QUOTA extension is not supported by - the server. - The method was called in non-authenticated - state, i.e. before logging in. - - - - Releases all resources used by the current instance of the ImapClient class. - - - - - Releases all resources used by the current instance of the ImapClient class, optionally - disposing of managed resource. - - true to dispose of managed resources, otherwise false. - - - - Asserts the instance has not been disposed of and is in a valid state. - - The ImapClient object has been - disposed. - The method was called in non-authenticated - state, i.e. before logging in. - - - - The default mailbox to operate on. - - The property is being set and the value is - null. - The property is being set and the value is the empty - string. - The default value for this property is "INBOX" which is a special name reserved - to mean "the primary mailbox for this user on this server". - - - - Determines whether the client is authenticated with the server. - - - - - The event that is raised when a new mail message has been received by the server. - - To probe a server for IMAP IDLE support, the - method can be used, specifying "IDLE" for the capability parameter. - - Please note that the event handler will be executed on a threadpool thread. - - - This example demonstrates how to receive IMAP IDLE notifications. - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe", - "My_Password", true, AuthMethod.Login); - - // Make sure our server actually supports IMAP IDLE. - if(!Client.Supports("IDLE")) - throw new Exception("This server does not support IMAP IDLE"); - - // Our event handler will be called whenever a new message is received - // by the server. - Client.NewMessage += new EventHandler<IdleMessageEventArgs>(OnNewMessage); - - // ......... - - Client.Dispose(); - - // ........ - - void OnNewMessage(object sender, IdleMessageEventArgs e) { - Console.WriteLine("Received a new message!"); - Console.WriteLine("Total number of messages in the mailbox: " + - e.MessageCount); - } - - - - - - The event that is raised when a message has been deleted on the server. - - To probe a server for IMAP IDLE support, the - method can be used, specifying "IDLE" for the capability parameter. - - Please note that the event handler will be executed on a threadpool thread. - - - This example demonstrates how to receive IMAP IDLE notifications. - - ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_UsernamMe", - "My_Password", true, AuthMethod.Login); - - // Make sure our server actually supports IMAP IDLE. - if(!Client.Supports("IDLE")) - throw new Exception("This server does not support IMAP IDLE"); - - // Our event handler will be called whenever a message is deleted on the server. - Client.MessageDeleted += new EventHandler<IdleMessageEventArgs>(OnMessageDeleted); - - // ......... - - // Don't forget to dispose the client once you're done with it. - Client.Dispose(); - - // ........ - - void OnMessageDeleted(object sender, IdleMessageEventArgs e) { - Console.WriteLine("A mail message was deleted on the server!"); - Console.WriteLine("Total number of mail messages in the mailbox: " + - e.MessageCount); - } - - - - - - The event that is raised when an I/O exception occurs in the idle-thread. - - - An I/O exception can occur if the underlying network connection has been reset or the - server unexpectedly closed the connection. - - - - - A delegate which is invoked during a call to GetMessage or GetMessages for every MIME part in - a multipart mail message. The delegate can examine the MIME body part and decide to either - include it in the returned mail message or dismiss it. - - A MIME body part of a mail message which consists of multiple parts. - true to include the body part in the returned MailMessage object, or false to skip - it. - - - - The exception that is thrown when an unexpected response is received from the server. - - - - - Initializes a new instance of the BadServerResponseException class - - - - - Initializes a new instance of the BadServerResponseException class with its message - string set to . - - A description of the error. The content of message is intended - to be understood by humans. - - - - Initializes a new instance of the BadServerResponseException class with its message - string set to and a reference to the inner exception that - is the cause of this exception. - - A description of the error. The content of message is intended - to be understood by humans. - The exception that is the cause of the current exception. - - - - Initializes a new instance of the BadServerResponseException class with the specified - serialization and context information. - - An object that holds the serialized object data about the exception - being thrown. - An object that contains contextual information about the source - or destination. - - - - The exception that is thrown when the supplied credentials were rejected by the server. - - - - - Initializes a new instance of the InvalidCredentialsException class - - - - - Initializes a new instance of the InvalidCredentialsException class with its message - string set to . - - A description of the error. The content of message is intended - to be understood by humans. - - - - Initializes a new instance of the InvalidCredentialsException class with its message - string set to and a reference to the inner exception that - is the cause of this exception. - - A description of the error. The content of message is intended - to be understood by humans. - The exception that is the cause of the current exception. - - - - Initializes a new instance of the InvalidCredentialsException class with the specified - serialization and context information. - - An object that holds the serialized object data about the exception - being thrown. - An object that contains contextual information about the source - or destination. - - - - The exception that is thrown when a client has not authenticated with the server and - attempts to call a method which can only be called when authenticated. - - - - - Initializes a new instance of the NotAuthenticatedException class - - - - - Initializes a new instance of the NotAuthenticatedException class with its message - string set to . - - A description of the error. The content of message is intended - to be understood by humans. - - - - Initializes a new instance of the NotAuthenticatedException class with its message - string set to and a reference to the inner exception that - is the cause of this exception. - - A description of the error. The content of message is intended - to be understood by humans. - The exception that is the cause of the current exception. - - - - Initializes a new instance of the NotAuthenticatedException class with the specified - serialization and context information. - - An object that holds the serialized object data about the exception - being thrown. - An object that contains contextual information about the source - or destination. - - - - Provides access to status information such as the total number of messages and quota - information for a mailbox. - - - The terms "mailbox" and "folder" can be used interchangeably and refer to the IMAP concept of - multiple server-side directories into which messages can be stored (such as "Inbox", - "Sent Items", "Trash", etc.). - - - - - Initializes a new instance of the MailboxInfo class with the specified values. - - The IMAP name of the mailbox. - The IMAP flags set on this mailbox. - The number of messages in the mailbox. - The number of unread messages in the mailbox. - The next unique identifier (UID) of the mailbox. - The amount of used storage of the mailbox, in bytes. - The amount of free storage of the mailbox, in bytes. - - - - Returns the name of the mailbox. - - The name of the mailbox - - - - The name of the mailbox. - - - - - An enumerable collection of flags set on the mailbox. - - - - - The total number of messages in the mailbox. - - - - - The number of unread (unseen) messages in the mailbox. - - - - - The next unique identifier value of the mailbox. - - - - - The amount of used storage in the mailbox, measured in bytes. - - Not all IMAP servers support the retrieval of quota information. If it is not - possible to retrieve the amount of used storage, this property will be 0. - - - - - The amount of free storage in the mailbox, measured in bytes. - - Not all IMAP servers support the retrieval of quota information. If it is not - possible to retrieve the amount of free storage, this property will be 0. - - - - - Defines possible attributes for mailboxes. - - - - An IMAP mailbox can have a number of flags (read: attributes) set on it, indicating its - designated purpose (such as "Spam" or "Drafts"). - - - This is especially convenient when dealing with international mailbox names, because, by - examining the associated flags, the mailbox purpose can be determined, even if the mailbox - name provides no useful indication. - - - Unfortunately, as with many things IMAP, reporting the flags described here is an optional - extension (XLIST) to the IMAP protocol and as such may or may not be supported by an IMAP - server. - - - - - - The mailbox presents a view on all messages in the user's message store. - - - - - The mailbox is used to archive messages. The meaning of an "archival" mailbox is server - dependent. - - - - - The mailbox is used to hold draft messages, typically these are messages that are being - composed but have not yet been sent. - - - - - The mailbox is used to hold copies of messages that have been sent. - - - - - The mailbox is where messages deemed to be junk mail (spam) are held. - - - - - The mailbox is used to hold messages that have been deleted or marked for deletion. - - - - - Represents an IMAP QUOTA entry for a resource which typically consists of a resource name, - the current usage of the resource, and the resource limit. - - - - - Initializes a new instance of the MailboxQuota class with the specified values. - - The name of the resource this MailboxQuota instance describes. - The current usage of the resource in units of 1024 bytes. - The limit of the resource in units of 1024 bytes. - - - - The name of the resource this MailboxQuota instance describes. - - - - - The current usage of the resource this MailboxQuota instance describes, in bytes. - - - - - The limit of the resource this MailboxQuota instance describes, in bytes. - - - - - Represents the status information of a mailbox which can be constructed from the server - response to a STATUS command. - - - - - Initializes a new MailboxStatus instance with the specified number of total and unread - messages. - - The total number of messages in the mailbox. - The number of unread (unseen) messages in the mailbox. - The next unique identifier value of the mailbox - - - - The next unique identifier value of the mailbox. - - - - - The total number of messages in the mailbox. - - - - - The number of unread (unseen) messages in the mailbox. - - - - - Adds extension methods to the MailMessage class of the .NET Framework. - - - Most of the methods are only used internally and are not visible outside of the - S22.Imap assembly. - - - - - Returns the date and time the mail message was composed. - - The MailMessage instance to return the date and time for. - The date and time the mail message was composed, or null if the mail message - does not contain any date information. - - - - Constructs a textual representation of a mail message from the specified MailMessage - instance compliant with the RFC822 and MIME standards. - - The MailMessage instance to construct the textual representation - from. - An RFC822/MIME-compliant string representing the specified mail message. - The From property is null or has not been - properly initialized. - - - - Builds a RFC822/MIME-compliant mail header from the specified MailMessage instance and - returns it as a NameValueCollection. - - The MailMessage instance to build the header from. - A NameValueCollection representing the RFC822/MIME mail header fields. - - - - A map for mapping the values of the MailPriority enumeration to their corresponding MIME - priority values as defined in RFC2156. - - - - - A map for mapping the values of the MailPriority enumeration to their corresponding MIME - importance values as defined in RFC2156. - - - - - Takes a unicode string and encodes it using Q-encoding. - - The string to encode. - The input string encoded as Q-encoded string containing only ASCII - characters. - - - - Takes a unicode string and encodes it using Base64-encoding. - - The string to encode. - The input string encoded as Base64-encoded string containing only ASCII - characters. - - - - Creates an address string from the specified MailAddress instance in compliance with the - address specification as outlined in RFC2822 under section 3.4 - - The MailAddress instance to create the address string from. - An address string as is used in RFC822 mail headers. - - - - Generates a unique sequence of characters for indicating a boundary between parts in a - multipart message. - - A unique content boundary string. - - - - Builds an RFC822/MIME-compliant mail body from the specified MailMessage instance and - returns it as a formatted string. - - The MailMessage instance to build the mail body from. - The RFC822/MIME mail header to use for constructing the mail - body. - An RFC822/MIME-compliant mail body as a string. - According to RFC2822 each line of a mail message should at max be 78 characters in - length excluding carriage return and newline characters. This method accounts for that and - ensures line breaks are inserted to meet this requirement. - - - - Adds a body part to the specified Stringbuilder object composed from the Body and - BodyEncoding properties of the MailMessage class. - - The Stringbuilder to append the body part to. - The MailMessage instance to build the body part from. - The RFC822/MIME mail header to use for constructing the mail body. - Set to true to append body headers before adding the actual body - part content. - - - - Creates a MIME body part from an entry of the AlternateView or Attachments collection of a - MailMessage instance and appends it to the specified Stringbuilder instance. - - The Stringbuilder instance to append the body part to. - An entry from either the AlternateView or the Attachments collection of - a MailMessage instance. - - - - Creates a nested multipart/alternative part which contains all entries from the - AlternateViews collection of the specified MailMessage instance as well as the body part - for the Body and BodyEncoding properties of the specified MailMessage instance. - - The StringBuilder instance to append to. - The MailMessage instance whose AlternateView collection will be added to the - nested multipart/alternative part. - The RFC822/MIME mail header to use for constructing the mail body. - This is used if the MailMessage instance contains both alternative views and - attachments. In this case the created RFC822/MIME mail message will contain nested body - parts. - - - - Creates a nested multipart/mixed part which contains all entries from the Attachments - collection of the specified MailMessage instance. - - The StringBuilder instance to append to. - The MailMessage instance whose Attachments collection will be added to the - nested multipart/mixed part. - This is used if the MailMessage instance contains both alternative views and - attachments. In this case the created RFC822/MIME mail message will contain nested body - parts. - - - - A helper class for reading mail message data and building a MailMessage instance out of it. - - - - - Creates a new empty instance of the MailMessage class from a string containing a raw mail - message header. - - The mail header to create the MailMessage instance from. - A MailMessage instance with initialized Header fields but without any - content. - - - - Creates a new instance of the MailMessage class from a string containing raw RFC822/MIME - mail message data. - - The mail message data to create the MailMessage instance from. - An initialized instance of the MailMessage class. - This is used when fetching entire messages instead of the partial-fetch mechanism - because it saves redundant round-trips to the server. - - - - Parses the mail header of a mail message and returns it as a NameValueCollection. - - The mail header to parse. - A NameValueCollection containing the header fields as keys with their respective - values as values. - - - - Strips RFC822/MIME comments from the specified string. - - The string to strip comments from. - A new string stripped of any comments. - - - - Parses a MIME header field which can contain multiple 'parameter = value' - pairs (such as Content-Type: text/html; charset=iso-8859-1). - - The header field to parse. - A NameValueCollection containing the parameter names as keys with the respective - parameter values as values. - The value of the actual field disregarding the 'parameter = value' pairs is stored - in the collection under the key "value" (in the above example of Content-Type, this would - be "text/html"). - - - - Parses a mail header address-list field such as To, Cc and Bcc which can contain multiple - email addresses. - - The address-list field to parse - An array of MailAddress objects representing the parsed mail addresses. - - - - Splits the specified address-list into individual parts consisting of a mail address and - optionally a display-name. - - The address-list to split into parts. - An enumerable collection of parts. - - - - Parses a mail message identifier from a string. - - The field to parse the message id from - The field argument does not contain a valid message - identifier. - The parsed message id. - A message identifier (msg-id) is a globally unique identifier for a - message. - - - - Parses the priority of a mail message which can be specified as part of the header - information. - - The mail header priority value. The value can be null in which case - a "normal priority" is returned. - A value from the MailPriority enumeration corresponding to the specified mail - priority. If the passed priority value is null or invalid, a normal priority is assumed and - MailPriority.Normal is returned. - - - - Sets the address fields (From, To, CC, etc.) of a MailMessage object using the specified - mail message header information. - - The MailMessage instance to operate on. - A collection of mail and MIME headers. - - - - Adds a body part to an existing MailMessage instance. - - Extension method for the MailMessage class. - The body part to add to the MailMessage instance. - The content of the body part. - - - - Creates an instance of the Attachment class used by the MailMessage class to store mail - message attachments. - - The MIME body part to create the attachment from. - An array of bytes composing the content of the attachment. - An initialized instance of the Attachment class. - - - - Creates an instance of the AlternateView class used by the MailMessage class to store - alternate views of the mail message's content. - - The MIME body part to create the alternate view from. - An array of bytes composing the content of the alternate view. - An initialized instance of the AlternateView class. - - - - Parses the body part of a MIME/RFC822 mail message. - - The body of the mail message. - The header of the mail message whose body will be parsed. - An array of initialized MIMEPart instances representing the body parts of the mail - message. - - - - Parses the body of a multipart MIME mail message. - - An instance of the StringReader class initialized with a string - containing the body of the mail message. - The boundary value as is present as part of the Content-Type header - field in multipart mail messages. - An array of initialized MIMEPart instances representing the various parts of the - MIME mail message. - - - - Glue method to create a bodypart from a MIMEPart instance. - - The MIMEPart instance to create the bodypart instance from. - An initialized instance of the Bodypart class. - - - - Defines possible attributes for mail messages on an IMAP server. - - - - - Indicates that the message has been read. - - - - - Indicates that the message has been answered. - - - - - Indicates that the message is "flagged" for urgent/special attention. - - - - - Indicates that the message has been marked as "deleted" and will be removed upon the next - call to the Expunge method. - - - - - Indicates that the message has not completed composition and is marked as a draft. - - - - - Indicates that the message has recently arrived in the mailbox. - - - - - Represents a part of a MIME multi-part message. Each part consists of its own content header - and a content body. - - - - - A collection containing the content header information as key-value pairs. - - - - - A string containing the content body of the part. - - - - - A thread-safe Queue. - - - - - Adds an object to the end of the queue. - - The object to add to the queue. - - - - Removes and returns the object at the beginning of the queue. If the queue is empty, the - method blocks the calling thread until an object is put into the queue by another thread. - - The object that was removed from the beginning of the queue. - - - - Adds extension methods to the BinaryReader class to simplify the - deserialization of NTLM messages. - - - - - Reads an ASCII-string of the specified length from this instance. - - Extension method for the BinaryReader class. - The number of bytes to read from the underlying - stream. - A string decoded from the bytes read from the underlying - stream using the ASCII character set. - - - - The NTLM flags which are contained in a bitfield within the header of - an NTLM message. - - - - - 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. - - - - - 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's usage has not been identified. - - - - - Indicates that NTLM authentication is being used. - - - - - 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. - - - - - Indicates that the NTLM2 signing and sealing scheme should be used for - protecting authenticated communications. Note that this refers to a - particular session security scheme, and is not related to the use of - NTLMv2 authentication. This flag can, however, have an effect on the - response calculations. - - - - - This flag's usage has not been identified. - - - - - This flag's usage has not been identified. - - - - - This flag's usage has not been identified. - - - - - 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. - - - - - 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. - - - - - Represents the data contained in the target information block of an - NTLM type 2 message. - - - - - The server name. - - - - - The domain name. - - - - - The fully-qualified DNS host name. - - - - - The fully-qualified DNS domain name. - - - - - Describes the different versions of the Type 2 message that have - been observed. - - - - - The version is unknown. - - - - - This form is seen in older Win9x-based systems. - - - - - This form is seen in most out-of-box shipping versions of Windows. - - - - - This form was introduced in a relatively recent Service Pack, and - is seen on currently-patched versions of Windows 2000, Windows XP, - and Windows 2003. - - - - - Indicates the type of data in Type 2 target information blocks. - - - - - Signals the end of the target information block. - - - - - The data in the information block contains the server name. - - - - - The data in the information block contains the domain name. - - - - - The data in the information block contains the DNS hostname. - - - - - The data in the information block contans the DNS domain name. - - - - - Computes the MD4 hash value for the input data. - Courtesy of Keith Wood. - - - - - Describes the different types of NTLM messages. - - - - - An NTLM type 1 message is the initial client response to the - server. - - - - - An NTLM type 2 message is the challenge sent by the server in - response to an NTLM type 1 message. - - - - - An NTLM type 3 message is the challenge response sent by the client - in response to an NTLM type 2 message. - - - - - Indicates the version and build number of the operating system. - - - - - Default constructor. - - - - - Creates a new instance of the OSVersion class using the specified - values. - - The major version of the operating - system. - The minor version of the operating - system. - The build number of the operating systen. - - - - Serializes this instance of the OSVersion class to an array of - bytes. - - An array of bytes representing this instance of the OSVersion - class. - - - - The major version number of the operating system. - - - - - The minor version number of the operating system. - - - - - The build number of the operating system. - - - - - Contains methods for calculating the various Type 3 challenge - responses. - - - - - Computes the LM-response to the challenge sent as part of an - NTLM type 2 message. - - The challenge sent by the server. - The user account password. - An array of bytes representing the response to the - specified challenge. - - - - Computes the NTLM-response to the challenge sent as part of an - NTLM type 2 message. - - The challenge sent by the server. - The user account password. - An array of bytes representing the response to the - specified challenge. - - - - Computes the NTLMv2-response to the challenge sent as part of an - NTLM type 2 message. - - The name of the authentication target. - The user account name to authenticate with. - The user account password. - The target information block from - the NTLM type 2 message. - The challenge sent by the server. - A random 8-byte client nonce. - An array of bytes representing the response to the - specified challenge. - - - - Computes the LMv2-response to the challenge sent as part of an - NTLM type 2 message. - - The name of the authentication target. - The user account to authenticate with. - The user account password. - The challenge sent by the server. - A random 8-byte client nonce. - An array of bytes representing the response to the - specified challenge. - - - - Creates the LM Hash of the specified password. - - The password to create the LM Hash of. - The LM Hash of the given password, used in the calculation - of the LM Response. - Thrown if the password argument - is null. - - - - Creates a DES encryption key from the specified key material. - - The key material to create the DES encryption - key from. - An offset into the byte array at which to - extract the key material from. - A 56-bit DES encryption key as an array of bytes. - - - - Applies odd parity to the specified byte array. - - The byte array to apply odd parity to. - A reference to the byte array. - - - - Creates the LM Response from the specified hash and Type 2 challenge. - - An LM or NTLM hash. - The server challenge from the Type 2 - message. - The challenge response as an array of bytes. - Thrown if the hash or the - challenge parameter is null. - - - - Creates the NTLM Hash of the specified password. - - The password to create the NTLM hash of. - The NTLM hash for the specified password. - Thrown if the password - parameter is null. - - - - Creates the NTLMv2 Hash of the specified target, username - and password values. - - The name of the authentication target as is - specified in the target name field of the NTLM type 3 message. - The user account name. - The password for the user account. - The NTLMv2 hash for the specified input values. - Thrown if the username or - the password parameter is null. - - - - Returns the current time as the number of tenths of a microsecond - since January 1, 1601. - - The current time as the number of tenths of a microsecond - since January 1, 1601. - - - - Creates the "blob" data block which is part of the NTLMv2 challenge - response. - - The target information block from - the NTLM type 2 message. - A random 8-byte client nonce. - The blob, used in the calculation of the NTLMv2 Response. - - - - Creates the LMv2 Response from the given NTLMv2 hash, client data, and - Type 2 challenge. - - The NTLMv2 Hash. - The client data (blob or client nonce). - The server challenge from the Type 2 message. - The response which is either for NTLMv2 or LMv2, depending - on the client data. - - - - Represents an NTLM security buffer, which is a structure used to point - to a buffer of binary data within an NTLM message. - - - - - Creates a new instance of the SecurityBuffer class using the specified - values. - - The length of the buffer described by this instance - of the SecurityBuffer class. - The offset at which the buffer starts, in bytes. - Thrown if the length value exceeds - the maximum value allowed. The security buffer structure stores the - length value as a 2-byte short value. - - - - Creates a new instance of the SecurityBuffer class using the specified - values. - - The data of the buffer described by this instance - of the SecurityBuffer class. - The offset at which the buffer starts, in bytes. - Thrown if the length of the data - buffer exceeds the maximum value allowed. The security buffer structure - stores the buffer length value as a 2-byte short value. - - - - Serializes this instance of the SecurityBuffer into an array of bytes. - - A byte array representing this instance of the SecurityBuffer - class. - - - - The length of the buffer content in bytes (may be zero). - - - - - The allocated space for the buffer in bytes (typically the same as - the length). - - - - - The offset from the beginning of the NTLM message to the start of - the buffer, in bytes. - - - - - Represents an NTLM Type 1 Message. - - - - - The NTLM message signature which is always "NTLMSSP". - - - - - The NTML message type which is always 1 for an NTLM Type 1 message. - - - - - Creates a new instance of the Type1Message class using the specified - domain and workstation names. - - The domain in which the client's workstation has - membership. - The client's workstation name. - Thrown if the domain or the - workstation parameter is null. - Thrown if the domain - or the workstation name exceeds the maximum allowed string - length. - The domain as well as the workstation name is restricted - to ASCII characters and must not be longer than 65536 characters. - - - - - Serializes this instance of the Type1 class to an array of bytes. - - An array of bytes representing this instance of the Type1 - class. - - - - The NTLM flags set on this instance. - - - - - The supplied domain name as an array of bytes in the ASCII - range. - - - - - The offset within the message where the domain name data starts. - - - - - The supplied workstation name as an array of bytes in the - ASCII range. - - - - - The offset within the message where the workstation name data starts. - - - - - The length of the supplied workstation name as a 16-bit short value. - - - - - Contains information about the client's OS version. - - - - - Represents an NTLM Type 2 Message. - - - - - The NTLM message signature which is always "NTLMSSP". - - - - - The NTML message type which is always 2 for an NTLM Type 2 message. - - - - - Private constructor. - - - - - Deserializes a Type 2 message instance from the specified buffer - of bytes. - - The buffer containing a sequence of bytes - representing an NTLM Type 2 message. - An initialized instance of the Type2 class. - Thrown if an error occurs - during deserialization of the Type 2 message. - - - - Determines the version of an NTLM type 2 message. - - The target offset field of the NTLM - type 2 message. - A value from the Type2Version enumeration. - - - - Reads the OS information data present in version 3 of an NTLM - type 2 message from the specified BinaryReader. - - The BinaryReader instance to read from. - An initialized instance of the OSVersion class. - - - - Reads the target information data present in version 2 and 3 of - an NTLM type 2 message from the specified BinaryReader. - - The BinaryReader instance to read from. - An initialized instance of the Type2TargetInformation - class. - - - - Retrieves the target name from the specified byte array. - - A byte array containing the target name. - If true the target name will be decoded - using UTF-16 unicode encoding. - - - - - The challenge is an 8-byte block of random data. - - - - - The target name of the authentication target. - - - - - The NTLM flags set on this message. - - - - - The SSPI context handle when a local call is being made, - otherwise null. - - - - - Contains the data present in the OS version structure. - - - - - The version of this Type 2 message instance. - - - - - Contains the data present in the target information block. - - - - - Contains the raw data present in the target information block. - - - - - Represents an NTLM Type 3 Message. - - - - - The NTLM message signature which is always "NTLMSSP". - - - - - The NTML message type which is always 3 for an NTLM Type 3 message. - - - - - Creates a new instance of an NTLM type 3 message using the specified - values. - - The Windows account name to use for - authentication. - The Windows account password to use for - authentication. - The challenge received from the server as part - of the NTLM type 2 message. - The client's workstation name. - Set to true to send an NTLMv2 challenge - response. - The authentication realm in which the - authenticating account has membership. - The target information block from - the NTLM type 2 message. - The target name is a domain name for domain accounts, or - a server name for local machine accounts. All security buffers will - be encoded as Unicode. - - - - Creates a new instance of an NTLM type 3 message using the specified - values. - - The Windows account name to use for - authentication. - The Windows account password to use for - authentication. - The challenge received from the server as part - of the NTLM type 2 message. - Set this to true, if Unicode encoding has been - negotiated between client and server. - The client's workstation name. - Set to true to send an NTLMv2 challenge - response. - The authentication realm in which the - authenticating account has membership. - The target information block from - the NTLM type 2 message. - The target name is a domain name for domain accounts, or - a server name for local machine accounts. - Thrown if the username, password - or challenge parameters are null. - - - - Serializes this instance of the Type3 class to an array of bytes. - - An array of bytes representing this instance of the Type3 - class. - - - - Returns a random 8-byte cnonce value. - - A random 8-byte cnonce value. - - - - The NTLM flags set on this instance. - - - - - The "Lan Manager" challenge response. - - - - - The offset at which the LM challenge response data starts. - - - - - The NTLM challenge response. - - - - - The offset at which the NTLM challenge response data starts. - - - - - The authentication realm in which the authenticating account - has membership. - - - - - The offset at which the target name data starts. - - - - - The authenticating account name. - - - - - The offset at which the username data starts. - - - - - The client workstation's name. - - - - - The offset at which the client workstation's name data starts. - - - - - The session key value which is used by the session security mechanism - during key exchange. - - - - - The offset at which the session key data starts. - - - - - Contains the data present in the OS version structure. - - - - - The encoding used for transmitting the contents of the various - security buffers. - - - - - Implements the Sasl Cram-Md5 authentication method as described in - RFC 2195. - - - - - Private constructor for use with Sasl.SaslFactory. - - - - - Creates and initializes a new instance of the SaslCramMd5 class - using the specified username and password. - - The username to authenticate with. - The plaintext password to authenticate - with. - Thrown if the username - or the password parameter is null. - Thrown if the username - parameter is empty. - - - - Computes the client response to the specified Cram-Md5 challenge. - - The challenge sent by the server - The response to the Cram-Md5 challenge. - Thrown if the response could not - be computed. - - - - True if the authentication exchange between client and server - has been completed. - - - - - The IANA name for the Cram-Md5 authentication mechanism as described - in RFC 2195. - - - - - The username to authenticate with. - - - - - The password to authenticate with. - - - - - Implements the Sasl Cram-Md5 authentication method as described in - RFC 2831. - - - - - The client nonce value used during authentication. - - - - - Cram-Md5 involves several steps. - - - - - Private constructor for use with Sasl.SaslFactory. - - - - - Internal constructor used for unit testing. - - The username to authenticate with. - The plaintext password to authenticate - with. - The client nonce value to use. - Thrown if the username - or the password parameter is null. - Thrown if the username - parameter is empty. - - - - Creates and initializes a new instance of the SaslDigestMd5 class - using the specified username and password. - - The username to authenticate with. - The plaintext password to authenticate - with. - Thrown if the username - or the password parameter is null. - Thrown if the username - parameter is empty. - - - - Computes the client response to the specified Digest-Md5 challenge. - - The challenge sent by the server - The response to the Digest-Md5 challenge. - Thrown if the response could not - be computed. - - - - Parses the challenge string sent by the server in response to a Digest-Md5 - authentication request. - - The challenge sent by the server as part of - "Step One" of the Digest-Md5 authentication mechanism. - An initialized NameValueCollection instance made up of the - attribute/value pairs contained in the challenge. - Thrown if the challenge parameter - is null. - Refer to RFC 2831 section 2.1.1 for a detailed description of the - format of the challenge sent by the server. - - - - Computes the "response-value" hex-string which is part of the - Digest-MD5 challenge-response. - - A collection containing the attributes - and values of the challenge sent by the server. - The cnonce value to use for computing - the response-value. - The "digest-uri" string to use for - computing the response-value. - The username to use for computing the - response-value. - The password to use for computing the - response-value. - A string containing a hash-value which is part of the - response sent by the client. - Refer to RFC 2831, section 2.1.2.1 for a detailed - description of the computation of the response-value. - - - - Calculates the MD5 hash value for the specified string. - - The string to calculate the MD5 hash value for. - The encoding to employ for encoding the - characters in the specified string into a sequence of bytes for - which the MD5 hash will be calculated. - An MD5 hash as a 32-character hex-string. - Thrown if the input string - is null. - - - - Encloses the specified string in double-quotes. - - The string to enclose in double-quote characters. - The enclosed string. - - - - Generates a random cnonce-value which is a "client-specified data string - which must be different each time a digest-response is sent". - - A random "cnonce-value" string. - - - - True if the authentication exchange between client and server - has been completed. - - - - - The IANA name for the Digest-Md5 authentication mechanism as described - in RFC 2195. - - - - - The username to authenticate with. - - - - - The password to authenticate with. - - - - - Implements the Sasl NTLM authentication method which is used in various - Microsoft network protocol implementations. - - Implemented with the help of the excellent documentation on - NTLM composed by Eric Glass. - - - - NTLM involves several steps. - - - - - Private constructor for use with Sasl.SaslFactory. - - - - - Creates and initializes a new instance of the SaslNtlm class - using the specified username and password. - - The username to authenticate with. - The plaintext password to authenticate - with. - Thrown if the username - or the password parameter is null. - Thrown if the username - parameter is empty. - - - - Computes the client response to the specified NTLM challenge. - - The challenge sent by the server - The response to the NTLM challenge. - Thrown if the response could not - be computed. - - - - Computes the initial client response to an NTLM challenge. - - The challenge sent by the server. Since - NTLM expects an initial client response, this will usually be - empty. - The initial response to the NTLM challenge. - Thrown if the response could not - be computed. - - - - Computes the actual challenge response to an NTLM challenge - which is sent as part of an NTLM type 2 message. - - The challenge sent by the server. - The response to the NTLM challenge. - Thrown if the challenge - response could not be computed. - - - - True if the authentication exchange between client and server - has been completed. - - - - - The IANA name for the NTLM authentication mechanism. - - - - - The username to authenticate with. - - - - - The password to authenticate with. - - - - - Implements the Sasl NTLMv2 authentication method which addresses - some of the security issues present in NTLM version 1. - - - - - Private constructor for use with Sasl.SaslFactory. - - - - - Creates and initializes a new instance of the SaslNtlmv2 class - using the specified username and password. - - The username to authenticate with. - The plaintext password to authenticate - with. - Thrown if the username - or the password parameter is null. - Thrown if the username - parameter is empty. - - - - Computes the client response to the specified NTLM challenge. - - The challenge sent by the server - The response to the NTLM challenge. - Thrown if the response could not - be computed. - - - - Computes the actual challenge response to an NTLM challenge - which is sent as part of an NTLM type 2 message. - - The challenge sent by the server. - The response to the NTLM challenge. - Thrown if the challenge - response could not be computed. - - - - Implements the Sasl OAuth authentication method. - - - - - Private constructor for use with Sasl.SaslFactory. - - - - - Creates and initializes a new instance of the SaslOAuth class - using the specified username and password. - - The username to authenticate with. - Thrown if the accessToken - parameter is null. - Thrown if the accessToken - parameter is empty. - - - - Computes the client response for a OAuth challenge. - - The challenge sent by the server. - The response to the OAuth challenge. - Thrown if the response could not - be computed. - - - - True if the authentication exchange between client and server - has been completed. - - - - - The IANA name for the OAuth authentication mechanism. - - - - - The access token to authenticate with. - - - - - Implements the Sasl OAuth 2.0 authentication method. - - - - - The server sends an error response in case authentication fails - which must be acknowledged. - - - - - Private constructor for use with Sasl.SaslFactory. - - - - - Creates and initializes a new instance of the SaslOAuth class - using the specified username and password. - - The username to authenticate with. - The username to authenticate with. - Thrown if the username - or the accessToken parameter is null. - Thrown if the username or - the accessToken parameter is empty. - - - - Computes the client response to an XOAUTH2 challenge. - - The challenge sent by the server. - The response to the OAuth2 challenge. - Thrown if the response could not - be computed. - - - - Computes the initial client response to an XOAUTH2 challenge. - - The challenge sent by the server. - The response to the OAuth2 challenge. - Thrown if the response could not - be computed. - - - - True if the authentication exchange between client and server - has been completed. - - - - - The IANA name for the OAuth 2.0 authentication mechanism. - - - - - The username to authenticate with. - - - - - The access token to authenticate with. - - - - - Implements the Sasl Plain authentication method as described in - RFC 4616. - - - - - Private constructor for use with Sasl.SaslFactory. - - - - - Creates and initializes a new instance of the SaslPlain class - using the specified username and password. - - The username to authenticate with. - The plaintext password to authenticate - with. - Thrown if the username - or the password parameter is null. - Thrown if the username - parameter is empty. - - - - Computes the client response for a plain-challenge. - - The challenge sent by the server. For the - "plain" mechanism this will usually be empty. - The response for the "plain"-challenge. - Thrown if the response could not - be computed. - - - - True if the authentication exchange between client and server - has been completed. - - - - - The IANA name for the Plain authentication mechanism as described - in RFC 4616. - - - - - The username to authenticate with. - - - - - The plain-text password to authenticate with. - - - - - The exception is thrown when a Sasl-related error or unexpected condition occurs. - - - - - Initializes a new instance of the SaslException class - - - - - Initializes a new instance of the SaslException class with its message - string set to . - - A description of the error. The content of message is intended - to be understood by humans. - - - - Initializes a new instance of the SaslException class with its message - string set to and a reference to the inner exception that - is the cause of this exception. - - A description of the error. The content of message is intended - to be understood by humans. - The exception that is the cause of the current exception. - - - - Initializes a new instance of the SaslException class with the specified - serialization and context information. - - An object that holds the serialized object data about the exception - being thrown. - An object that contains contextual information about the source - or destination. - - - - A factory class for producing instances of Sasl mechanisms. - - - - - Creates an instance of the Sasl mechanism with the specified - name. - - The name of the Sasl mechanism of which an - instance will be created. - An instance of the Sasl mechanism with the specified name. - Thrown if the name parameter - is null. - Thrown if the Sasl mechanism with the - specified name is not registered with Sasl.SaslFactory. - - - - Registers a Sasl mechanism with the factory using the specified name. - - The name with which to register the Sasl mechanism - with the factory class. - The type of the class implementing the Sasl mechanism. - The implementing class must be a subclass of Sasl.SaslMechanism. - Thrown if the name or the t - parameter is null. - Thrown if the class represented - by the specified type does not derive from Sasl.SaslMechanism. - Thrown if the Sasl mechanism could not - be registered with the factory. Refer to the inner exception for error - details. - - - - Static class constructor. Initializes static properties. - - - - - A dictionary of Sasl mechanisms registered with the factory class. - - - - - Represents chainable search conditions that can be used with the Search method. - - - - - Finds all messages in the mailbox. - - A SearchCondition object representing the "all" search criterion. - - - - Finds messages that contain the specified string in the header or body of the message. - - String to search messages for. - A SearchCondition object representing the "text" search criterion. - The text parameter is null. - - - - Finds messages that contain the specified string in the envelope structure's BCC field. - - String to search the envelope structure's BCC field for. - A SearchCondition object representing the "BCC" search criterion. - The text parameter is null. - - - - Finds messages whose internal date (disregarding time and timezone) is earlier than the - specified date. - - The date to compare the message's internal date with. - A SearchCondition object representing the "Before" search criterion. - - - - Finds messages that contain the specified string in the body of the message. - - String to search the message body for. - A SearchCondition object representing the "Body" search criterion. - The text parameter is null. - - - - Finds messages that contain the specified string in the envelope structure's CC field. - - String to search the envelope structure's CC field for. - A SearchCondition object representing the "CC" search criterion. - The text parameter is null. - - - - Finds messages that contain the specified string in the envelope structure's FROM field. - - String to search the envelope structure's FROM field for. - A SearchCondition object representing the "FROM" search criterion. - The text parameter is null. - - - - Finds messages that have a header with the specified field-name and that contains the - specified string in the text of the header. - - field-name of the header to search for. - String to search for in the text of the header. - A SearchCondition object representing the "HEADER" search criterion. - - If the string to search is zero-length, this matches all messages that have a header line - with the specified field-name regardless of the contents. - - The name parameter or the text parameter is - null. - - - - Finds messages with the specified keyword flag set. - - The keyword flag to search for. - A SearchCondition object representing the "KEYWORD" search criterion. - The text parameter is null. - - - - Finds messages with a size larger than the specified number of bytes. - - Minimum size, in bytes a message must have to be included in the search - result. - A SearchCondition object representing the "LARGER" search criterion. - - - - Finds messages with a size smaller than the specified number of bytes. - - Maximum size, in bytes a message must have to be included in the search - result. - A SearchCondition object representing the "SMALLER" search criterion. - - - - Finds messages whose Date: header (disregarding time and timezone) is earlier than the - specified date. - - The date to compare the Date: header field with. - A SearchCondition object representing the "SENTBEFORE" search criterion. - - - - Finds messages whose Date: header (disregarding time and timezone) is within the specified - date. - - The date to compare the Date: header field with. - A SearchCondition object representing the "SENTON" search criterion. - - - - Finds messages whose Date: header (disregarding time and timezone) is within or later than - the specified date. - - The date to compare the Date: header field with. - A SearchCondition object representing the "SENTSINCE" search criterion. - - - - Finds messages that contain the specified string in the envelope structure's SUBJECT field. - - String to search the envelope structure's SUBJECT field for. - A SearchCondition object representing the "SUBJECT" search criterion. - The text parameter is null. - - - - Finds messages that contain the specified string in the envelope structure's TO field. - - String to search the envelope structure's TO field for. - A SearchCondition object representing the "TO" search criterion. - The text parameter is null. - - - - Finds messages with unique identifiers corresponding to the specified unique identifier set. - - One or several unique identifiers (UID). - A SearchCondition object representing the "UID" search criterion. - - - - Finds messages with a unique identifier greater than the specified unique identifier. - - A unique identifier (UID). - A SearchCondition object representing the "UID" search criterion. - - Because of the nature of the IMAP search mechanism, the result set will always contain the - UID of the last message in the mailbox, even if said UID is smaller than the UID specified. - - - - - Finds messages with a unique identifier less than the specified unique identifier. - - A unique identifier (UID). - A SearchCondition object representing the "UID" search criterion. - - - - Finds messages that do not have the specified keyword flag set. - - The IMAP keyword flag to search for. - A SearchCondition object representing the "UNKEYWORD" search criterion. - The text parameter is null. - - - - Finds messages that have the \Answered flag set. - - A SearchCondition object representing the "ANSWERED" search criterion. - - - - Finds messages that have the \Deleted flag set. - - A SearchCondition object representing the "DELETED" search criterion. - - - - Finds messages that have the \Draft flag set. - - A SearchCondition object representing the "DRAFT" search criterion. - - - - Finds messages that have the \Flagged flag set. - - A SearchCondition object representing the "FLAGGED" search criterion. - - - - Finds messages that have the \Recent flag set but not the \Seen flag. - - A SearchCondition object representing the "NEW" search criterion. - - - - Finds messages that do not have the \Recent flag set. - - A SearchCondition object representing the "OLD" search criterion. - - - - Finds messages that have the \Recent flag set. - - A SearchCondition object representing the "RECENT" search criterion. - - - - Finds messages that have the \Seen flag set. - - A SearchCondition object representing the "SEEN" search criterion. - - - - Finds messages that do not have the \Answered flag set. - - A SearchCondition object representing the "UNANSWERED" search criterion. - - - - Finds messages that do not have the \Deleted flag set. - - A SearchCondition object representing the "UNDELETED" search criterion. - - - - Finds messages that do not have the \Draft flag set. - - A SearchCondition object representing the "UNDRAFT" search criterion. - - - - Finds messages that do not have the \Flagged flag set. - - A SearchCondition object representing the "UNFLAGGED" search criterion. - - - - Finds messages that do not have the \Seen flag set. - - A SearchCondition object representing the "UNSEEN" search criterion. - - - - Logically ANDs multiple search conditions, meaning a message will only be included in the - search result if both of the ANDed conditions are met. - - A search condition to logically AND this SearchCondition instance - with. - A new SearchCondition instance which can be further chained with other search - conditions. - The other parameter is null. - - - - Logically negates search conditions, meaning a message will only be included in the search - result if the specified conditions are not met. - - A search condition that must not be met by a message for it to be - included in the search result set. - A new SearchCondition instance which can be further chained with other search - conditions. - The other parameter is null. - - - - Logically ORs multiple search conditions, meaning a message will be included in the search - result if it meets at least either of the conditions. - - A search condition to logically OR this SearchCondition instance - with. - A new SearchCondition instance which can be further chained with other search - conditions. - The other parameter is null. - - - - Joins two SearchCondition objects into a new one using the specified logical operator. - - The logical operator to use for joining the search conditions. - Possible values are "OR", "NOT" and the empty string "" which denotes a logical AND. - The first SearchCondition object - The second SearchCondition object - A new SearchCondition object representing the two search conditions joined by the - specified logical operator. - - - - Concatenates the members of a collection, using the specified separator between each - member. - - The type of the members of values. - The string to use as a separator. - A collection that contains the objects to concatenate. - A string that consists of the members of values delimited by the separator - string. If values has no members, the method returns System.String.Empty. - The values parameter is null. - This is already part of the String class in .NET 4.0 and newer but is needed - for backwards compatibility with .NET 3.5. - - - - Constructs a string from the SearchCondition object using the proper syntax as is required - for the IMAP SEARCH command. - - A string representing this SearchCondition instance that can be used with the IMAP - SEARCH command. - - - - The search keys which can be used with the IMAP SEARCH command, as are defined in section - 6.4.4 of RFC 3501. - - - - - A static utility class containing methods for decoding encoded non-ASCII data as well as - extension methods for some classes of the base class library. - - - - - Returns a copy of the string enclosed in double-quotes and with escaped CRLF, back-slash - and double-quote characters (as is expected by some commands of the IMAP protocol). - - Extends the System.String class - A copy of the string enclosed in double-quotes and properly escaped as is required - by the IMAP protocol. - - - - Returns true if the string contains only ASCII characters. - - Extension method for the String class. - true if the string contains only ASCII characters; Otherwise false. - - - - Splits a string into chunks of the specified number of characters. - - Extension method for the String class. - The length of a chunk, measured in characters. - An array of string chunks. - - - - Determines whether the specified string occurs within this string. - - Extension method for the String class. - The string to seek. - One of the enumeration values that specifies the rules for the - search. - true if the value parameter occurs within this string, or if value is the empty - string (""); otherwise, false. - The value parameter is null. - - - - Raises the event. Ensures the event is only raised, if it is not null. - - Extends System.EventHandler class. - Extends System.EventHandler class. - The sender of the event. - The event arguments associated with this event. - - - - Throws an ArgumentNullException if the given data item is null. - - The item to check for nullity. - The name to use when throwing an exception, if necessary. - Courtesy of Jon Skeet. - - - - Throws an ArgumentNullException if the given data item is null. - - The item to check for nullity. - Courtesy of Jon Skeet. - - - - Throws an ArgumentNullException if the given string is null or throws an ArgumentException - if the given string is empty. - - The string to check for nullity and emptiness. - - - - Throws an ArgumentNullException if the given string is null or throws an ArgumentException - if the given string is empty. - - The string to check for nullity and emptiness. - The name to use when throwing an exception, if necessary. - - - - Reads an unsigned short value from the underlying stream, optionally using big-endian byte - ordering. - - Extension method for BinaryReader. - Set to true to interpret the short value as big endian value. - The 16-byte unsigned short value read from the underlying stream. - - - - Decodes a string composed of one or several MIME 'encoded-words'. - - A string to composed of one or several MIME 'encoded-words'. - An unknown encoding (other than Q-Encoding or Base64) is - encountered. - A concatenation of all enconded-words in the passed string - - - - Internal function reuse to add separation between multiple 'encoded-word's correctly. - - - - - The regular expression for matching encoded-words. This also accounts for the extension for - including language information (as defined in RFC2231). - - - - - Decodes a MIME 'encoded-word' string. - - The encoded word to decode - An unknown encoding (other than Q-Encoding or Base64) is - encountered. - A decoded string - MIME encoded-word syntax is a way to encode strings that contain non-ASCII data. - Commonly used encodings for the encoded-word sytax are Q-Encoding and Base64. For an - in-depth description, refer to RFC 2047. - - - - Takes a Q-encoded string and decodes it using the specified encoding. - - The Q-encoded string to decode. - The encoding to use for encoding the returned string. - The string is not a valid Q-encoded string. - The Q-decoded string. - - - - Takes a quoted-printable encoded string and decodes it using the specified encoding. - - The quoted-printable-encoded string to decode. - The encoding to use for encoding the returned string. - The string is not a valid quoted-printable encoded - string. - A quoted-printable decoded string. - - - - Decodes the specified MIME parameter value. - - The MIME parameter value to decode. - The decoded MIME parameter value. - The specified value is not a valid Rfc2231-encoded - string. - Refer to RFC2231 for the details of the encoding mechanism. - - - - Takes a Base64-encoded string and decodes it. - - The Base64-encoded string to decode. - A byte array containing the Base64-decoded bytes of the input string. - The value parameter is null. - The length of value, ignoring white-space - characters, is not zero or a multiple of 4, or the format of value is invalid, or the value - contains a non-base-64 character, more than two padding characters, or a non-white - space-character among the padding characters. - - - - Takes a UTF-16 encoded string and encodes it as modified UTF-7. - - The string to encode. - A UTF-7 encoded string - IMAP uses a modified version of UTF-7 for encoding international mailbox names. For - details, refer to RFC 3501 section 5.1.3 (Mailbox International Naming Convention). - - - - Takes a modified UTF-7 encoded string and decodes it. - - The UTF-7 encoded string to decode. - A UTF-16 encoded "standard" C# string - The input string is not a properly UTF-7 encoded - string. - IMAP uses a modified version of UTF-7 for encoding international mailbox names. For - details, refer to RFC 3501 section 5.1.3 (Mailbox International Naming Convention). - - - - This just wraps Encoding.GetEncoding in a try-catch block to ensure it never fails. If the - encoding can not be determined ASCII is returned as a default. - - The code page name of the preferred encoding. Any value returned by - System.Text.Encoding.WebName is a valid input. - The System.Text.Encoding associated with the specified code page or Encoding.ASCII - if the specified code page could not be resolved. - - - - Converts the specified enumerable collection of UIDs into an IMAP sequence-set. - - An enumerable collection of UIDs. - An IMAP sequence-set suitable for use with IMAP commands. - The uids parameter is null. - The specified collection of UIDs is empty. - Refer to RFC3501, 9.Formal Syntax "sequence-set" for a description of IMAP - sequence-sets. - - - diff --git a/App/packages/S22.Imap.3.6.0.0/lib/net40/S22.Imap.dll b/App/packages/S22.Imap.3.6.0.0/lib/net40/S22.Imap.dll deleted file mode 100644 index 2786078..0000000 Binary files a/App/packages/S22.Imap.3.6.0.0/lib/net40/S22.Imap.dll and /dev/null differ