VB.Net Tutorial/Socket Network/POP3 — различия между версиями

Материал из VB Эксперт
Перейти к: навигация, поиск
м (1 версия)
 
м (1 версия)
 
(нет различий)

Текущая версия на 12:55, 26 мая 2010

POP3 form

"Visual Basic.Net JingCai Programming 100 Examples
"Author: Yong Zhang
"Publisher: Water Publisher China
"ISBN: 750841156
Imports System.IO
Imports System.Net
Imports System.Net.Sockets
Imports System.Text
Imports System.Reflection.Emit
Imports System.Windows.Forms
public class PopClientForm
   public Shared Sub Main
        Application.Run(New Form1)
   End Sub
End class
Public Class Form1
  Inherits System.Windows.Forms.Form
  Public Sub New()
    MyBase.New()
    InitializeComponent()
    sHost = SetupForm.txtHost.Text
    sPort = SetupForm.txtPort.Text
    sUser = SetupForm.txtUser.Text
    sPass = SetupForm.txtPassword.Text
    showObject(False)
  End Sub
  Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
    If disposing Then
      If Not (components Is Nothing) Then
        components.Dispose()
      End If
    End If
    MyBase.Dispose(disposing)
  End Sub
  Private components As System.ruponentModel.IContainer
  Friend WithEvents MainMenu1 As System.Windows.Forms.MainMenu
  Friend WithEvents MenuItem1 As System.Windows.Forms.MenuItem
  Friend WithEvents MenuItem3 As System.Windows.Forms.MenuItem
  Friend WithEvents ToolBar1 As System.Windows.Forms.ToolBar
  Friend WithEvents ImageList1 As System.Windows.Forms.ImageList
  Friend WithEvents mnuProfile As System.Windows.Forms.MenuItem
  Friend WithEvents mnuExit As System.Windows.Forms.MenuItem
  Friend WithEvents btnReceive As System.Windows.Forms.ToolBarButton
  Friend WithEvents btnPrevious As System.Windows.Forms.ToolBarButton
  Friend WithEvents btnNext As System.Windows.Forms.ToolBarButton
  Friend WithEvents StatusBar1 As System.Windows.Forms.StatusBar
  Friend WithEvents Panel1 As System.Windows.Forms.Panel
  Friend WithEvents TabControl1 As System.Windows.Forms.TabControl
  Friend WithEvents TabPage1 As System.Windows.Forms.TabPage
  Friend WithEvents Panel2 As System.Windows.Forms.Panel
  Friend WithEvents txtMessage As System.Windows.Forms.TextBox
  Friend WithEvents Panel3 As System.Windows.Forms.Panel
  Friend WithEvents TabPage2 As System.Windows.Forms.TabPage
  Friend WithEvents lstLog As System.Windows.Forms.ListBox
  Friend WithEvents StatusBarPanel1 As System.Windows.Forms.StatusBarPanel
  Friend WithEvents Label1 As System.Windows.Forms.Label
  <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
    Me.ruponents = New System.ruponentModel.Container()
    Dim resources As System.Resources.ResourceManager = New System.Resources.ResourceManager(GetType(Form1))
    Me.MainMenu1 = New System.Windows.Forms.MainMenu()
    Me.MenuItem1 = New System.Windows.Forms.MenuItem()
    Me.mnuProfile = New System.Windows.Forms.MenuItem()
    Me.MenuItem3 = New System.Windows.Forms.MenuItem()
    Me.mnuExit = New System.Windows.Forms.MenuItem()
    Me.ToolBar1 = New System.Windows.Forms.ToolBar()
    Me.btnReceive = New System.Windows.Forms.ToolBarButton()
    Me.btnPrevious = New System.Windows.Forms.ToolBarButton()
    Me.btnNext = New System.Windows.Forms.ToolBarButton()
    Me.ImageList1 = New System.Windows.Forms.ImageList(Me.ruponents)
    Me.StatusBar1 = New System.Windows.Forms.StatusBar()
    Me.StatusBarPanel1 = New System.Windows.Forms.StatusBarPanel()
    Me.Panel1 = New System.Windows.Forms.Panel()
    Me.TabControl1 = New System.Windows.Forms.TabControl()
    Me.TabPage1 = New System.Windows.Forms.TabPage()
    Me.Panel2 = New System.Windows.Forms.Panel()
    Me.txtMessage = New System.Windows.Forms.TextBox()
    Me.Panel3 = New System.Windows.Forms.Panel()
    Me.Label1 = New System.Windows.Forms.Label()
    Me.TabPage2 = New System.Windows.Forms.TabPage()
    Me.lstLog = New System.Windows.Forms.ListBox()
    CType(Me.StatusBarPanel1, System.ruponentModel.ISupportInitialize).BeginInit()
    Me.Panel1.SuspendLayout()
    Me.TabControl1.SuspendLayout()
    Me.TabPage1.SuspendLayout()
    Me.Panel2.SuspendLayout()
    Me.Panel3.SuspendLayout()
    Me.TabPage2.SuspendLayout()
    Me.SuspendLayout()
    "
    "MainMenu1
    "
    Me.MainMenu1.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.MenuItem1})
    "
    "MenuItem1
    "
    Me.MenuItem1.Index = 0
    Me.MenuItem1.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.mnuProfile, Me.MenuItem3, Me.mnuExit})
    Me.MenuItem1.Text = "&File"
    "
    "mnuProfile
    "
    Me.mnuProfile.Index = 0
    Me.mnuProfile.Text = "&Profile"
    "
    "MenuItem3
    "
    Me.MenuItem3.Index = 1
    Me.MenuItem3.Text = "-"
    "
    "mnuExit
    "
    Me.mnuExit.Index = 2
    Me.mnuExit.Text = "E&xit"
    "
    "ToolBar1
    "
    Me.ToolBar1.AllowDrop = True
    Me.ToolBar1.Buttons.AddRange(New System.Windows.Forms.ToolBarButton() {Me.btnReceive, Me.btnPrevious, Me.btnNext})
    Me.ToolBar1.ButtonSize = New System.Drawing.Size(35, 35)
    Me.ToolBar1.DropDownArrows = True
    Me.ToolBar1.ImageList = Me.ImageList1
    Me.ToolBar1.Name = "ToolBar1"
    Me.ToolBar1.ShowToolTips = True
    Me.ToolBar1.Size = New System.Drawing.Size(274, 38)
    Me.ToolBar1.TabIndex = 0
    "
    "btnReceive
    "
    Me.btnReceive.Text = "Mail"
    "
    "btnPrevious
    "
    Me.btnPrevious.Enabled = False
    Me.btnPrevious.Text = "Prev."
    "
    "btnNext
    "
    Me.btnNext.Enabled = False
    Me.btnNext.Text = "Next"
    Me.StatusBar1.Location = New System.Drawing.Point(0, 295)
    Me.StatusBar1.Name = "StatusBar1"
    Me.StatusBar1.Panels.AddRange(New System.Windows.Forms.StatusBarPanel() {Me.StatusBarPanel1})
    Me.StatusBar1.Size = New System.Drawing.Size(274, 24)
    Me.StatusBar1.TabIndex = 2
    Me.StatusBarPanel1.AutoSize = System.Windows.Forms.StatusBarPanelAutoSize.Spring
    "
    "Panel1
    "
    Me.Panel1.Controls.AddRange(New System.Windows.Forms.Control() {Me.TabControl1})
    Me.Panel1.Dock = System.Windows.Forms.DockStyle.Fill
    Me.Panel1.Location = New System.Drawing.Point(0, 38)
    Me.Panel1.Name = "Panel1"
    Me.Panel1.Size = New System.Drawing.Size(274, 257)
    Me.Panel1.TabIndex = 3
    "
    "TabControl1
    "
    Me.TabControl1.Controls.AddRange(New System.Windows.Forms.Control() {Me.TabPage1, Me.TabPage2})
    Me.TabControl1.Dock = System.Windows.Forms.DockStyle.Fill
    Me.TabControl1.Name = "TabControl1"
    Me.TabControl1.SelectedIndex = 0
    Me.TabControl1.Size = New System.Drawing.Size(274, 257)
    Me.TabControl1.TabIndex = 2
    "
    "TabPage1
    "
    Me.TabPage1.Controls.AddRange(New System.Windows.Forms.Control() {Me.Panel2, Me.Panel3})
    Me.TabPage1.Location = New System.Drawing.Point(4, 21)
    Me.TabPage1.Name = "TabPage1"
    Me.TabPage1.Size = New System.Drawing.Size(266, 232)
    Me.TabPage1.TabIndex = 0
    Me.TabPage1.Text = "POP3"
    "
    "Panel2
    "
    Me.Panel2.Controls.AddRange(New System.Windows.Forms.Control() {Me.txtMessage})
    Me.Panel2.Dock = System.Windows.Forms.DockStyle.Fill
    Me.Panel2.DockPadding.All = 2
    Me.Panel2.Location = New System.Drawing.Point(0, 24)
    Me.Panel2.Name = "Panel2"
    Me.Panel2.Size = New System.Drawing.Size(266, 208)
    Me.Panel2.TabIndex = 1
    "
    "txtMessage
    "
    Me.txtMessage.Dock = System.Windows.Forms.DockStyle.Fill
    Me.txtMessage.Location = New System.Drawing.Point(2, 2)
    Me.txtMessage.Multiline = True
    Me.txtMessage.Name = "txtMessage"
    Me.txtMessage.ScrollBars = System.Windows.Forms.ScrollBars.Vertical
    Me.txtMessage.Size = New System.Drawing.Size(262, 204)
    Me.txtMessage.TabIndex = 2
    Me.txtMessage.Text = ""
    "
    "Panel3
    "
    Me.Panel3.Controls.AddRange(New System.Windows.Forms.Control() {Me.Label1})
    Me.Panel3.Dock = System.Windows.Forms.DockStyle.Top
    Me.Panel3.Name = "Panel3"
    Me.Panel3.Size = New System.Drawing.Size(266, 24)
    Me.Panel3.TabIndex = 0
    "
    "Label1
    "
    Me.Label1.Location = New System.Drawing.Point(8, 8)
    Me.Label1.Name = "Label1"
    Me.Label1.Size = New System.Drawing.Size(84, 15)
    Me.Label1.TabIndex = 2
    Me.Label1.Text = "POP3 Message:"
    "
    "TabPage2
    "
    Me.TabPage2.Controls.AddRange(New System.Windows.Forms.Control() {Me.lstLog})
    Me.TabPage2.Location = New System.Drawing.Point(4, 21)
    Me.TabPage2.Name = "TabPage2"
    Me.TabPage2.Size = New System.Drawing.Size(302, 308)
    Me.TabPage2.TabIndex = 1
    Me.TabPage2.Text = "Transaction"
    Me.TabPage2.Visible = False
    "
    "lstLog
    "
    Me.lstLog.Dock = System.Windows.Forms.DockStyle.Fill
    Me.lstLog.HorizontalScrollbar = True
    Me.lstLog.ItemHeight = 12
    Me.lstLog.Name = "lstLog"
    Me.lstLog.Size = New System.Drawing.Size(302, 308)
    Me.lstLog.TabIndex = 0
    "
    "Form1
    "
    Me.AutoScaleBaseSize = New System.Drawing.Size(5, 15)
    Me.ClientSize = New System.Drawing.Size(274, 319)
    Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.Panel1, Me.StatusBar1, Me.ToolBar1})
    Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle
    Me.MaximizeBox = False
    Me.Menu = Me.MainMenu1
    Me.Name = "Form1"
    Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
    Me.Text = "POP3"
    CType(Me.StatusBarPanel1, System.ruponentModel.ISupportInitialize).EndInit()
    Me.Panel1.ResumeLayout(False)
    Me.TabControl1.ResumeLayout(False)
    Me.TabPage1.ResumeLayout(False)
    Me.Panel2.ResumeLayout(False)
    Me.Panel3.ResumeLayout(False)
    Me.TabPage2.ResumeLayout(False)
    Me.ResumeLayout(False)
  End Sub
  Private SetupForm As New Form2()
  Private tcpClient As New System.Net.Sockets.TcpClient()
  Private networkStream As Stream
  Private totalMail, currentMail, mailSize As Integer
  Private Sub ToolBar1_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles ToolBar1.ButtonClick
    Dim flag As Boolean
    If e.Button Is btnReceive Then
      Try
        If receiveMail() Then
          If totalMail > 0 Then
            currentMail = 1
            flag = showMail(currentMail)
            showObject(True)
          Else
            MessageBox.Show("There is no mail.", "POP3", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1)
          End If
        Else
          showObject(False)
        End If
      Catch ex As Exception
        lstLog.Items.Add("Socket: " & ex.ToString())
      End Try
    End If
    If e.Button Is btnPrevious Then
      currentMail = currentMail - 1
      If (currentMail <= 1) Then currentMail = 1
      If (Not showMail(currentMail)) Then currentMail = currentMail + 1
      showObject(True)
    End If
    If e.Button Is btnNext Then
      currentMail = currentMail + 1
      If (currentMail >= totalMail) Then currentMail = totalMail
      If (Not showMail(currentMail)) Then currentMail = currentMail - 1
      showObject(True)
    End If
  End Sub
  Private Sub mnuProfile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuProfile.Click
    SetupForm.ShowDialog()
  End Sub
  Private Sub mnuExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuExit.Click
    tcpClient.Close()
    End
  End Sub
  Private Function receiveMail() As Boolean
    Dim strHost, strPort, strUser, strPass As String
    Dim strTo, strSubject, strMsg As String
    Dim bytes(tcpClient.ReceiveBufferSize) As Byte
    Dim strResponse As String = Nothing
    strHost = SetupForm.txtHost.Text
    strPort = SetupForm.txtPort.Text
    strUser = SetupForm.txtUser.Text
    strPass = SetupForm.txtPassword.Text
    lstLog.Items.Clear()
    Try
      lstLog.Items.Add("C: Trying to connect to host " & strHost & ", port: " & strPort)
      tcpClient.Connect(strHost, Int32.Parse(strPort))
      networkStream = tcpClient.GetStream()
      If Not POP3Response() Then Return False
      strMsg = "USER " & strUser
      If (Not POP3Request(strMsg)) Then Return False
      If (Not POP3Response()) Then Return False
      strMsg = "PASS " & strPass
      If (Not POP3Request(strMsg)) Then Return False
      If (Not POP3Response()) Then Return False
      strMsg = "STAT"
      If (Not POP3Request(strMsg)) Then Return False
      networkStream.Read(bytes, 0, CInt(tcpClient.ReceiveBufferSize))
      strResponse = Encoding.ASCII.GetString(bytes)
      lstLog.Items.Add("S: " & strResponse.ToString())
      If (Not strResponse.StartsWith("+OK")) Then
        MessageBox.Show(strResponse.ToString(), "POP3 Error", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1)
        Return False
      End If
      Dim strTemp() As String
      strTemp = strResponse.Split(" ")
      totalMail = Int32.Parse(strTemp(1).Trim)
      mailSize = Int32.Parse(strTemp(2).Trim)
      Return True
    Catch ex As Exception
      tcpClient.Close()
      lstLog.Items.Add(ex.ToString())
      Return False
    End Try
  End Function
  Private Sub showObject(ByVal flag As Boolean)
    If (flag) Then
      btnReceive.Enabled = False
      If ((totalMail > 1) And (currentMail = 1)) Then
        btnPrevious.Enabled = False
        btnNext.Enabled = True
      ElseIf ((currentMail < totalMail) And (currentMail > 1)) Then
        btnPrevious.Enabled = True
        btnNext.Enabled = True
      ElseIf ((currentMail = totalMail) And (currentMail > 1)) Then
        btnPrevious.Enabled = True
        btnNext.Enabled = False
      End If
    Else
      btnPrevious.Enabled = False
      btnNext.Enabled = False
      btnReceive.Enabled = True
      txtMessage.Clear()
      lstLog.Items.Clear()
    End If
  End Sub
  Private Function showMail(ByVal mailNo As Integer) As Boolean
    Dim strMsg, strTemp As String
    Dim strContent As String = Nothing
    Dim blnFlag As Boolean = True
    Dim bytes(tcpClient.ReceiveBufferSize) As Byte
    Dim strResponse As String = Nothing
    Dim byteMsg() As Byte
    Try
      strMsg = "RETR " & mailNo
      If (Not POP3Request(strMsg)) Then Return False
      Do
        networkStream.Read(bytes, 0, CInt(tcpClient.ReceiveBufferSize))
        strResponse = Encoding.ASCII.GetString(bytes)
        If blnFlag Then
          If (Not strResponse.StartsWith("+OK")) Then
            MessageBox.Show(strResponse.ToString(), "POP3 Error", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1)
            Return False
          End If
          blnFlag = False
        End If
        strContent = strContent & strResponse.Trim.ToString
        Dim cNull As Char = ControlChars.NullChar
        byteMsg = Encoding.ASCII.GetBytes(strContent.Trim(cNull).ToCharArray())
        strTemp = Encoding.ASCII.GetString(byteMsg, 0, byteMsg.Length - 2)
        If (strTemp.Trim().EndsWith(".")) Then
          Exit Do
        End If
      Loop
      txtMessage.Text = strContent
      StatusBar1.Text = "Total: " & totalMail & " (Size: " & mailSize & ") Current: " & mailNo
      Return True
    Catch ex As Exception
      lstLog.Items.Add(ex.ToString())
      Return False
    End Try
  End Function
  Private Function POP3Response() As Boolean
    Dim bytes(tcpClient.ReceiveBufferSize) As Byte
    Dim strResponse As String = Nothing
    Try
      networkStream.Read(bytes, 0, CInt(tcpClient.ReceiveBufferSize))
      strResponse = Encoding.ASCII.GetString(bytes)
      lstLog.Items.Add("S: " & strResponse.ToString())
      If Not strResponse.StartsWith("+OK") Then
        lstLog.Items.Add("POP3Response Error.")
        tcpClient.Close()
        Return False
      Else
        Return True
      End If
    Catch ex As Exception
      lstLog.Items.Add("POP3Response Error: " & ex.ToString())
      tcpClient.Close()
      Return False
    End Try
  End Function
  Private Function POP3Request(ByVal strMsg As String) As Boolean
    Dim byteMsg() As Byte
    strMsg = strMsg & ControlChars.CrLf
    Try
      byteMsg = Encoding.ASCII.GetBytes(strMsg.ToCharArray())
      networkStream.Write(byteMsg, 0, byteMsg.Length)
      lstLog.Items.Add("C: " & strMsg.ToString())
      Return True
    Catch ex As Exception
      lstLog.Items.Add("POP3Request Error: " & ex.ToString())
      tcpClient.Close()
      Return False
    End Try
  End Function
End Class
Module Module1
  Public sHost As String
  Public sPort As String
  Public sUser As String
  Public sPass As String
End Module
Public Class Form2
    Inherits System.Windows.Forms.Form
    Public Sub New()
        MyBase.New()
        InitializeComponent()
    End Sub
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub
    Private components As System.ruponentModel.IContainer
  Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox
  Friend WithEvents txtHost As System.Windows.Forms.TextBox
  Friend WithEvents txtPort As System.Windows.Forms.TextBox
  Friend WithEvents txtUser As System.Windows.Forms.TextBox
  Friend WithEvents btnOK As System.Windows.Forms.Button
  Friend WithEvents btnCancel As System.Windows.Forms.Button
  Friend WithEvents txtPassword As System.Windows.Forms.TextBox
  Friend WithEvents Label5 As System.Windows.Forms.Label
  Friend WithEvents Label6 As System.Windows.Forms.Label
  Friend WithEvents Label7 As System.Windows.Forms.Label
  Friend WithEvents Label8 As System.Windows.Forms.Label
  <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
    Me.GroupBox1 = New System.Windows.Forms.GroupBox()
    Me.txtPassword = New System.Windows.Forms.TextBox()
    Me.txtUser = New System.Windows.Forms.TextBox()
    Me.txtPort = New System.Windows.Forms.TextBox()
    Me.txtHost = New System.Windows.Forms.TextBox()
    Me.Label5 = New System.Windows.Forms.Label()
    Me.Label6 = New System.Windows.Forms.Label()
    Me.Label7 = New System.Windows.Forms.Label()
    Me.Label8 = New System.Windows.Forms.Label()
    Me.btnOK = New System.Windows.Forms.Button()
    Me.btnCancel = New System.Windows.Forms.Button()
    Me.GroupBox1.SuspendLayout()
    Me.SuspendLayout()
    "
    "GroupBox1
    "
    Me.GroupBox1.Controls.AddRange(New System.Windows.Forms.Control() {Me.txtPassword, Me.txtUser, Me.txtPort, Me.txtHost, Me.Label5, Me.Label6, Me.Label7, Me.Label8})
    Me.GroupBox1.Location = New System.Drawing.Point(3, 5)
    Me.GroupBox1.Name = "GroupBox1"
    Me.GroupBox1.Size = New System.Drawing.Size(240, 135)
    Me.GroupBox1.TabIndex = 0
    Me.GroupBox1.TabStop = False
    Me.GroupBox1.Text = "POP3 Server"
    "
    "txtPassword
    "
    Me.txtPassword.Location = New System.Drawing.Point(70, 98)
    Me.txtPassword.Name = "txtPassword"
    Me.txtPassword.PasswordChar = Microsoft.VisualBasic.ChrW(42)
    Me.txtPassword.Size = New System.Drawing.Size(160, 22)
    Me.txtPassword.TabIndex = 3
    Me.txtPassword.Text = ""
    "
    "txtUser
    "
    Me.txtUser.Location = New System.Drawing.Point(70, 72)
    Me.txtUser.Name = "txtUser"
    Me.txtUser.Size = New System.Drawing.Size(160, 22)
    Me.txtUser.TabIndex = 2
    Me.txtUser.Text = "leo_huang"
    "
    "txtPort
    "
    Me.txtPort.Location = New System.Drawing.Point(70, 46)
    Me.txtPort.Name = "txtPort"
    Me.txtPort.Size = New System.Drawing.Size(160, 22)
    Me.txtPort.TabIndex = 1
    Me.txtPort.Text = "110"
    "
    "txtHost
    "
    Me.txtHost.Location = New System.Drawing.Point(70, 20)
    Me.txtHost.Name = "txtHost"
    Me.txtHost.Size = New System.Drawing.Size(160, 22)
    Me.txtHost.TabIndex = 0
    Me.txtHost.Text = "192.168.1.59"
    "
    "Label5
    "
    Me.Label5.Location = New System.Drawing.Point(8, 24)
    Me.Label5.Name = "Label5"
    Me.Label5.Size = New System.Drawing.Size(70, 15)
    Me.Label5.TabIndex = 0
    Me.Label5.Text = "Host:"
    "
    "Label6
    "
    Me.Label6.Location = New System.Drawing.Point(8, 102)
    Me.Label6.Name = "Label6"
    Me.Label6.Size = New System.Drawing.Size(70, 15)
    Me.Label6.TabIndex = 3
    Me.Label6.Text = "Password:"
    "
    "Label7
    "
    Me.Label7.Location = New System.Drawing.Point(8, 76)
    Me.Label7.Name = "Label7"
    Me.Label7.Size = New System.Drawing.Size(70, 15)
    Me.Label7.TabIndex = 2
    Me.Label7.Text = "Login:"
    "
    "Label8
    "
    Me.Label8.Location = New System.Drawing.Point(8, 50)
    Me.Label8.Name = "Label8"
    Me.Label8.Size = New System.Drawing.Size(70, 15)
    Me.Label8.TabIndex = 1
    Me.Label8.Text = "Port:"
    "
    "btnOK
    "
    Me.btnOK.Location = New System.Drawing.Point(28, 152)
    Me.btnOK.Name = "btnOK"
    Me.btnOK.Size = New System.Drawing.Size(85, 25)
    Me.btnOK.TabIndex = 4
    Me.btnOK.Text = "OK"
    "
    "btnCancel
    "
    Me.btnCancel.Location = New System.Drawing.Point(133, 152)
    Me.btnCancel.Name = "btnCancel"
    Me.btnCancel.Size = New System.Drawing.Size(85, 25)
    Me.btnCancel.TabIndex = 5
    Me.btnCancel.Text = "Cancel"
    "
    "Form2
    "
    Me.AutoScaleBaseSize = New System.Drawing.Size(5, 15)
    Me.ClientSize = New System.Drawing.Size(247, 191)
    Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.btnCancel, Me.btnOK, Me.GroupBox1})
    Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle
    Me.MaximizeBox = False
    Me.Name = "Form2"
    Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent
    Me.Text = "POP3 Profile"
    Me.GroupBox1.ResumeLayout(False)
    Me.ResumeLayout(False)
  End Sub
  Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    txtHost.Text = sHost
    txtPort.Text = sPort
    txtUser.Text = sUser
    txtPassword.Text = sPass
  End Sub
  Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click
    If txtHost.Text = "" Or txtPort.Text = "" Or txtUser.Text = "" Then
      MessageBox.Show("Please enter the information.", "POP3", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1)
    Else
      sHost = txtHost.Text
      sPort = txtPort.Text
      sUser = txtUser.Text
      sPass = txtPassword.Text
      Me.Close()
    End If
  End Sub
  Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancel.Click
    Me.Close()
  End Sub
End Class