Sample code for 30+ languages & platforms
SQL Server

Set a MIME Header Field

See more MIME Examples

Demonstrates the Chilkat Mime.SetHeaderField method, which sets a single header field. The first argument is the field name and the second is the value. All existing occurrences are removed and one replacement is inserted, or a new field is added if none exists.

Background: For headers that should appear exactly once — Subject, From, Content-Type — this is the method to use, because it guarantees a single occurrence no matter how many times you call it. That idempotence is the key difference from AddHeaderField, which would leave duplicates behind. Setting an empty value removes the field.

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
    DECLARE @iTmp0 int
    DECLARE @sTmp0 nvarchar(4000)
    DECLARE @success int
    SELECT @success = 0

    --  Demonstrates the Mime.SetHeaderField method, which sets a single header field.  The 1st argument
    --  is the field name and the 2nd is the value.  All existing occurrences are removed and one
    --  replacement is inserted (or a new field is added if none exists).

    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, 'SetBodyFromPlainText', @success OUT, 'Hello.'
    IF @success = 0
      BEGIN
        EXEC sp_OAGetProperty @mime, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @mime
        RETURN
      END

    --  Unlike AddHeaderField, SetHeaderField ensures exactly one field with this name.
    EXEC sp_OAMethod @mime, 'SetHeaderField', @success OUT, 'Subject', 'Weekly Report'
    IF @success = 0
      BEGIN
        EXEC sp_OAGetProperty @mime, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @mime
        RETURN
      END

    --  Setting it again replaces the previous value rather than adding a duplicate.
    EXEC sp_OAMethod @mime, 'SetHeaderField', @success OUT, 'Subject', 'Weekly Report (revised)'
    IF @success = 0
      BEGIN
        EXEC sp_OAGetProperty @mime, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @mime
        RETURN
      END

    DECLARE @subject nvarchar(4000)
    EXEC sp_OAMethod @mime, 'GetHeaderField', @subject OUT, 'Subject'
    EXEC sp_OAGetProperty @mime, 'LastMethodSuccess', @iTmp0 OUT
    IF @iTmp0 = 0
      BEGIN
        EXEC sp_OAGetProperty @mime, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @mime
        RETURN
      END

    PRINT 'Subject: ' + @subject

    EXEC @hr = sp_OADestroy @mime


END
GO