Sample code for 30+ languages & platforms
SQL Server

Build an EDIFACT Email Body

See more Email Object Examples

Demonstrates the Chilkat Email.SetEdifactBody method, a convenience that constructs the customary MIME headers and body for sending an EDIFACT message. It sets the body to the EDIFACT content, sets Content-Transfer-Encoding to Base64, sets Content-Type to application/EDIFACT (with a name attribute from the 2nd argument), and sets Content-Disposition to attachment (with a filename from the 3rd argument). The 4th argument is the charset the message is converted to before Base64 encoding. The subject, recipients, and FROM are left unchanged.

Background: EDIFACT is a long-standing international standard for Electronic Data Interchange (EDI) — structured business documents such as purchase orders (ORDERS) and invoices (INVOIC) exchanged between trading partners. Sending EDIFACT over email requires wrapping the payload in a specific set of MIME headers; SetEdifactBody handles that boilerplate so the message is formatted the way EDI systems expect.

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 @sTmp0 nvarchar(4000)
    --  Demonstrates the SetEdifactBody method, which builds a typical email for sending an
    --  EDIFACT message.  It sets the body to the EDIFACT content, sets Content-Transfer-Encoding
    --  to Base64, Content-Type to application/EDIFACT (with a name attribute), and
    --  Content-Disposition to attachment (with a filename).  The fourth argument is the charset.

    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', 'EDIFACT ORDERS message'
    EXEC sp_OASetProperty @email, 'From', 'edi@example.com'
    DECLARE @success int
    EXEC sp_OAMethod @email, 'AddTo', @success OUT, 'Trading Partner', 'partner@example.com'

    --  The EDIFACT message content (an ORDERS interchange, abbreviated here).
    DECLARE @edi nvarchar(4000)
    SELECT @edi = 'UNA:+.? ''UNB+UNOB:1+SENDER+RECEIVER+260710:1200+1''UNH+1+ORDERS:D:96A:UN''BGM+220+ORD12345+9''UNT+3+1''UNZ+1+1'''

    --  Build the EDIFACT email body.
    EXEC sp_OAMethod @email, 'SetEdifactBody', NULL, @edi, 'order.edi', 'order.edi', 'iso-8859-1'

    EXEC sp_OAMethod @email, 'GetMime', @sTmp0 OUT
    PRINT @sTmp0

    EXEC @hr = sp_OADestroy @email


END
GO