Chilkat HOME ASP Visual Basic VB.NET C# Visual C++ C MFC Delphi FoxPro Java Perl PHP Python 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. CREATE PROCEDURE ChilkatSample AS BEGIN DECLARE @hr int DECLARE @sTmp0 nvarchar(4000) -- This example copies an email from one mailbox to another. DECLARE @imap int EXEC @hr = sp_OACreate 'Chilkat.Imap', @imap OUT IF @hr <> 0 BEGIN PRINT 'Failed to create ActiveX component' RETURN END DECLARE @success int -- Anything unlocks the component and begins a fully-functional 30-day trial. EXEC sp_OAMethod @imap, 'UnlockComponent', @success OUT, 'Anything for 30-day trial' IF @success <> 1 BEGIN EXEC sp_OAGetProperty @imap, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 RETURN END -- Turn on session logging: EXEC sp_OASetProperty @imap, 'KeepSessionLog', 1 -- Connect to an IMAP server. EXEC sp_OAMethod @imap, 'Connect', @success OUT, 'mail.chilkatsoft.com' IF @success <> 1 BEGIN EXEC sp_OAGetProperty @imap, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 RETURN END -- Login EXEC sp_OAMethod @imap, 'Login', @success OUT, '***', '***' IF @success <> 1 BEGIN EXEC sp_OAGetProperty @imap, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 RETURN END -- Select an IMAP mailbox EXEC sp_OAMethod @imap, 'SelectMailbox', @success OUT, 'Inbox.testing.a' IF @success <> 1 BEGIN EXEC sp_OAGetProperty @imap, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 RETURN END DECLARE @messageSet int DECLARE @fetchUids int SELECT @fetchUids = 1 -- Get the message IDs for all emails having "Re:" in the subject. EXEC sp_OAMethod @imap, 'Search', @messageSet OUT, 'SUBJECT Re:', @fetchUids IF @messageSet Is NULL BEGIN EXEC sp_OAGetProperty @imap, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 RETURN END -- Copy the messages from "Inbox.testing.a" to "Inbox.testing.b" in one call to CopyMultiple: EXEC sp_OAMethod @imap, 'CopyMultiple', @success OUT, @messageSet, 'Inbox.testing.b' IF @success <> 1 BEGIN EXEC sp_OAGetProperty @imap, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 RETURN END -- Alternatively, loop over each message in the set and -- copy each separately: DECLARE @i int DECLARE @n int EXEC sp_OAGetProperty @messageSet, 'Count', @n OUT IF @n > 0 BEGIN SELECT @i = 0 WHILE @i <= @n - 1 BEGIN DECLARE @msgId int EXEC sp_OAMethod @messageSet, 'GetId', @msgId OUT, @i DECLARE @isUid int EXEC sp_OAGetProperty @messageSet, 'HasUids', @isUid OUT EXEC sp_OAMethod @imap, 'Copy', @success OUT, @msgId, @isUid, 'Inbox.testing.c' IF @success <> 1 BEGIN EXEC sp_OAGetProperty @imap, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 RETURN END SELECT @i = @i + 1 END END -- Display the session log. EXEC sp_OAGetProperty @imap, 'SessionLog', @sTmp0 OUT PRINT @sTmp0 -- Disconnect from the IMAP server. EXEC sp_OAMethod @imap, 'Disconnect', NULL END GO |
Need a specific example? Send a request to support@chilkatsoft.com
© 2000-2007 Chilkat Software, Inc. All Rights Reserved.