PowerTCP Mail for .NET
CurrentMailbox Property
See Also  Send comments on this topic.
Dart.PowerTCP.Mail Namespace > Imap Class : CurrentMailbox Property




Gets or sets the Mailbox object representing the currently selected mailbox.

Syntax

Visual Basic (Declaration) 
<BrowsableAttribute(False)>
Public Property CurrentMailbox As Mailbox
Visual Basic (Usage)Copy Code
Dim instance As Imap
Dim value As Mailbox
 
instance.CurrentMailbox = value
 
value = instance.CurrentMailbox
C# 
[BrowsableAttribute(false)]
public Mailbox CurrentMailbox {get; set;}
Managed Extensions for C++ 
[BrowsableAttribute(false)]
public: __property Mailbox* get_CurrentMailbox();
public: __property void set_CurrentMailbox( 
   Mailbox* value
);
C++/CLI 
[BrowsableAttribute(false)]
public:
property Mailbox^ CurrentMailbox {
   Mailbox^ get();
   void set (    Mailbox^ value);
}

Property Value

If a mailbox is in the selected state, this property returns the Mailbox object representing the mailbox; null otherwise.

Example

The following example demonstrates logging into an IMAP server, copying read messages to a Deleted mailbox, and deleting them.
Visual BasicCopy Code
Private Sub DoMove()
   ' Demonstrate moving Read messages from "INBOX" to a "Deleted Items" box
   Try
      ' Do synchronous login with AutoList
      Imap1.Login("myServer", "myAccount", "myPassword")

      ' Create Mailbox objects for easier reference
      Dim InboxBox As Mailbox = Imap1.CurrentMailbox ' After Login with AutoList, this will be "INBOX"
      Dim DeletedBox As Mailbox = Imap1.Mailboxes("Deleted Items")

      ' Update Messages Count in "Deleted Items" box
      DeletedBox.Refresh()

      ' Display Messages Count in both boxes
      LabelDisplay.Text = InboxBox.Messages.Count.ToString() + "  " + DeletedBox.Messages.Count.ToString()

      ' Get an array of ImapMessages with just flags
      Dim Messages As ImapMessage() = InboxBox.Get(InboxBox.Messages(0), InboxBox.Messages(InboxBox.Messages.Count-1), ImapMessageSections.Flags)

      ' Copy Read Messages to "Deleted Items" box and Mark them for Deletion
      Dim Msg as ImapMessage
      For Each Msg in Messages
        If Msg.Seen Then 'If Seen flag is set 
           Msg.CopyTo(DeletedBox) ' Copy to "Deleted Items" box
           Msg.Delete = True ' Set deleted flag in "INBOX"
        End If
      Next

      'Permanently Remove Copied Messages from "INBOX"
      InboxBox.Purge()

      'Update Messages Count in "Deleted Items"
      DeletedBox.Refresh()

      'Display new Messages Counts
      LabelDisplay.Text = InboxBox.Messages.Count.ToString() + "  " + DeletedBox.Messages.Count.ToString()

      'Logout from server
      Imap1.Logout()
   
   Catch Ex As Exception
       ' Show MessageBox if error occurs
       MessageBox.Show(Ex.Message, "Error Message", MessageBoxButtons.OK, MessageBoxIcon.Error)
   End Try
End Sub
C#Copy Code
private void DoMove()
{
   //Demonstrate moving Read messages from "INBOX" to a "Deleted Items" box
   try
   {
      //Do synchronous login with AutoList
      imap1.Login("myServer", "myAccount", "myPassword");

      //Create Mailbox objects for easier reference
     Mailbox inboxBox = imap1.CurrentMailbox; //After Login with AutoList, this will be "INBOX"
     Mailbox deletedBox = imap1.Mailboxes["Deleted Items"];

     //Update Messages Count in "Deleted Items" box
     deletedBox.Refresh();

     //Display Messages Count in both boxes
     labelDisplay.Text = inboxBox.Messages.Count.ToString() + "  " + deletedBox.Messages.Count.ToString();

     //Get an array of ImapMessages with just flags
     ImapMessage[] messages = inboxBox.Get(inboxBox.Messages[0], inboxBox.Messages[inboxBox.Messages.Count-1], ImapMessageSections.Flags);

     //Copy Read Messages to "Deleted Items" box and Mark them for Deletion
     foreach (ImapMessage msg in messages)
     {
       if (msg.Seen) //If Seen flag is set
       {
          msg.CopyTo(deletedBox); //Copy to "Deleted Items" box
          msg.Delete = true; //Set deleted flag in "INBOX"
       }
     }

     //Permanently Remove Copied Messages from "INBOX"
     inboxBox.Purge();

     //Update Messages Count in "Deleted Items"
     deletedBox.Refresh();

     //Display new Messages Counts
     labelDisplay.Text = inboxBox.Messages.Count.ToString() + "  " + deletedBox.Messages.Count.ToString();

     //Logout from server
     imap1.Logout();
   }
   catch (Exception ex)
   {
      //Show MessageBox if error occurs
      MessageBox.Show(ex.Message, "Error Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
   }
}

Remarks

Gets or sets the Mailbox object that represents the currently selected mailbox. Developers can set this property to enter a mailbox, causing the Imap component to send an EXAMINE command. Note that when this property is set, this object is in the Selected state.

Any method that involves accessing messages within a mailbox will cause that Mailbox to be set to the Imap.CurrentMailbox.

If Imap.AutoList is true, after logging in the Imap.CurrentMailbox is set to "INBOX" if such a mailbox exists. If this mailbox does not exist, Imap.CurrentMailbox will return null.

Requirements

Target Platforms: Microsoft .NET Framework 2.0

See Also

Documentation Version 3.2
© 2010 Dart Communications. All Rights Reserved.