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

Delete All Email in a POP3 Mailbox

Delete all email in a POP3 mailbox.

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', 'pop.example.com'

    --  Set the POP3 login/password.
    EXEC sp_OASetProperty @mailman, 'PopUsername', 'bob@example.com'
    EXEC sp_OASetProperty @mailman, 'PopPassword', '****'

    --  Make sure the ImmediateDelete property is set (this is the default)
    --  If ImmediateDelete is not set, messages marked for deletion
    --  by the Delete* methods will not be deleted until the POP3
    --  connection is closed by calling Pop3EndSession.
    EXEC sp_OASetProperty @mailman, 'ImmediateDelete', 1

    --  First, get all the UIDLs.
    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

    --  Next, delete them all.
    EXEC sp_OAMethod @mailman, 'DeleteUidlSet', @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

    --  We're done with the POP3 session, so it doesn't hurt to call this...
    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


    PRINT 'Success.'

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


END
GO