Sample code for 30+ languages & platforms
SQL Server Requires Chilkat v11.0.0+

POP3 Session Log

Demonstrates how the Chilkat email component keeps a log of the current POP3 session in the mailman.Pop3SessionLog property.

Chilkat SQL Server Downloads

SQL Server
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
    DECLARE @hr int
    DECLARE @sTmp0 nvarchar(4000)
    DECLARE @success int
    SELECT @success = 0

    --  This example assumes the Chilkat API to have been previously unlocked.
    --  See Global Unlock Sample for sample code.

    --  The mailman object is used for receiving (POP3) 
    --  and sending (SMTP) email.
    DECLARE @mailman int
    EXEC @hr = sp_OACreate 'Chilkat.MailMan', @mailman OUT
    IF @hr <> 0
    BEGIN
        PRINT 'Failed to create ActiveX component'
        RETURN
    END

    --  Set the POP3 server's hostname
    EXEC sp_OASetProperty @mailman, 'MailHost', 'pop3.example.com'

    --  Set the POP3 login/password.
    EXEC sp_OASetProperty @mailman, 'PopUsername', 'pop3_login'
    EXEC sp_OASetProperty @mailman, 'PopPassword', 'pop3_password'
    EXEC sp_OASetProperty @mailman, 'MailPort', 995
    EXEC sp_OASetProperty @mailman, 'PopSsl', 1

    --  You can start and end POP3 sessions using Pop3BeginSession and Pop3EndSession. 
    --  However, these calls are optional because a connection will be established automatically 
    --  when a method requiring a POP3 server connection is used.

    EXEC sp_OAMethod @mailman, 'Pop3BeginSession', @success OUT
    IF @success = 0
      BEGIN
        EXEC sp_OAGetProperty @mailman, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @mailman
        RETURN
      END

    --  Get the list of UIDLs for all emails in the mailbox.
    DECLARE @stUidls int
    EXEC @hr = sp_OACreate 'Chilkat.StringTable', @stUidls OUT

    EXEC sp_OAMethod @mailman, 'FetchUidls', @success OUT, @stUidls
    IF @success = 0
      BEGIN
        EXEC sp_OAGetProperty @mailman, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @mailman
        EXEC @hr = sp_OADestroy @stUidls
        RETURN
      END

    --  Examine the POP3 session log:
    EXEC sp_OAGetProperty @mailman, 'Pop3SessionLog', @sTmp0 OUT
    PRINT @sTmp0

    --  A sample session log:

    --  **** Connected to pop.example.com:995
    --  < +OK Dovecot ready.
    --  > USER ****
    --  < +OK
    --  > PASS ****
    --  < +OK Logged in.
    --  > UIDL
    --  < +OK
    --  1 UID8226-1490455265
    --  2 UID8248-1490455265
    --  3 UID8624-1490455265
    --  4 UID8655-1490455265
    --  5 UID8706-1490455265
    --  6 UID9003-1490455265
    --  7 UID9204-1490455265
    --  8 UID9309-1490455265
    --  9 UID9311-1490455265
    --  10 UID9356-1490455265
    --  11 UID9802-1490455265
    --  12 UID10373-1490455265
    --  13 UID10543-1490455265
    --  14 UID10548-1490455265
    --  15 UID10558-1490455265
    --  16 UID10567-1490455265
    --  17 UID10573-1490455265
    --  .

    EXEC sp_OAMethod @mailman, 'Pop3EndSession', @success OUT
    IF @success = 0
      BEGIN
        EXEC sp_OAGetProperty @mailman, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @mailman
        EXEC @hr = sp_OADestroy @stUidls
        RETURN
      END

    EXEC @hr = sp_OADestroy @mailman
    EXEC @hr = sp_OADestroy @stUidls


END
GO