Sample code for 30+ languages & platforms
SQL Server

Create a multipart/related MIME Entity

See more MIME Examples

Demonstrates the Chilkat Mime.NewMultipartRelated method, which initializes the object as an empty multipart/related entity. It takes no arguments; the primary part and its related resources are then appended.

Note: The file paths are relative to the application's current working directory. Absolute paths may also be used. Supply the paths appropriate to your own environment.

Background: multipart/related ties a primary part to the resources it references — most commonly an HTML body and the inline images it embeds via cid: references. Unlike a plain attachment, a related image is displayed within the message rather than listed separately. The HTML part comes first, followed by each referenced resource with a matching Content-ID.

Chilkat SQL Server Downloads

SQL Server
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
    DECLARE @hr int
    DECLARE @iTmp0 int
    DECLARE @sTmp0 nvarchar(4000)
    DECLARE @success int
    SELECT @success = 0

    --  Demonstrates the Mime.NewMultipartRelated method, which initializes the object as an empty
    --  multipart/related entity, clearing any existing content.  It takes no arguments.

    DECLARE @mime int
    EXEC @hr = sp_OACreate 'Chilkat.Mime', @mime OUT
    IF @hr <> 0
    BEGIN
        PRINT 'Failed to create ActiveX component'
        RETURN
    END

    EXEC sp_OAMethod @mime, 'NewMultipartRelated', @success OUT
    IF @success = 0
      BEGIN
        EXEC sp_OAGetProperty @mime, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @mime
        RETURN
      END

    --  multipart/related groups a primary part with the resources it references, such as an HTML body
    --  and the inline images it displays.
    DECLARE @htmlPart int
    EXEC @hr = sp_OACreate 'Chilkat.Mime', @htmlPart OUT

    EXEC sp_OAMethod @htmlPart, 'SetBodyFromHtml', @success OUT, '<html><body><img src="cid:logo"></body></html>'
    IF @success = 0
      BEGIN
        EXEC sp_OAGetProperty @htmlPart, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @mime
        EXEC @hr = sp_OADestroy @htmlPart
        RETURN
      END
    EXEC sp_OAMethod @mime, 'AppendPart', @success OUT, @htmlPart
    IF @success = 0
      BEGIN
        EXEC sp_OAGetProperty @mime, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @mime
        EXEC @hr = sp_OADestroy @htmlPart
        RETURN
      END

    EXEC sp_OAMethod @mime, 'AppendPartFromFile', @success OUT, 'qa_data/logo.png'
    IF @success = 0
      BEGIN
        EXEC sp_OAGetProperty @mime, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @mime
        EXEC @hr = sp_OADestroy @htmlPart
        RETURN
      END


    EXEC sp_OAGetProperty @mime, 'NumParts', @iTmp0 OUT
    PRINT 'Number of parts: ' + @iTmp0

    EXEC @hr = sp_OADestroy @mime
    EXEC @hr = sp_OADestroy @htmlPart


END
GO