Chilkat
HOME
Android™
ASP
Visual Basic
VB.NET
C#
iOS (IPhone)
Objective-C
C++
C
MFC
Delphi
FoxPro
Java
Perl
PHP Extension
PHP ActiveX
Python
PowerShell
Ruby
SQL Server
VBScript
Copy an Email from One Mailbox to AnotherCopies an email from one IMAP folder to another. After running this example, copies of the email will be present in both source and destination folders.
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, CHILKATIMAPLib_TLB, OleCtrls; ... procedure TForm1.Button1Click(Sender: TObject); var imap: TChilkatImap; success: Integer; messageSet: CHILKATIMAPLib_TLB.IMessageSet; fetchUids: Integer; i: Integer; n: Integer; msgId: Integer; isUid: Integer; begin // This example copies an email from one mailbox to another. imap := TChilkatImap.Create(Self); // Anything unlocks the component and begins a fully-functional 30-day trial. success := imap.UnlockComponent('Anything for 30-day trial'); if (success <> 1) then begin ShowMessage(imap.LastErrorText); Exit; end; // Turn on session logging: imap.KeepSessionLog := 1; // Connect to an IMAP server. success := imap.Connect('mail.chilkatsoft.com'); if (success <> 1) then begin ShowMessage(imap.LastErrorText); Exit; end; // Login success := imap.Login('***','***'); if (success <> 1) then begin ShowMessage(imap.LastErrorText); Exit; end; // Select an IMAP mailbox success := imap.SelectMailbox('Inbox.testing.a'); if (success <> 1) then begin ShowMessage(imap.LastErrorText); Exit; end; fetchUids := 1; // Get the message IDs for all emails having "Re:" in the subject. messageSet := imap.Search('SUBJECT Re:',fetchUids); if (messageSet = nil ) then begin ShowMessage(imap.LastErrorText); Exit; end; // Copy the messages from "Inbox.testing.a" to "Inbox.testing.b" in one call to CopyMultiple: success := imap.CopyMultiple(messageSet,'Inbox.testing.b'); if (success <> 1) then begin ShowMessage(imap.LastErrorText); Exit; end; // Alternatively, loop over each message in the set and // copy each separately: n := messageSet.Count; if (n > 0) then begin for i := 0 to n - 1 do begin msgId := messageSet.GetId(i); isUid := messageSet.HasUids; success := imap.Copy(msgId,isUid,'Inbox.testing.c'); if (success <> 1) then begin ShowMessage(imap.LastErrorText); Exit; end; end; end; // Display the session log. Memo1.Lines.Add(imap.SessionLog); // Disconnect from the IMAP server. imap.Disconnect(); end; |
© 2000-2010 Chilkat Software, Inc. All Rights Reserved.