SQL Server Stored Procedure Examples

ChilkatHOMEAndroid™ASPVisual BasicVB.NETC#iOS (IPhone)Objective-CC++CMFCDelphiFoxProJavaPerl
PHP ExtensionPHP ActiveXPythonPowerShellRubySQL ServerVBScript

SQL Server
Stored Procedure Examples

Quick Start
Encryption
File Access
IMAP
POP3
SMTP
Email Object
DKIM / DomainKey
FTP
HTML Conversion
HTTP
MHT
MIME
NTLM
RSA
Diffie-Hellman
DSA
Socket
Spider
SSH Key
SSH
SSH Tunnel
SFTP
String
Tar
Upload
XML
XMP
Zip

Amazon S3
Bz2
CSV
FileAccess
Byte Array
RSS
Atom
Self-Extractor

Read Headers and Get Attachment Info, Recipients, etc.

Read IMAP email headers and get attachment info, recipients, etc.

Download Chilkat IMAP ActiveX

CREATE PROCEDURE ChilkatSample
AS
BEGIN
    DECLARE @hr int
    DECLARE @iTmp0 int
    DECLARE @sTmp0 nvarchar(4000)
    DECLARE @sTmp1 nvarchar(4000)
    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

    --  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, 'myLogin', 'myPassword'
    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'
    IF @success <> 1
      BEGIN
        EXEC sp_OAGetProperty @imap, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        RETURN
      END

    DECLARE @messageSet int

    --  We can choose to fetch UIDs or sequence numbers.
    DECLARE @fetchUids int

    SELECT @fetchUids = 1
    --  Get the message IDs of all the emails in the mailbox
    EXEC sp_OAMethod @imap, 'Search', @messageSet OUT, 'ALL', @fetchUids
    IF @messageSet Is NULL 
      BEGIN
        EXEC sp_OAGetProperty @imap, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        RETURN
      END

    --  When downloading headers, each email object contains
    --  (obviously) the headers, but the body will be missing.
    --  Also, attachments will not be included.  However, it is
    --  possible to get information about the attachments
    --  as well as the complete size of the email.
    DECLARE @bundle int

    EXEC sp_OAMethod @imap, 'FetchHeaders', @bundle OUT, @messageSet
    IF @bundle Is NULL 
      BEGIN

        EXEC sp_OAGetProperty @imap, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        RETURN
      END

    --  Loop over the email objects and display information
    --  about each:
    DECLARE @i int

    EXEC sp_OAGetProperty @bundle, 'MessageCount', @iTmp0 OUT
    SELECT @i = 0
    WHILE @i < @iTmp0 - 1
      BEGIN
        DECLARE @email int

        EXEC sp_OAMethod @bundle, 'GetEmail', @email OUT, @i

        --  Display the From and Subject
        EXEC sp_OAGetProperty @email, 'From', @sTmp0 OUT

        PRINT @sTmp0
        EXEC sp_OAGetProperty @email, 'Subject', @sTmp0 OUT

        PRINT @sTmp0

        --  Display the recipients:
        DECLARE @j int

        EXEC sp_OAGetProperty @email, 'NumTo', @iTmp0 OUT
        SELECT @j = 0
        WHILE @j < @iTmp0 - 1
          BEGIN
            EXEC sp_OAMethod @email, 'GetToName', @sTmp0 OUT, @j

            EXEC sp_OAMethod @email, 'GetToAddr', @sTmp1 OUT, @j
            PRINT @sTmp0 + ', ' + @sTmp1
            SELECT @j = @j + 1
          END
        EXEC sp_OAGetProperty @email, 'NumCC', @iTmp0 OUT
        SELECT @j = 0
        WHILE @j < @iTmp0 - 1
          BEGIN
            EXEC sp_OAMethod @email, 'GetCcName', @sTmp0 OUT, @j

            EXEC sp_OAMethod @email, 'GetCcAddr', @sTmp1 OUT, @j
            PRINT @sTmp0 + ', ' + @sTmp1
            SELECT @j = @j + 1
          END

        --  Show the total size of the email, including body and attachments:
        EXEC sp_OAGetProperty @email, 'Size', @iTmp0 OUT

        PRINT @iTmp0

        --  When a full email is downloaded, we would use the
        --  email.NumAttachments property in conjunction with the
        --  email.GetMailAttach* methods.
        --  However, when an email object contains only the header,
        --  we need to access the attachment info differently:
        DECLARE @numAttach int

        EXEC sp_OAMethod @imap, 'GetMailNumAttach', @numAttach OUT, @email
        SELECT @j = 0
        WHILE @j < @numAttach - 1
          BEGIN
            EXEC sp_OAMethod @imap, 'GetMailAttachFilename', @sTmp0 OUT, @email, @j
            PRINT @sTmp0
            DECLARE @attachSize int

            EXEC sp_OAMethod @imap, 'GetMailAttachSize', @attachSize OUT, @email, @j



            PRINT '    size = ' + STR(@attachSize) + ' bytes'
            SELECT @j = @j + 1
          END


        PRINT '--'

        SELECT @i = @i + 1
      END

    --  Disconnect from the IMAP server.
    EXEC sp_OAMethod @imap, 'Disconnect', NULL


END
GO

 

© 2000-2010 Chilkat Software, Inc. All Rights Reserved.