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
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 );
}
}