Sample code for 30+ languages & platforms
SQL Server

Append Part to MIME

See more MIME Examples

Demonstrates the AppendPart method for adding sub-parts to MIME.

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 requires the Chilkat API to have been previously unlocked.
    --  See Global Unlock Sample for sample code.

    --  Create a text/plain part.
    DECLARE @ptMime int
    EXEC @hr = sp_OACreate 'Chilkat.Mime', @ptMime OUT
    IF @hr <> 0
    BEGIN
        PRINT 'Failed to create ActiveX component'
        RETURN
    END

    EXEC sp_OAMethod @ptMime, 'SetBodyFromPlainText', @success OUT, 'This is the plain text body'
    EXEC sp_OAMethod @ptMime, 'GetMime', @sTmp0 OUT
    PRINT @sTmp0

    PRINT '****'

    --  The ptMime contains:
    --  ---------------------------------------
    --  	Content-Type: text/plain
    --  	Content-Transfer-Encoding: 7bit
    --  
    --  	This is the plain text body
    --  ---------------------------------------

    --  Start with an empty MIME object...
    DECLARE @topLevelMime int
    EXEC @hr = sp_OACreate 'Chilkat.Mime', @topLevelMime OUT

    --  Initialize it to a multipart Content-Type.  We'll use multipart/mixed.
    EXEC sp_OAMethod @topLevelMime, 'NewMultipartMixed', @success OUT

    --  Append the ptMime as a child.
    EXEC sp_OAMethod @topLevelMime, 'AppendPart', @success OUT, @ptMime
    EXEC sp_OAMethod @topLevelMime, 'GetMime', @sTmp0 OUT
    PRINT @sTmp0

    PRINT '****'

    --  The topLevelMime contains:
    --  --------------------------
    --  	Content-Type: multipart/mixed; boundary="------------010907090104040508040404"
    --  
    --  	--------------010907090104040508040404
    --  	Content-Type: text/plain
    --  	Content-Transfer-Encoding: 7bit
    --  
    --  	This is the plain text body
    --  	--------------010907090104040508040404--
    --  

    --  IMPORTANT: A copy of the MIME passed in AppendPart is appended.
    --  Therefore, in this case, changing ptMime does not change the text/plain sub-part in topLevelMime.
    --  For example:
    EXEC sp_OAMethod @ptMime, 'SetBody', NULL, 'this is the new plain text body.'
    --  topLevelMime is unchanged.
    EXEC sp_OAMethod @topLevelMime, 'GetMime', @sTmp0 OUT
    PRINT @sTmp0

    PRINT '****'

    --  To change the content in topLevelMime, we must get the text/plain part.
    --  For example:

    DECLARE @ptMime2 int
    EXEC @hr = sp_OACreate 'Chilkat.Mime', @ptMime2 OUT

    EXEC sp_OAMethod @topLevelMime, 'PartAt', @success OUT, 0, @ptMime2

    EXEC sp_OAMethod @ptMime2, 'SetBody', NULL, 'this is the new plain text body.'
    --  Now topLevelMime is changed.
    EXEC sp_OAMethod @topLevelMime, 'GetMime', @sTmp0 OUT
    PRINT @sTmp0

    EXEC @hr = sp_OADestroy @ptMime
    EXEC @hr = sp_OADestroy @topLevelMime
    EXEC @hr = sp_OADestroy @ptMime2


END
GO