[Email-SIG] API for Header objects [was: Dropping bytes "support" in json]
R. David Murray
rdmurray at bitdance.com
Fri Apr 17 13:19:31 CEST 2009
On Fri, 17 Apr 2009 at 19:20, Stephen J. Turnbull wrote:
> R. David Murray writes:
>
> > Note that while I want to be able to do str(someHeader) to get a
> > string representation of a header body, I'm not so enamored of being
> > able to do
> >
> > message['From'] = 'John Smith <john at foo.com>'
> >
> > and have it get turned into a Header or AddressHeader object.
> > Frankly, that looks too magical to me.
>
> +1
>
> Well, that would make it easy to write scripts that parse lists of
> addresses and do things with them. Eg, a mailing list manager's "mass
> subscribe" interface. That would be nice ... but on reflection it's
> clear that we would want that to be parsed *strictly*. So it raises
> exceptions, which must be caught and handled, etc etc. In other
> words, it's actually not so easy to write scripts, no matter what you
> do, and you also want to be able to specify what kind of magical
> fixups (the ever-popular "display-name with unquoted period"
> immediately comes to mind as one example) are acceptable, and which
> are not, not to mention encoding for non-ASCII text.
>
> How about unstructured header bodies, like "Subject"? Should we allow
> it, for convenience, or not, for consistency?
>
> How about unknown fields, eg "X-Are-We-Not-Structured-No-We-Are-Devo"?
>
> I think, in the first draft, we should be *consistent* in both cases.
Yes, I think consistency is good. Since I'm visualizing a message as
being a container for headers (as well as the body...but we aren't
talking about that right now), I would expect that I'd have to
put Header objects into it. I don't think the "overhead" of
having to do
message['Subject'] = Header('subject string')
is very large, and the code feels better to me that way (if I get
Headers out, I should be putting Headers in..."explicit is better
than implicit").
As for parsing a list of addresses in a manager interface...presumably
we want to provide address-parsing tools to make that job easier.
Folding address parsing in to a header setting operation would make
that scripting task _harder_. Header creation should provide an easy
way to pass in user address input as Unicode strings, but underlying
that should be a more atomic address parsing interface.
--David
More information about the Email-SIG
mailing list