| Visual Basic (Declaration) | |
|---|---|
Public Function Purge() As ImapResponse() | |
| Visual Basic (Usage) | Copy Code |
|---|---|
Dim instance As Mailbox Dim value() As ImapResponse value = instance.Purge() | |
| C# | |
|---|---|
public ImapResponse[] Purge() | |
| Managed Extensions for C++ | |
|---|---|
public: ImapResponse*[]* Purge(); | |
| C++/CLI | |
|---|---|
public: array<ImapResponse^>^ Purge(); | |
Return Value
An ImapResponse object encapsulating the response from the server.| Exception | Description |
|---|---|
| Dart.PowerTCP.Mail.ProtocolException | Bad IMAP protocol response received from server. |
| System.Net.Sockets.SocketException | The requested address is not valid in its context. |
The following example demonstrates logging into an IMAP server, copying read messages to a Deleted mailbox, and deleting them.
| Visual Basic | Copy 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); } } | |
The Mailbox.Purge method deletes all messages marked for deletion (messages with the \Delete flag set, also with ImapMessage.Delete = true). This method uses the IMAP EXPUNGE command to delete all the marked messages . If you have Imap.AutoPurge set to true there is no need to explicitly call Mailbox.Purge as the messages will automatically be expunged.
Target Platforms: Microsoft .NET Framework 2.0