Sample code for 30+ languages & platforms
SQL Server

Create AMP for Email

See more Email Object Examples

Demonstrates how to create an email that has the AMP for Email Format.

See AMP for Email specification for more information.

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

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

    EXEC sp_OASetProperty @email, 'Subject', 'Sample AMP for Email'
    EXEC sp_OASetProperty @email, 'From', 'mary@example.com'
    EXEC sp_OAMethod @email, 'AddTo', @success OUT, 'Joe', 'joe@example.com'

    -- Create the following AMP for Email HTML

    -- <!doctype html>
    -- <html amp4email>
    -- <head>
    --   <meta charset="utf-8">
    --   <style amp4email-boilerplate>body{visibility:hidden}</style>
    --   <script async src="https://cdn.ampproject.org/v0.js"></script>
    -- </head>
    -- <body>
    -- Hello, world.
    -- </body>
    -- </html>

    DECLARE @sbAmp4Html int
    EXEC @hr = sp_OACreate 'Chilkat.StringBuilder', @sbAmp4Html OUT

    EXEC sp_OAMethod @sbAmp4Html, 'Append', @success OUT, '<!doctype html>'
    EXEC sp_OAMethod @sbAmp4Html, 'Append', @success OUT, '<html amp4email>'
    EXEC sp_OAMethod @sbAmp4Html, 'Append', @success OUT, '<head>'
    EXEC sp_OAMethod @sbAmp4Html, 'Append', @success OUT, '<meta charset="utf-8">'
    EXEC sp_OAMethod @sbAmp4Html, 'Append', @success OUT, '<style amp4email-boilerplate>body{visibility:hidden}</style>'
    EXEC sp_OAMethod @sbAmp4Html, 'Append', @success OUT, '<script async src="https://cdn.ampproject.org/v0.js"></script>'
    EXEC sp_OAMethod @sbAmp4Html, 'Append', @success OUT, '</head>'
    EXEC sp_OAMethod @sbAmp4Html, 'Append', @success OUT, '<body>'
    EXEC sp_OAMethod @sbAmp4Html, 'Append', @success OUT, 'Hello, world.'
    EXEC sp_OAMethod @sbAmp4Html, 'Append', @success OUT, '</body>'
    EXEC sp_OAMethod @sbAmp4Html, 'Append', @success OUT, '</html>'

    -- We want to build a multipart/alternative email, where the 1st alternative body
    -- is text/plain, the 2nd is text/x-amp-html, and the last is text/html.
    -- (Some email clients will only render the last MIME part, so we recommend placing the text/x-amp-html MIME part before the text/html MIME part.)

    -- First create a plain-text email body:
    EXEC sp_OAMethod @email, 'AddPlainTextAlternativeBody', @success OUT, 'Hello World in plain text!'

    -- Now add the text/x-amp-html.
    EXEC sp_OAMethod @sbAmp4Html, 'GetAsString', @sTmp0 OUT
    EXEC sp_OAMethod @email, 'SetTextBody', NULL, @sTmp0, 'text/x-amp-html'

    -- Now add an HTML body..
    EXEC sp_OAMethod @email, 'AddHtmlAlternativeBody', @success OUT, '<span>Hello World in HTML!</span>'

    -- See what we have:
    EXEC sp_OAMethod @email, 'GetMime', @sTmp0 OUT
    PRINT @sTmp0

    -- This is the result:

    -- MIME-Version: 1.0
    -- Date: Thu, 30 May 2019 09:37:56 -0500
    -- Message-ID: <923A689FF657170A9F662B4CE87978AB1EBD4DBD@CHILKATSLICE>
    -- Content-Type: multipart/alternative;
    --  boundary="------------040205090807060906020803"
    -- X-Priority: 3 (Normal)
    -- Subject: Sample AMP for Email
    -- From: mary@example.com
    -- To: Joe <joe@example.com>
    -- 
    -- --------------040205090807060906020803
    -- Content-Transfer-Encoding: 7bit
    -- Content-Type: text/plain; charset=us-ascii; format=flowed
    -- 
    -- Hello World in plain text!
    -- --------------040205090807060906020803
    -- Content-Transfer-Encoding: 7bit
    -- Content-Type: text/x-amp-html; charset=us-ascii
    -- 
    -- <!doctype html><html amp4email><head><meta charset="utf-8"><style amp4email-boilerplate>body{visibility:hidden}</style><script async src="https://cdn.ampproject.org/v0.js"></script></head><body>Hello, world.</body></html>
    -- --------------040205090807060906020803
    -- Content-Transfer-Encoding: 7bit
    -- Content-Type: text/html; charset=us-ascii
    -- 
    -- <span>Hello World in HTML!</span>
    -- 
    -- --------------040205090807060906020803--

    EXEC @hr = sp_OADestroy @email
    EXEC @hr = sp_OADestroy @sbAmp4Html


END
GO