Click here to Skip to main content
15,919,341 members

Welcome to the Lounge

   

For discussing anything related to a software developer's life but is not for programming questions. Got a programming question?

The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.

 
GeneralRe: Anyone heard of the X.400 protocol? Pin
Chris Maunder22-May-24 7:19
cofounderChris Maunder22-May-24 7:19 
GeneralRe: Anyone heard of the X.400 protocol? Pin
Sander Rossel22-May-24 22:18
professionalSander Rossel22-May-24 22:18 
GeneralRe: Anyone heard of the X.400 protocol? Pin
Peter Shaw27-May-24 5:21
professionalPeter Shaw27-May-24 5:21 
GeneralRe: Anyone heard of the X.400 protocol? Pin
trønderen27-May-24 9:00
trønderen27-May-24 9:00 
GeneralRe: Anyone heard of the X.400 protocol? Pin
honey the codewitch22-May-24 7:49
mvahoney the codewitch22-May-24 7:49 
GeneralRe: Anyone heard of the X.400 protocol? Pin
gthp_cp22-May-24 10:12
gthp_cp22-May-24 10:12 
GeneralRe: Anyone heard of the X.400 protocol? Pin
Sander Rossel22-May-24 22:18
professionalSander Rossel22-May-24 22:18 
GeneralRe: Anyone heard of the X.400 protocol? Pin
trønderen22-May-24 10:52
trønderen22-May-24 10:52 
Certainly not "private" email! One of the reasons why it was rejected by the internet community around 1990 was that is assumed a public infrastructure comparable to the paper mail system, with post offices run by recognized authorities, strict tests for conformance before you were recognized by the post office, etc.

X.400 was standardized in 1984, with a revision in 1988 that still holds up today. (There are a few updates since, but they are rather insignificant.) From the first (1984) version, it fully handled binary body parts. All attribute strings use 8 bit character sets, transmitted in a Tag-Length-Value format, so there is never any need for quoting or escaping.
Encrypted mail was included from the very first version, and with that: Authentication.

As the mail transfer is done through a network of publicly recognized agents, you cannot fake mail: The transfer network knows where it was submitted, and verifies that the sender identification corresponds to the identity of the submitter (you must present an ID when submitting mail), so tracing/curbing a spammer would be quite simple.

The message transfer service can provide a delivery report (for non-repudiation purposes), both when the message is delivered from the transfer service to the recipient's mailbox and when the user fetches it from the mailbox into his reader.

A related service: You can submit a message for delivery at a specific time: The message transfer service holds it back at the target "post office" until the specified time, when it is delivered to the recipient's mailbox. If you change your mind before the delivery time is up, you can recall the message, and it is not delivered. (In the old days, the postal system had this service for paper mail as well: You could request a given delivery time, as well as recall mail not yet delivered.)

Chances are that you have used X.400! The major change from the 1984 to the 1988 version was not much on the functional side, but a complete reorganization of the standard content. So the directory service, developed for the address format of X.400 email, and first a part of the X.400 standard, was split off as X.500 in the 1988 version. The internet community didn't have any directory system comparable to X.500 (or if you like: X.400-and-something; I don't have that version available, but X.421 rings a bell; that may be wrong), so they developed an IP-based protocol based on X.500, leaving out the parts too complex to be implemented by sophomore or junior IT students, and called it LDAP - Lightweight Directory Access Protocol. Maybe you haven't coded the LDAP protocol yourself, but you must have been using applications that accesses LDAP directories.

Another X.400-X.500 thing you most certainly have used (maybe without knowing it): Certificates for e.g. TLS authentication/encryption are called "X.509 certificates". This was just a framework, not fully developed, in 1984, when the directory service was part of X.400. So you could argue that you are using X.500, not X.400 - but X.509 has its roots in X.400.

Baseline: X.400 was a fully matured, fully functional E-mail protocol since 1988 - almost all of it in place in 1984. In spite of threescore (or thereabouts) extensions to SMTP, it still doesn't provide the full capabilities of X.400 forty years ago.

Now, X.400 (as well as X.500) is an element in a large infrastructure, built on some rather fancy building blocks. The standard spec is based on a set of lower protocols, which are probably completely unknown to a pure internet guy. You do not sit down tonight with a beer in your hand, intending to flip through the standard so you can start coding it tomorrow morning. Learning the inner workings of X.400 and all the standards it is based on is a huge task if you know nothing of it in advance!

Your only hope is to find some implementation that you can use, and learn its interface. That will probably be some sort of "P7" protocol implementation - how to access your mailbox. The protocol between the mailbox and the transfer service is the "P3" protocol, and is significantly more complex. That is not a place to start!

Note that X.400 (like all other X.*** protocols) defines all the details of what goes across the line. It also defines how you submit and receive data, but there is not a one-to-one relationship between your calls and the network transfers. Sometimes, the connection between the two is rather vague (at least until you learn the inner workings).

If you are going to use X.400, rather than implement it, you can forget about the line protocol, and rather study the service interface (a.k.a "API). The standard defines the services (calls), and the parameters in an abstract sense: Details of what kind of values, in which structures, but nothing about how these are realized in a specific language or on a specific machine - that is all "a local matter". You have the freedom to do it just the way you like, as long as it comes down to the standard line protocol elements.

When you find yourself a P7 implementation for your OS and machine, that implementation has made some decisions about how the abstract data objects are implemented as concrete ones, and you must dance to that fiddle.

If you decide to jump into this vast ocean Smile | :) , X.413 is the document where you find the P7 service definitions. X.419 documents the line protocol. But you can't just read these two alone - most of the stuff from X.400 to X.420 is "required basic knowledge" for any sort of implementation, even if you are just implementing the message store (mailbox) with P3 in one end, P7 in the other. You find them all at https://www.itu.int/itu-t/recommendations/index.aspx?ser=X[^]; click "X.400-X.499: Message Handling Systems" and navigate from there.

But you are not done with that! You will need to learn ASN.1 (in the X.68x series) and ROSE (in the X.88x series) just to understand the X.400 standards. Then comes ACSE (X.217) and Reliable Transfer (X.218/X.228), and most likely a few more.

* * *
One thing that is not clear to me: You can develop an EDI application, and feed it through your mailbox to the X.400 network. But: Is there an X.400 network you can mail it to? I am not familiar with ATLAS400, it seems to be an X.400 network of sorts, but how can you access it? How can the customer access it? Does it provide an X.400 MTA (Message Transfer Agent, a "post office")? Do they offer a message store to be run centrally? Or to be run locally at your PC? Do they provide documentation of their P7 API? (I really should say "message store API", you don't have an API to the protocol).

Seems like there are lots of open ends here!

* * *
While OSI protocols are really tough get under your skin: If the tools are in place, as well as good implementations of all lower layers, and you know the formalism, the definition languages, and you have proper tools: Adding an application such as P3 or P7 (or the X.500 directory protocol) is just the frosting on the cake. The final touch. Almost no work at all, compared to implementing it all the way to the bottom.
You are not in that situation.

Bottom line: Even if you find some suitable message store implementation (P7 protocol) I think your task will be formidable, if you have no background in OSI protocols. To be frank: I do not expect you to succeed. (But kudos to you if you do succeed!)
Religious freedom is the freedom to say that two plus two make five.

GeneralRe: Anyone heard of the X.400 protocol? Pin
Sander Rossel22-May-24 22:16
professionalSander Rossel22-May-24 22:16 
GeneralRe: Anyone heard of the X.400 protocol? Pin
Peter Adam22-May-24 20:27
professionalPeter Adam22-May-24 20:27 
GeneralRe: Anyone heard of the X.400 protocol? Pin
trønderen23-May-24 4:30
trønderen23-May-24 4:30 
GeneralWill Waymo Stop Pin
BernardIE531722-May-24 5:06
BernardIE531722-May-24 5:06 
GeneralRe: Will Waymo Stop Pin
k505422-May-24 5:40
mvek505422-May-24 5:40 
GeneralRe: Will Waymo Stop Pin
Gary Stachelski 202122-May-24 9:50
Gary Stachelski 202122-May-24 9:50 
GeneralRe: Will Waymo Stop Pin
BernardIE531722-May-24 9:57
BernardIE531722-May-24 9:57 
GeneralRe: Will Waymo Stop Pin
Gary Stachelski 202122-May-24 13:23
Gary Stachelski 202122-May-24 13:23 
GeneralWordle 1,068 Pin
Sandeep Mewara21-May-24 16:12
mveSandeep Mewara21-May-24 16:12 
GeneralRe: Wordle 1,068 Pin
Amarnath S21-May-24 16:21
professionalAmarnath S21-May-24 16:21 
GeneralRe: Wordle 1,068 Pin
Shane010321-May-24 17:50
Shane010321-May-24 17:50 
GeneralRe: Wordle 1,068 Pin
GKP199221-May-24 18:24
professionalGKP199221-May-24 18:24 
GeneralRe: Wordle 1,068 Pin
OriginalGriff21-May-24 19:05
mveOriginalGriff21-May-24 19:05 
GeneralRe: Wordle 1,068 - 3 4 me Pin
pkfox21-May-24 20:03
professionalpkfox21-May-24 20:03 
GeneralRe: Wordle 1,068 Pin
ChandraRam21-May-24 21:36
ChandraRam21-May-24 21:36 
GeneralRe: Wordle 1,068 Pin
Sander Rossel21-May-24 22:15
professionalSander Rossel21-May-24 22:15 
GeneralRe: Wordle 1,068 Pin
Cp-Coder22-May-24 0:50
Cp-Coder22-May-24 0:50 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.