SQL Server
SQL Server
Append MIME with Initial IMAP Flags
See more IMAP Examples
Demonstrates the Chilkat Imap.AppendMimeWithFlags method, which uploads a MIME message and sets its initial system flags. The first argument is the mailbox and the second is the MIME text. The third through sixth arguments control \Seen, \Flagged, \Answered, and \Draft respectively — pass true to set a flag. This example uploads a message that is already marked read.
Background: When importing or archiving mail you frequently want the uploaded message to arrive in a particular state — already read, pre-flagged, or marked as a draft. Setting the flags at append time is a single operation, avoiding a second
STORE round trip. These explicit arguments take precedence over the AppendSeen 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
DECLARE @iTmp0 int
DECLARE @sTmp0 nvarchar(4000)
DECLARE @success int
SELECT @success = 0
-- Demonstrates the Imap.AppendMimeWithFlags method, which uploads a MIME message and sets its
-- initial system flags. The 1st argument is the mailbox, the 2nd is the MIME text, and the
-- 3rd through 6th arguments set the \Seen, \Flagged, \Answered, and \Draft flags.
DECLARE @imap int
EXEC @hr = sp_OACreate 'Chilkat.Imap', @imap OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
EXEC sp_OASetProperty @imap, 'Ssl', 1
EXEC sp_OASetProperty @imap, 'Port', 993
EXEC sp_OAMethod @imap, 'Connect', @success OUT, 'imap.example.com'
IF @success = 0
BEGIN
EXEC sp_OAGetProperty @imap, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @imap
RETURN
END
EXEC sp_OAMethod @imap, 'Login', @success OUT, 'user@example.com', 'myPassword'
IF @success = 0
BEGIN
EXEC sp_OAGetProperty @imap, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @imap
RETURN
END
-- Build the email to be uploaded.
DECLARE @email int
EXEC @hr = sp_OACreate 'Chilkat.Email', @email OUT
EXEC sp_OASetProperty @email, 'Subject', 'Meeting agenda'
EXEC sp_OASetProperty @email, 'From', 'Alice <alice@example.com>'
EXEC sp_OAMethod @email, 'AddTo', @success OUT, 'Bob', 'bob@example.com'
EXEC sp_OASetProperty @email, 'Body', 'Let''s meet at 10am to review the agenda.'
DECLARE @mimeText nvarchar(4000)
EXEC sp_OAMethod @email, 'GetMime', @mimeText OUT
EXEC sp_OAGetProperty @email, 'LastMethodSuccess', @iTmp0 OUT
IF @iTmp0 = 0
BEGIN
EXEC sp_OAGetProperty @email, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @imap
EXEC @hr = sp_OADestroy @email
RETURN
END
-- Choose the initial flags. Named variables make each argument's meaning clear at the call.
DECLARE @seen int
SELECT @seen = 1
DECLARE @flagged int
SELECT @flagged = 0
DECLARE @answered int
SELECT @answered = 0
DECLARE @draft int
SELECT @draft = 0
-- Upload to the Inbox already marked as read (\Seen), with the other flags unset.
EXEC sp_OAMethod @imap, 'AppendMimeWithFlags', @success OUT, 'Inbox', @mimeText, @seen, @flagged, @answered, @draft
IF @success = 0
BEGIN
EXEC sp_OAGetProperty @imap, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @imap
EXEC @hr = sp_OADestroy @email
RETURN
END
EXEC sp_OAGetProperty @imap, 'AppendUid', @iTmp0 OUT
PRINT 'Appended UID: ' + @iTmp0
EXEC sp_OAMethod @imap, 'Disconnect', @success OUT
IF @success = 0
BEGIN
EXEC sp_OAGetProperty @imap, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @imap
EXEC @hr = sp_OADestroy @email
RETURN
END
EXEC @hr = sp_OADestroy @imap
EXEC @hr = sp_OADestroy @email
END
GO