logo       
Google Custom Search
    AddThis Social Bookmark Button
-->

Re: Writing the 'From ' line: msg#00032

Subject: Re: Writing the 'From ' line
On Wed, Jan 21, 2004 at 08:38:54AM +0100, Mark Overmeer wrote:

> > moseley@bumby:~/hyper$ cat t.pl
> > use Mail::Box::Manager;
> > my $box = Mail::Box::Manager->new->open('test3') || die $!;
> > my @messages = $box->messages;
> > print $messages[0],"\n";
> > print $messages[0]->fromLine;
> > print $messages[0]->clone->fromLine;  # this doesn't work
> 
> These are interesting discussions for the mailinglist...

Oh, I missed that we moved off the list.  Now back on.

> You should see message objects as immutable. Changing a body is a sin,
> and changing header lines often not acceptable.  Only in some cases,
> adding or deleting header files does not imply a change in the message
> (for instance playing with the Received fields)

Ok.  So, say you want to go through all messages and add a header and
write back to the same mbox.  Do you have to clone and write it as a new
message?

> A clone is rarely needed: it is only required when you take one message
> and then base a new message on that.  Where the original message is
> attached to folder, the new message is not!  When the original message
> is a Mail::Box::Mbox::Message, the clone is simply a Mail::Message.
> When you attach that message to an mbox folder, it will be coerced into
> a Mail::Box::Mbox::Message again, but it may also get coerced into
> a Mail::Box::IMAP4::Message or whatever.

That's ok.  But are you saying that it may loose the "fromLine" along
the way?  That makes sense in that the fromLine is a mbox thingy --
although it's nice to retain as much envelope info as possible.

Back to the ->clone.  I was first reading messages from one mail box,
sorting them, and then writing them back to a new mailbox.  When I
didn't clone I was getting:

  Attempt to free unreferenced scalar: SV 0x8575844.

> There are more people wanting me to change things around the fromLine.
> For instance, sometimes Mail::Message->read(\*STDIN) tumbles over it,
> when (for instance) sendmail is conifgured to pass it on.  So it may
> well be that in one of the coming releases, any kind of message has
> such a line.  I'm still hesitating.

Hope I'm following, but The 'From ' is a mbox thing.  But, if messages
were read from a mbox and written to maildir then it would be nice to
somehow retain that data -- like adding an Envelope-To: and
Delivery-date: header from the address and date in the 'From ' line.
Assuming those headers are not already there.

I'm making that up because I don't know what the RFCs say.  My comment
is that data should not be lost in the translation.

-- 
Bill Moseley
moseley@xxxxxxxx





<Prev in Thread] Current Thread [Next in Thread>