Jürgen Hoffmann schrieb:
Hi Danny,

Danny Angus wrote:
It is acceptable for us to build non-compliant behaviour into James to
support interoperability with "broken" implementations. However it
should always be disabled by default so that operators make a
conscious decision to enable non-compliant behaviour.

Well, this statement is fine, isn't it? And it reflects what everybody wants, right? We have compliance configured by default, with the option to enable the handling of common RFC violations.

The question at hand is, what do you want to achieve. Is it to be the strictest Mailserver out there, only allowing RFC compliant conversations?

Noel suggested, that the documentation to configure non-RFC compliance should neither be inside the configuration file, nor in the website.

Is this really what you want? Who are you programming JAMES for? The afore mentioned design objectives only speak about the server itself, not about the context it will be used with, or what for.

The Truth is, JAMES is an E-Mail Server and as such, it is used to do conversations, and to process and deliver E-Mail. In a perfect world, each client and server vendors would have read the RFC, and obeyed it to the bitter end, just like you do. Experience shows, that everyday Life is different. There are buggy implementations out there, that send bogus Mails and such. If James cannot deliver those, people are not going to use it.

If it is possible, to configure James, to accept non-compliant E-Mails, but the Documentation is burried in some big ancient *NotToBeOpenedOrBeDoomed* Tomb, people are not going to use it. Just today, another James enthusiast has turned its back on James, because he cannot use it in an everyday world scenario!

So who do you write the software for? Is this just a project that is existing, to proof that it is possible to obey to all RFC Rules? Is it just a Proof of Concept?

I have finished a couple of projects in the past couple of years. My biggest goal was it, to program software, that people can use, and that makes their day-to-day life easier, not harder.

Imagine yourself being a sysadmin. You use Microsoft IIS, qmail, or postfix at the moment. The Software is doing its Job, but you could extend it here and there. So you look into the qmail source and think "What the Heck? Who is this Bernstein Freak and what was he thinking?" then you look into postfix and think hey, this looks better, but C is far to complex for my easy tasks. Then you try to look at IIS and ... well nothing to be tweaked legally there ;).

So you search the net. You know Java, you find JAMES. You read about it, and hey, this is exactly what you need. So you download it, test it a bit, and say woohooo this is what I need. This is in most cases only the first step. The next burden is, that you have to tell your boss about it. He says "Nah, why should I change something that is working?" The Admin says, "because it can do what postfix does, ... AND MORE!" Boss: "Well ok, let us give it a try."

That described, the sysadmin installs JAMES, gets it up and running, and shows his boss. Boss is pleased until the next morning. The freaking automatic E-Mail is missing, "Admin! The billing did not run, I did not receive the status Mail!!! Check this immediatly!". The Admin checks, the Job ran, but no Mail. WHY Lord WHY? "Oh I know, I installed the James Server. Let me check the Logs." "Hmmm, there is it. Aha, it is not RFC compliant. Boss, I found the problem! The Status Mail was not RFC Compliant!" Boss: "Huh? What the ... well, then fix it!" That said, he keeps thinking "What is the RFC?"

So the Admin goes on, and checks the configuration, maybe he missed something. nope, everything there. So he opens up a bug report. He gets told "This is no Bug, this is a feature!". He suggests "Can we make it configurable? I really love James, and would really like to use it... I even wrote a patch!" The Commiters say "Hey, cool yes. We can do that ... wait, no we can't, because we break the RFC, and we really do not want that, sorry"

So the Admin goes, tells his boss, what he was told, and the Boss says "Well, if we cannot do it with JAMES, put the other stuff back online!" The Admin tries to consider James one more time, "... but Boss, the nice Extensibility, Mail Processing" Boss: "Admin! Enough of that Nonsense! You said it could do what the old setup did, and MORE! Not LESS! Leave it with the old setup!".

To make my point clear. I really like the way you guys care about the design of james. But really. In everyday life, it is hard enough to get people to really like your product. And for the people liking your product, it is a lot of work, to put JAMES to work inside a grown Environment.

Fact is, most people already have a Mailserver. If you exchange it with some other box, the new box has to do a better job, than of what the old box did. Why else would one change it, right?

So sometimes, as a programmer, you have to step aside, from your own desires of a product, and see the people using the piece of software, that use it to solve their problems, and not to create them new ones. Make their life easier, and more and more people will use this great piece of software you have developed for them (not you).

Kind regards

Juergen Hoffmann


First of all thx for this wonderfull mail. I needed 5 minutes to stop laughting.. I think now my girlfriend really think im crayz ;-) You really got it! Thats exactly the Story which every admin knows... And yes I fully agree with you. So i whould temporary add the patch posted at: http://issues.apache.org/jira/browse/JAMES-642 . We can move it later..

bye
Norman


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to