RFC 1767

MIME Encapsulation of EDI Objects

๐Ÿ“… published March 1995, from ietf

RFC 1767: MIME Encapsulation of EDI Objects ๐Ÿ’Œ๐ŸŽ€

Network Working Group ๐ŸŒธ this one belongs to the Network Working Group.

Request for Comments: 1767

Author: D. Crocker, from Brandenburg Consulting ๐Ÿ’…

Category: Standards Track โœจ (this is an actual standards track protocol, so it's kinda a big deal)

Date: March 1995

Obsoletes / Updates: The title block doesn't list anything it obsoletes or updates. ๐Ÿฆ‹

Status of This Memo โœจ

okay so this document specifies an Internet standards track protocol for the Internet community, and it's literally asking for discussion and suggestions for improvements ๐Ÿซถ If you want to know where this protocol stands, check the current edition of the "Internet Official Protocol Standards" (STD 1), because that's where its standardization state and status live. Distribution of this memo is unlimited, so share it with your whole group chat ๐Ÿ’œ

Table of Contents ๐ŸŒˆ

1. Introduction...........................................  1
2. Application/EDIFACT specification......................  2
3. Application/EDI-X12 specification......................  3
4. Application/EDI-Consent specification..................  4
5. Sample edi usage in MIME-based email...................  5
6. References.............................................  5
7. Security Considerations................................  6
8. Acknowledgments........................................  6
9. Author's Address.......................................  6
10. Appendix - MIME for EDI users.........................  7

1. Introduction โœจ

okay so Electronic Data Interchange (EDI) is how trading partners run structured transactions with each other ๐Ÿ’ผ Back in the paper days those transactions went through the postal system, so it makes total sense that email would be the natural delivery method now ๐Ÿ“ฌ This spec lets formatted electronic business interchanges get wrapped up inside MIME messages [Bore92] โœจ The basic building block here is the interchange, so that's the main character ๐Ÿ‘‘

This spec is ONLY about wrapping EDI objects inside MIME. It doesn't change those objects at all compared to the primary specs that define their syntax and semantics ๐Ÿ™ˆ EDI already travels through a bunch of different carriage and exchange mechanisms, and this just adds one more option: sending it through Internet email ๐Ÿ’Œ

There are lots of different EDI specs, so this doc sorts them into three categories, and each one gets its own MIME content-type ๐ŸŽ€ First up is Application/EDI-X12, for contents that follow the range of specs from the X12 standards organization [X125, X126, X12V]. Next is Application/EDIFACT, for contents that follow the range of specs made by the United Nations Working Party 4 Group of Experts 1 EDIFACT boards [FACT, FACV]. Last but not least is Application/EDI-consent, which covers every other spec ๐Ÿฆ‹

2. APPLICATION/EDIFACT SPECIFICATION ๐Ÿงš

The Application/EDIFACT MIME body-part holds data specified for electronic data interchange by [FACT, FACV] ๐Ÿ’– Here's how EDIFACT info gets described:

   MIME type name:               Application

   MIME subtype name:            EDIFACT

   Required parameters:          none

   Optional parameters:          CHARSET, as defined for MIME

   Encoding considerations:      May need BASE64 or QUOTED-PRINTABLE
                                 transfer encoding

   Security considerations:      See separate section in the
                                 document.

   Published specification:      Contained in the following section.

   Rationale:                    The EDIFACT specifications are
                                 accepted standards for a class of
                                 inter-organization transactions;
                                 this permits their transmission
                                 over the Internet, via email.

   Contact-info:                 See Contact section, below.

For the MIME-based usage details: this is a generic way to send any EDIFACT interchange ๐ŸŒธ The object describes itself, so it says which specific EDI objects are inside it. Most EDI data is plain text, but some special characters, like certain delimiters, can be non-printable ASCII, and some data is pure binary ๐Ÿ˜ญ For EDI objects with that kind of data, the MIME transfer mechanism may need to encode the object using Content-Transfer-Encoding:quoted-printable or base64 ๐Ÿ’…

3. APPLICATION/EDI-X12 SPECIFICATION ๐Ÿ“

The Application/EDI-X12 MIME body-part holds data specified for electronic data interchange by [X125, X12.6, EDIV] โœจ

Here's how EDI-X12 info gets described inside MIME:

   MIME type name:               Application

   MIME subtype name:            EDI-X12

   Required parameters:          none

   Optional parameters:          CHARSET, as defined for MIME

   Encoding considerations:      May need BASE64 or QUOTED-PRINTABLE
                                 transfer encoding

   Security considerations:      See separate section in the
                                 document.

   Published specification:      Contained in the following section.

   Rationale:                    The ASC X12 EDI specifications are
                                 accepted standards for a class of
                                 inter-organization transactions;
                                 this permits their transmission
                                 over the Internet, via email.

   Contact-info:                 See Contact section, below.

Same vibe for the usage details: this is a generic way to send any ASC X12 interchange ๐ŸŽ€ The object describes itself, so it says which specific EDI objects are included. Most of the data is textual, but special delimiter characters can be non-printable ASCII and some data is pure binary ๐Ÿ™ˆ For those objects, the MIME transfer mechanism may need to encode them with Content-Transfer-Encoding:quoted-printable or base64 ๐Ÿซถ

The Application/EDI-consent MIME body-part holds data specified for electronic data interchange, but only with the consent of an explicit, bilateral trading partner agreement that covers exchanging the EDI-consent traffic ๐Ÿค So basically, EDI-consent just gives you a standard way to "wrap" the EDI objects, and it doesn't specify any of the details about those objects ๐ŸŽ

Here's how EDI-consent info gets described inside MIME:

   MIME type name:               Application

   MIME subtype name:            EDI-consent

   Required parameters:          none

   Optional parameters:          CHARSET, as defined for MIME

   Encoding considerations:      May need BASE64 or QUOTED-PRINTABLE
                                 transfer encoding

   Security considerations:      See separate section in the
                                 document.

   Published specification:      Contained in the following section.

   Rationale:                    Existing practice for exchanging
                                 EDI includes a very wide range of
                                 specifications which are not part
                                 of the usual, accredited standards
                                 world.  Nevertheless, this traffic
                                 is substantial and well-
                                 established.  This content type
                                 provides a means of delimiting such
                                 content in a standard fashion.

   Contact-info:                 See Contact section, below.

For the usage details: this is a generic way to send any EDI object the trading partners have explicitly agreed on ๐ŸŒˆ X12 and EDIFACT objects must be sent using their assigned MIME content type โœจ EDI-consent is for every other EDI object, but only according to the trading partner agreements between the originator and the recipient ๐Ÿ’– Most EDI data is textual, though some special delimiter characters can be non-printable ASCII and some data is pure binary ๐Ÿ˜ญ For those objects, the MIME transfer mechanism may need to encode them with Content-Transfer-Encoding:quoted-printable or base64 ๐Ÿฆ‹

5. SAMPLE EDI USAGE IN MIME-BASED EMAIL ๐Ÿ“ง

Real talk: using EDI inside MIME takes a lot of attention to detail ๐Ÿ™ˆ This section is just an example that shows the gist of the formatting you need to wrap EDI objects inside Internet mail with MIME. To send a single EDIFACT interchange, it looks like this:

   To:  <<recipient organization EDI email address>>
   Subject:
   From: <<sending organization EDI email address>>
   Date:
   Mime-Version: 1.0
   Content-Type: Application/EDIFACT
   Content-Transfer-Encoding:  QUOTED-PRINTABLE

   <<standard EDIFACT Interchange goes here>>

6. References ๐Ÿ“š

   [Bore92]    Borenstein, N., and N. Freed, "MIME (Multipurpose
               Internet Mail Extensions) Part One: Mechanisms for
               Specifying and Describing the Format of Internet Message
               Bodies", RFC 1521, Bellcore, Innosoft, September 1993.

   [Brad89]    Braden, R., Editor, "Requirements for Internet Hosts -
               Application and Support", STD 3, RFC 1123, Internet
               Engineering Task Force, October 1989.

   [Croc82]    Crocker, D.,  "Standard for the Format of Internet
               Text Messages", STD 11, RFC 822, UDEL, August 1982.

   [Rose93]    Rose, M., "The Internet Message: Closing the Book
               with Electronic Mail", PTR Prentice Hall, Englewood
               Cliffs, N.J., 1993.

   [Post82]    Postel, J.,  "Simple Mail Transfer Protocol".
               STD 10, RFC 821, USC/Information Sciences Institute,
               August 1982.

   [X12V]      Data Interchange Standards Association; sets of
               specific EDI standards are ordered by their version
               number; Washington D.C.

   [X125]      ANSI X12.5 Interchange Control Structure for
               Electronic Data Interchange, Washington D.C.: DISA
   [X126]      ANSI X12.6 Applications Control Structures for
               Electronic Data Interchange, Washington D.C.: DISA

   [FACT]      United Nations Economic Commission (UN/EC)
               Electronic Data Interchange For Administration,
               Commerce and Transport (EDIFACT) - Application Level
               Syntax Rules (ISO 9735), 1991.

   [FACV]      Version sets contains the specific syntax documents,
               the element and segment dictionaries, and the
               transaction/message specifications.

7. SECURITY CONSIDERATIONS ๐Ÿ”ฅ

This part is SERIOUS, bestie ๐Ÿ˜ญ EDI transactions usually carry sensitive data, so sending them often means dealing with authentication, data integrity, privacy, access control and non-repudiation ๐Ÿ” This spec lets that sensitive data travel over Internet mail and other services that support MIME object encapsulation. When you're sending sensitive data, it is essential that appropriate security services, like authentication, privacy and/or non-repudiation, are provided ๐Ÿ’€

Also, this spec does NOT provide any security-related mechanisms itself ๐Ÿ™ˆ As needed and appropriate, such mechanisms MUST be added, either through Internet MIME-based security services or through any other services that fit the user requirements, like the ones provided by EDI-based standards. no cap, don't skip this part ๐Ÿซถ

8. ACKNOWLEDGMENTS ๐ŸŒธ

Tom Jones wrote the intro text and described the candidate header options ๐ŸŽ€, and a bunch of working group people reviewed and commented, especially Walt Houser, Gail Jackson, and Jim Amster ๐Ÿซถ๐Ÿ’–

9. AUTHOR'S ADDRESS ๐Ÿ’Œ

This is where you find David H. Crocker, the author, and how to reach him ๐Ÿ“žโœจ

David H. Crocker
Brandenburg Consulting
675 Spruce Dr.
Sunnyvale, CA 94086 USA

Phone:  +1 408 246 8253
Fax:  +1 408 249 6205
EMail: dcrocker@mordor.stanford.edu

10. APPENDIX - MIME FOR EDI USERS ๐Ÿฆ‹

Okay bestie, this one's for the EDI people who know their stuff but are newer to Internet email ๐Ÿ’…. It's a super quick intro, mostly here to point you at the right specs ๐Ÿ—บ๏ธ. It is absolutely not a full tutorial ๐Ÿ™ˆ, and the excellent intro text is [Rose93] ๐Ÿ“š.

Internet email runs on the classic user agent / mail transfer agent setup ๐Ÿ“ฎ. The user software makes a standardized object, and standard exchange protocols move it along ๐Ÿššโœจ.

An Internet email object is basically a stack of headers ๐Ÿ“‹ followed by a body that may or may not be structured ๐ŸŽ€. The headers hold stuff like author and recipient addresses, the subject summary, creation date, handling node names, and so on ๐Ÿ’…. They're defined by RFC822 and RFC1123 [Croc82, Brad89]. When the body is structured, it follows the rules of the Multipurpose Internet Message Exchange (MIME) [Bore92] ๐ŸŒˆ. A structured body can have parts in different text character sets, or even totally different kinds of data, like voice or graphics ๐ŸŽง๐Ÿ–ผ๏ธ.

The Simple Mail Transfer Protocol (SMTP) [Post82, Brad89] handles the main job of sending messages ๐Ÿ“ฌ๐Ÿ”ฅ. The posting and delivery chats between the user agent and the message transfer agent on the same machine aren't standardized and are platform-specific ๐Ÿคทโ€โ™€๏ธ.

So an EDI-related use of Internet Mime email will have (at least) these components ๐Ÿงฉ:

    Business Program/Data base -> EDI Translator ->
    -> MIME encapsulation -> RFC822 packaging -> mail
    submission ->
    -> SMTP relaying ->
    -> mail delivery -> RFC822 & Mime stripping ->
    -> EDI Translator -> Business processing

The first and last lines are components every EDI setup already has, so only the EDI "transmission" bits get swapped out for Internet modules ๐Ÿ”„๐Ÿ’œ.

๐Ÿ“ฆ where this page comes from