At 19:09 +0900 04/17/2009, Stephen J. Turnbull wrote:
>Tony Nelson writes:
>
> > No.  The useful data for an address field is *properly* a list of
> > pairs of friendly name, address -- you should read RFC 5322 section
> > 3.4.
>
>The fact that you think I didn't suggests there's really no point in
>continuing to talk to you.  But I'll give it another try.
>
>The issues we are dealing with at this point really have very little
>to do with accurate implementation of the RFCs.  We all know that's
>necessary, but ... it's a Simple Matter Of Programming.  At least,
>that's why Postel, Crocker, et al put so much effort into writing the
>RFCs, so it would be a SMOP.  I think they did a pretty good job.
>
>I agree with you that we should make it relatively difficult to put
>things that *don't* conform to the RFCs on the wire.  But that should
>be the responsibility of the middleware that talks to the file system
>and to the MTA.  I see no reason *at this stage* to burden MUA (in the
>general sense) developers with all the RFC rules, and MDA/MTA writers
>"should" only need to worry about it for error handling (__bytes__()
>should normally do the job for them).  (For values of "should"
>equivalent to "in my dreams", I do fear.)

You are insisting on is so burdening them.  I propose lifting that burden.


> > This makes it very important that the easy way of doing things be
> > the correct way.  With Address fields, that way is
>
>Nonsense.  You are ignoring the fact that *people* (ie, nobody
>participating in this thread<wink>) read an address field *as text*,
>and they type in addresses *as text*.  We do not extract and inject
>this information as pickles of Header objects via Firewire sockets
>implanted in their skulls.  There is *no /unique/ correct way* here.

If only "People" did that in a way that survived transport.

>
> > >For example (this is a trick question), in your opinion, what
> > >should
> > >
> > >    msg['To'][0]
> > >
> > >return if the original header was
> > >
> > >To: Stephen J. Turnbull <step...@xemacs.org>
> > >
> > >?
> >
> > ('Stephen J. Turnbull', 'step...@xemacs.org')
> >
> > You must be very confused to think this is a trick question.
> > Try it with the current email package's email.utils.parseaddr().
> > Again, see RFC5322 section 3.4.
>
>But section 3.4 is not relevant to the trickiness, and parseaddr is
>not strictly conforming.  See the definitions of name-addr,
>display-name, phrase, word, atom, and atext in sections 3.2.3, 3.2.5,
>and 3.4 of the RFC you cite.  Also see the definition of special.
>Finally, I commend to your attention the definition of obs-phrase in
>section 4.1, and the *very* special nature of this particular gotcha
>as described there.

What parseaddr() doesn't support is groups.  I haven't seen groups used,
though.  It does support Comments when a name-addr is not present.

I still don't see any trick.  "Stephen J. Turnbull" has always been
accepted as a display-name, RFC 822 notwithstanding.  Any useful
implementation must take such things into account, even if conformance
would have required the display-name (or at least the ".") to have bee
quoted.


>The point is that by parsing that and claiming it's an RFC 5322
>section 3.4 name-addr, you have invoked the rather magical Postel
>Principle.  You either have to say "for my purpose I want magic in the
>API" (which you previously denied), or you have to admit that this is
>harder than it looks.
 ...

No.  You want to make it hard for the user of the email package.  I want to
make it easy for the user of the email package.  How hard it is for the
programmer is not an issue, but thank you for your concern.
-- 
____________________________________________________________________
TonyN.:'                       <mailto:tonynel...@georgeanelson.com>
      '                              <http://www.georgeanelson.com/>
_______________________________________________
Email-SIG mailing list
Email-SIG@python.org
Your options: 
http://mail.python.org/mailman/options/email-sig/archive%40mail-archive.com

Reply via email to