MailClient.Copy Method


Copies a specified email from selected folder to another folder on IMAP4 server.

[Visual Basic]
Public Sub Copy( _
    info As MailInfo, _
    destFolder As Imap4Folder _
)
[C#]
public void Copy(
    MailInfo info,
    Imap4Folder destFolder
);
[C++]
public: void Copy(
    MailInfo* info,
    Imap4Folder* destFolder
);
[JScript]
public function Copy(
    info : MailInfo,
    destFolder: Imap4Folder
);

Parameters

info
The email to copy.
destFolder
The destination IMAP4 folder.

Example

[Visual Basic, C#, C++] The following example demonstrates how to copy every email in "INBOX" to "Deleted Items" with EAGetMail POP3 & IMAP Component. To get the full samples of EAGetMail, please refer to Samples section.

[Visual Basic]
Imports EAGetMail

Sub CopyEmail( _
ByVal server As String, _
ByVal user As String, _
ByVal password As String)
    Try
        Dim oClient As New MailClient("TryIt")
        Dim oServer As New MailServer(server, user, password, ServerProtocol.Imap4)
        oClient.Connect(oServer)
        Dim folders() As Imap4Folder = oClient.Imap4Folders
        Dim count As Integer = folders.Length
        For i As Integer = 0 To count - 1
            Dim folder As Imap4Folder = folders(i)
            If String.Compare("INBOX", folder.Name, True) = 0 Then
                'select "INBOX" folder
                oClient.SelectFolder( folder )
                Exit For
            End If
        Next
        
        Dim destFolder As Imap4Folder = Nothing        
        For i As Integer = 0 To count - 1
            Dim folder As Imap4Folder = folders(i)
            If String.Compare("Deleted Items", folder.Name, True) = 0 Then
                'find "Deleted Items" folder
                destFolder = folder
                Exit For
            End If
        Next
        
        If destFolder Is Nothing Then
            Throw New Exception( "Deleted Items not found!")
        End If
        
        Dim infos() As MailInfo = oClient.GetMailInfos()
        count = infos.Length
        For i As Integer = 0 To count - 1
            Dim info As MailInfo = infos(i)
            'copy to  "Deleted Items" folder
            oClient.Copy( info, destFolder )
        Next
        
        oClient.Logout()
    Catch ep As Exception
        Console.WriteLine(ep.Message)
    End Try
End Sub

[C#]
using System;
using System.Collections;
using EAGetMail;

public static void CopyEmail( 
    string server,
    string user,
    string password )
{
    try
    {
        MailClient oClient = new MailClient("TryIt");
        MailServer oServer = new MailServer( server, user, password, ServerProtocol.Imap4 );
        oClient.Connect( oServer );
        Imap4Folder [] folders = oClient.Imap4Folders;
        int count = folders.Length;
        for( int i = 0; i < count; i++ )
        {
            Imap4Folder folder = folders[i];
            if( String.Compare( "INBOX", folder.Name, true ) == 0 )
            {
                //select "INBOX" folder
                oClient.SelectFolder( folder );
                break;
            }
        }

        Imap4Folder destFolder = null;
        for( int i = 0; i < count; i++ )
        {
            Imap4Folder folder = folders[i];
            if( String.Compare( "Deleted Items", folder.Name, true ) == 0 )
            {
                //find "Deleted Items" folder
                destFolder = folder;
                break;
            }                   
        }

        if( destFolder == null )
            throw new Exception( "Deleted Items not found!");

        MailInfo[] infos = oClient.GetMailInfos();
        count = infos.Length;
        for( int i = 0; i < count; i++ )
        {
            MailInfo info = infos[i];
            //copy to  "Deleted Items" folder
            oClient.Copy( info, destFolder );
        }
        
        oClient.Logout();           
    }
    catch( Exception ep )
    {
        Console.WriteLine( ep.Message );
    }
}

[C++]
using namespace System;
using namespace System::Collections;
using namespace EAGetMail; 

Void CopyEmail(
   String* server,
   String* user,
   String* password )
{
    try
    {
        MailClient *oClient = new MailClient(S"TryIt");
        MailServer *oServer = new MailServer( server, user, password, ServerProtocol::Imap4 );

        oClient->Connect( oServer );
        Imap4Folder *folders [] = oClient->Imap4Folders;
        int count = folders->Length;
        for( int i = 0; i < count; i++ )
        {
            Imap4Folder *folder = folders[i];
            if( String::Compare( S"INBOX", folder->Name, true ) == 0 )
            {
                //select "INBOX" folder
                oClient->SelectFolder( folder );
                break;
            }
        }

        Imap4Folder *destFolder = NULL;
        for( int i = 0; i < count; i++ )
        {
            Imap4Folder *folder = folders[i];
            if( String::Compare( S"Deleted Items", folder->Name, true ) == 0 )
            {
                //find "Deleted Items" folder
                destFolder = folder;
                break;
            }
        }

        if( destFolder == NULL )
            throw new Exception(S"Deleted Items not found!");

        MailInfo *infos[] = oClient->GetMailInfos();
        count = infos->Length;
        for( int i = 0; i < count; i++ )
        {
            MailInfo *info = infos[i];
            //copy to "Deleted Items" folder
            oClient->Copy( info, destFolder );
        }

        oClient->Logout();
    }
    catch( Exception *ep )
    {
        Console::WriteLine( ep->Message );
    }
}