SQL Server
SQL Server
Get a Header Attribute of an Attached Message
See more Email Object Examples
Demonstrates the Chilkat Email.GetAttachedMessageAttr method, which returns a header-field attribute value for the Nth attached (embedded) email. The first argument is the zero-based attached-message index, the second is the header field name, and the third is the attribute name. This example attaches an email and reads the filename attribute of its Content-Disposition header.
Background: MIME header fields can carry named attributes (parameters) after the main value — for example
Content-Disposition: attachment; filename="report.eml", where filename is an attribute. Rather than parsing the raw header yourself, this method extracts a single named attribute from a chosen header of a specific embedded message, which is convenient when a message forwards other emails as nested message/rfc822 parts.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 GetAttachedMessageAttr method, which returns a header-field attribute
-- value for the Nth attached (embedded) email. The first argument is the zero-based
-- attached-message index, the second is the header field name, and the third is the attribute name.
-- Build an inner email to attach.
DECLARE @innerEmail int
EXEC @hr = sp_OACreate 'Chilkat.Email', @innerEmail OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
EXEC sp_OASetProperty @innerEmail, 'Subject', 'Embedded message'
EXEC sp_OASetProperty @innerEmail, 'From', 'alice@example.com'
EXEC sp_OAMethod @innerEmail, 'AddTo', @success OUT, 'Bob', 'bob@example.com'
-- Attach it to an outer email as a message/rfc822 part.
DECLARE @email int
EXEC @hr = sp_OACreate 'Chilkat.Email', @email OUT
EXEC sp_OASetProperty @email, 'Subject', 'Has an attached message'
EXEC sp_OAMethod @email, 'AttachEmail', @success OUT, @innerEmail
IF @success = 0
BEGIN
EXEC sp_OAGetProperty @email, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @innerEmail
EXEC @hr = sp_OADestroy @email
RETURN
END
-- Get the "filename" attribute of the "Content-Disposition" header of the first
-- attached message (index 0).
DECLARE @fname nvarchar(4000)
EXEC sp_OAMethod @email, 'GetAttachedMessageAttr', @fname OUT, 0, 'Content-Disposition', 'filename'
PRINT 'Attached message filename attribute: ' + @fname
EXEC @hr = sp_OADestroy @innerEmail
EXEC @hr = sp_OADestroy @email
END
GO