Sample code for 30+ languages & platforms
SQL Server

Create multipart/alternative MIME

See more MIME Examples

Demonstrates how to create a multipart/alternative MIME structure using the NewMultipartAlternative method.

Chilkat SQL Server Downloads

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

    -- Start with an empty MIME object...
    DECLARE @mime int
    EXEC @hr = sp_OACreate 'Chilkat.Mime', @mime OUT
    IF @hr <> 0
    BEGIN
        PRINT 'Failed to create ActiveX component'
        RETURN
    END

    -- Initialize it as multipart/alternative.
    EXEC sp_OAMethod @mime, 'NewMultipartAlternative', @success OUT

    -- Create a text/plain part.
    DECLARE @ptMime int
    EXEC @hr = sp_OACreate 'Chilkat.Mime', @ptMime OUT

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

    PRINT '****'

    -- The text/plain part looks like this:

    -- 	Content-Type: text/plain
    -- 	Content-Transfer-Encoding: 7bit
    -- 
    -- 	This is the plain text body.

    -- Create a text/HTML part.
    DECLARE @htmlMime int
    EXEC @hr = sp_OACreate 'Chilkat.Mime', @htmlMime OUT

    EXEC sp_OAMethod @htmlMime, 'SetBodyFromHtml', @success OUT, '<html><body><p>This is the <b>HTML body</b></p></body></html>'
    EXEC sp_OAMethod @htmlMime, 'GetMime', @sTmp0 OUT
    PRINT @sTmp0

    PRINT '****'

    -- The text/html part looks like this:

    -- 	Content-Type: text/html
    -- 	Content-Transfer-Encoding: 7bit
    -- 
    -- 	<html><body><p>This is the <b>HTML body</b></p></body></html>

    -- Add both parts as children of the multipart/alternative
    EXEC sp_OAMethod @mime, 'AppendPart', @success OUT, @ptMime
    EXEC sp_OAMethod @mime, 'AppendPart', @success OUT, @htmlMime
    EXEC sp_OAMethod @mime, 'GetMime', @sTmp0 OUT
    PRINT @sTmp0

    -- This the result.  The boundary string was automatically generaetd.

    -- 	Content-Type: multipart/alternative; boundary="------------080803090906030708030908"
    -- 
    -- 	--------------080803090906030708030908
    -- 	Content-Type: text/plain
    -- 	Content-Transfer-Encoding: 7bit
    -- 
    -- 	This is the plain text body.
    -- 	--------------080803090906030708030908
    -- 	Content-Type: text/html
    -- 	Content-Transfer-Encoding: 7bit
    -- 
    -- 	<html><body><p>This is the <b>HTML body</b></p></body></html>
    -- 	--------------080803090906030708030908--

    EXEC @hr = sp_OADestroy @mime
    EXEC @hr = sp_OADestroy @ptMime
    EXEC @hr = sp_OADestroy @htmlMime


END
GO