[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: OT: why I don't want CCs



On Wed, 16 Jul 2003 04:14:42 -0700
Paul Johnson <baloo@ursine.ca> wrote:
> Because it's pointless and un-necissary to impliment the better part
> of an MTA into an MUA.

    Which is why you don't do that.  Smarthost doesn't need a full blown MTA
to do it.  This is smarthost behavior.  Here are the steps involved:

Lookup DNS
Connect
Process

    That doesn't look like an MTA to me.

> One program, one function.  It really does just work better that way.

    I agree.  However I do not subscribe to the theory that mail clients are a
class of clients unto themselves which cannot handle their own transport like
every other class of clients in the server/client model.

> That whole thirty seconds of thinking and keypoking at eximconfig to
> take a stand against bad MUA design is *not* going to hurt you, no
> matter how many software ads tell you komputers is hard and that's why
> their (slapdash, profiteering, wrong) way is the only way and thinking
> otherwise will cause pain.

    Lemme give you a little background.  I've been using computers since 1982.
I missed the acoustic 300bps modems by a few months.  I owned an 8086 class
computer when that was all there was.  I've been using Linux almost as long as
there has been a Debian distribution.  In fact I think when I started there
was Slack and Yggdrisl (sp?) and that was it.  My first installed Debian
system was before the move to libc6.  I argued *for* Exim when it became the
default way back when because I had been running it instead of the default
(sendmail, was it?).  Since then I have had a Debian system running Exim
24/7/365 with very little downtime.

    IE, I am well aware of the unix design philosophy.  I agree with it
wholeheartedly.  I am not scared of Exim or its conffile, nor Linux nor a slew
of other such assumptions that were in your rather loaded paragraph above.

> All of them, with the exception of ones that were ported from windows
> (Mozilla, Netscape), or the ones that make similarly bad design
> decisions as the Windows MUAs (kmail and any other MUA that thinks
> it's also half an MDA or MTA), because they make the safe assumption
> that transport is not the user agent's job (it's not, that's the
> transport agent's job).  

    I ask again, what do those mail clients do when the MTA is not present? 
What does, for example, mutt do when for some stupid reason $MTA is
misconfigured by the user?  I asked what they did if it were unavailable. 
Unavailable can take a plethora of forms other than "not installed".  User
misconfiguration, annoying BOFH which prevents users from running the local
MTA, etc.  

> Also, cron is a required component of the system, which depends on an MTA. 
> How else is it going to give users output?  Osmosis?  Telepathy?

    Log files?

> > Clearly it is an error condition and something must be done about
> > it.
 
> Actually, I think it more clearly demonstrates that you got your idea
> of software design from the Windows world, which ignores real-world
> stability and security issues.

    Uh, no.  It is an error condition.  For some reason or another the local
MTA, through user misconfiguration, lack of install, bad permissions, etc is
not available.  That is an error-condition that has to be dealt with.  What do
the clients which assume the MTA will always be there do in such an instance?

> And most people also don't like waiting on their confused half-an-MTA
> to sit there and spin when something it's tiny brain can't handle
> happens, like destination SMTP server got yanked out from under them.

    Oddly enough I have never had a single mail client which does access the
MTA "sit there and spin when something it's tiny brain can't handle happens". 
Every single one fails gracefully.  The most graceful was one which
automatically threw the message back into drafts and reported an error to the
status bar.  I have been, in the past 7-8 years of using clients who do their
own communicating in the client/server setup been able to go about my business
when, for one reason or another, the MTA was not available.

> At least with a real MTA operating in parallell to your MUA (the right
> way), your MUA hands it off and lets you keep moving with your day
> instead of waiting on delivery or leaving it floating around limbo in
> some outbox.

    And, more often than not, it also bounces the message which forces you to
go back, clean up the bounce, try to resend when you remember and delete the
bounce.  I prefer the outbox, thanks.  The same client as above had an option
to try to send again the next time you retrieved mail.  Was quite painless
when I didn't have my connection up.  An option the MTA puked over constantly.

> If it runs into a problem, you get the bounce just as fast either way, and
> if you're offline, it'll get sent next time the link comes back up
> automatically, even if you're not logged in.

    No, you get a bounce faster in the matter of just blindly handing off to
the MTA.  Oh, and to answer my oft-repeated question most MUAs that presume
MTAs are there are incapable gracefully handling it when it isn't there.  The
last one I checked, mutt, wouldn't let me exit the menu until I postponed the
message.  Stark contrast to the client that tossed me an informative error and
handled the error without stopping me in my tracks.  It seems to me that it is
your case that spins its wheels when its tiny brain hits a condition (an error
condition) that it cannot cope with.

> Considering how much easier to configure the MTA once and let it run
> versus telling everybody how to set up a bastard MTA/MDA/MUA program,

    Ease of configuration is a relative term.  I have played the exim/mutt
game (using Exim's filters) and have played with
sendmail/fetchmail/procmail/pine ages ago.  I absolutely hated the
configuration because I had to constantly tweak it to do even the most trivial
things.  Heaven forbid I want to do anything advanced like use the same client
to check two accounts and keep them completely, totally separate.  Any
operation the clients I use do with minimal configuration in about 20
minutes that take hundreds of lines and several hours of work with the painful
MTA/MDA/MUA combination is not in any way easier in my book.

> I can't even understand how this design became so prevelant on any
> platform...

    Because we're not back in the mid-80s with hundreds of people on a single
machine and only one mail account.  Hell, the last time I was on a
machine that I received mail on that had other people occupying it was around
1993. It was a shell account at Netcom.

    The design became so prevalent because it makes sense.  Let's look at just
a few examples that the MTA is incapable of handling or takes a hell of a lot
of configuration to handle that a properly designed mail client handles
easily.

    Let me give you just a few examples on situations I found the MTA/MDA/MUA
chain severely lacking.  You'll note they are not uncommon and most stem from
just one situation: having a job.

1: Lack of separation of mail accounts.

    Because I had a job I had a work account and a home account.  Let me
clarify.  A work *mail* account and a home *mail* account.  It was entirely
unacceptable for me to even think about mixing that mail at any time.  The
MTA/MDA/MUA chain fails this utterly.  Under that chain there are only two
options.

Option A:
work\
     > -> fetchmail -> MTA -> MDA -> MUA
home/

    This is unacceptable because at the MDA I would have to filter out the
mail which started out separately in the first place.  Right off the bat we
have an overhead of at least 1 to 2 filters.  Worse is the MUA having no
concept that there are two accounts at all.  So now I have to go into the
MUA's configuration and tell it, for each folder, which "personality" *SPIT*
to use.  At the time my home account had 30+ folders and work had as much if
not more.  So for 60+ folders I have to tell it "no, use *THIS* address, not
*THAT* address".  I also have to do that every time a new filter and folder
are made.  

    Even worse than that (talking specifically mutt here) I couldn't
tell what folders had new mail in it with a concise display.  "goto next
folder with new mail" didn't help because there were some folders I could
ignore most of the day and only needed to review once.  I'd hit those folders
every time I just went slamming on that key.  I'd either have to do that or
check the folders every so often to see what new has popped up.  Bad if I'm
sitting in my home account folder and my boss sends me mail he wants a prompt
reply to.  That's partially answered by some clients allow you to determine
which folders to watch for new mail.  Great, another option to put on 20-30
folders and still doesn't help on the folders I only have to review so often.

    Finally I have to also remember to tell it to copy the sent-mail to
different locations when it delivers.  Yay, even more rules!

Option B:
work -> fetchmail -> MTA -> MDA -> account 1 MUA
home -> fetchmail -> MTA -> MDA -> account 2 MUA

    Simply put, no.  Why should I have a completely separate account to check
another mail account?  I don't have separate accounts for different FTP sites,
web sites, new servers or any other server/client.  So why this one.  Same
goes for multiple configuration files.  I am not going to run two copies of
the client just to get mail from 2 locations.  What happens if I want to keep
other mail separate?  Another instance?  Another account?  That doesn't scale
well, does it?  


2: MTA couldn't handle multiple locations easily.

    I checked mail at home and at work.  I couldn't send work mail through my
home sharthost or my home mail though my work smarthost.  So now I am supposed
to get the MTA to divine that mail from this address is to be sent via one
smarthost and mail from that address is to be sent via another smarthost?  I
could just look at the destination except at my job I communicated with lots
of people outside my place of employment.  None of that mail could go to my
personal MTA.  For legal, ethical and technical reasons.


    So, what does that leave?  The clients I have been using.  This is how
they work.  You can define multiple accounts.  Each account has it's own set
of folders, filters and settings.  Completely separate.  IE:

work\             / work filters -> work folders
     > -> client <
home/             \ home filters -> home folders


    So let's take a simple 2-account setup.

Client:
Create work account, define name, address, pop server, smtp server.
Create home account, define name, address, pop server, smtp server.

    As of right now the client can do the following things:
* poll both accounts and deposit mail in the appropriate inbox
* compose/reply mail in either account without the user having to define what
address or name to use.
* send mail to the appropriate smtp server no matter what the location.

    Just to do those three basic things what steps do we need to take for the
mta/mda/mua path?

1: Setup MTA to try to decipher which SMTP server to relay what mail to.  This
is automatic in the above example.
2: Setup fetchmail to actually retrieve the mail, shove it to the MTA or MDA
and tell it which user to deliver to.  
3: Setup the MDA to filter the mail into two different folders.
4: Setup the MTA to look into both folders for new mail.
5: Further configure the MTA to use one name/address for one folder and
another for the other folder.
6: *FURTHER* configure the MTA to save mail sent from one folder in one place
and from the other folder into another place.
7: Whoops, two more folders we need to configure for the proper name/address.

    The top is about 2-3 minutes of work; even for a layman.  The bottom is at
least 20. More if you're not familiar with any of the steps involved.

    So let's add a mailing to the work account.

Client:
Create new folder in work account
Create filter to direct mail to that folder (note that this has the added
benefit of work filters not working on home filters).

Chain:
Create filter for new folder.
Configure MTA for which name/address to use for that folder.
Configure MTA for where to place sent-mail for that folder.

    Again, the client that does the work it should has a far easier
configuration.  Since there is the concept of mail accounts which are not tied
to the login account any time we create folders/filters/etc. in that account
they act only on that account and derive sane defaults from it.  The chain
requires us to explicitly configure it every time.

    But wait, there's more!  How about that schnazzy protocol, IMAP!  To get
the most out of that protocol one would not want to use fetchmail since it
treats it as a glorified POP server.  Your mail access from a client.  Darned
if the client has to do the communicating there, too.

    No, the MTA/MDA/MUA chain worked ok up until about '93 when the general
population started getting personal SLIP/PPP connections and the opportunity
to have more than one mail account.  A decade later where clients handling
multiple mail accounts makes for sane mail handling without gobs of wasteful
configuration.  That's why it has become so prevalent.  

-- 
         Steve C. Lamb         | I'm your priest, I'm your shrink, I'm your
       PGP Key: 8B6E99C5       | main connection to the switchboard of souls.
	                       |    -- Lenny Nero - Strange Days
-------------------------------+---------------------------------------------

Attachment: pgpCHGdxMd0tG.pgp
Description: PGP signature


Reply to: