SQL Server
SQL Server
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
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls.
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
DECLARE @hr int
-- Important: Do not use nvarchar(max). See the warning about using nvarchar(max).
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