Sample code for 30+ languages & platforms
DataFlex

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 DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Handle hoEmail
    Boolean iSuccess
    String sEdi
    String sTemp1

    //  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.

    Get Create (RefClass(cComChilkatEmail)) To hoEmail
    If (Not(IsComObjectCreated(hoEmail))) Begin
        Send CreateComObject of hoEmail
    End
    Set ComSubject Of hoEmail To "EDIFACT ORDERS message"
    Set ComFrom Of hoEmail To "edi@example.com"
    Get ComAddTo Of hoEmail "Trading Partner" "partner@example.com" To iSuccess

    //  The EDIFACT message content (an ORDERS interchange, abbreviated here).
    Move "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'" To sEdi

    //  Build the EDIFACT email body.
    Send ComSetEdifactBody To hoEmail sEdi "order.edi" "order.edi" "iso-8859-1"

    Get ComGetMime Of hoEmail To sTemp1
    Showln sTemp1


End_Procedure