SQL Server Stored Procedure Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

SQL Server
Stored Procedure Examples

Quick Start
Encryption
File Access
IMAP
POP3
SMTP
Email Object
FTP
HTML-to-XML
HTTP
MHT
MIME
RSA Encryption
Socket
Spider
String
Tar
Upload
XML
XMP
Zip

Byte Array
RSS
Atom
Self-Extractor

Copy an Email from One Mailbox to Another

Copies 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.

Download Chilkat IMAP ActiveX

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.