SQL Server
SQL Server
Get the Content-Location of a Related Item
See more Email Object Examples
Demonstrates the Chilkat Email.GetRelatedContentLocation method, which returns the Content-Location of a related item (typically an image or style sheet embedded within an HTML email). The index is zero-based. This example loads an image from a file into a BinData object and adds it as a related item addressed by Content-Location using AddRelatedBd2, then reads it back.
Background:
Content-Location is the alternative to Content-ID for linking HTML to its embedded resources. Instead of a cid: reference, the HTML keeps an ordinary-looking src="logo.png", and the matching part carries a Content-Location of logo.png. Since the image is binary, it is loaded into a BinData object and added with AddRelatedBd2. This approach is common when an existing web page is turned into an email, since the original relative URLs can stay unchanged.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 @sTmp0 nvarchar(4000)
DECLARE @success int
SELECT @success = 0
-- Demonstrates the GetRelatedContentLocation method, which returns the Content-Location of
-- a related item. Related items are typically images and style sheets embedded within
-- HTML emails. The index is zero-based.
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', 'GetRelatedContentLocation example'
-- The HTML references the image by the same name used as the Content-Location.
EXEC sp_OAMethod @email, 'SetHtmlBody', NULL, '<html><body><img src="logo.png"/></body></html>'
-- Load the image data from a file into a BinData object.
DECLARE @bdImage int
EXEC @hr = sp_OACreate 'Chilkat.BinData', @bdImage OUT
EXEC sp_OAMethod @bdImage, 'LoadFile', @success OUT, 'qa_data/images/logo.png'
IF @success = 0
BEGIN
EXEC sp_OAGetProperty @bdImage, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @email
EXEC @hr = sp_OADestroy @bdImage
RETURN
END
-- Add the image as a related item addressed by Content-Location "logo.png".
EXEC sp_OAMethod @email, 'AddRelatedBd2', @success OUT, @bdImage, 'logo.png'
IF @success = 0
BEGIN
EXEC sp_OAGetProperty @email, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @email
EXEC @hr = sp_OADestroy @bdImage
RETURN
END
-- Read the Content-Location of the first related item (index 0).
DECLARE @loc nvarchar(4000)
EXEC sp_OAMethod @email, 'GetRelatedContentLocation', @loc OUT, 0
PRINT 'Related item 0 Content-Location: ' + @loc
-- Note: The path "qa_data/images/logo.png" is a relative local filesystem path,
-- relative to the current working directory of the running application.
EXEC @hr = sp_OADestroy @email
EXEC @hr = sp_OADestroy @bdImage
END
GO