Re: Directly changing To & From field in the header
Vic Norton <[email protected]> Mon, 7 Feb 2005 19:17:25 -0500
| Newsgroups | gmane.comp.lang.perl.modules.mail-box |
|---|---|
| Message-ID | <p06210200be2da08197bd@[192.168.1.100]> |
Thanks for your note, Mark. I'm sorry. I may have screwed something
up. Things are working now.
I am using Mail::Message version 2.057. Your
$msg->head->set(To => '"Vic" <[email protected]>' ) ;
is just the idea I was looking for.
My real question is this. Suppose you have a loop. You send out one
single-part plain-text message in each iteration of the loop. The
header of each message is the same except for a couple of fields. The
body changes slightly depending on who you are sending the mail to.
Should you create a new mail-message object that starts with the
right head and body in each iteration of the loop? Or should you
create an initial mail-message ahead of the loop and adjust it with
each iteration?
I know how to do the former. I don't know how to do the latter. And I
don't know whether adjusting a message-object (if I could figure out
how to adjust it) would be any more efficient than creating a new
message-object in each iteration.
Regards,
Vic
At 10:55 PM +0100 2/7/05, Mark Overmeer wrote:
>* Vic Norton ([email protected]) [050207 21:10]:
>> I copied your suggestion directly into the script I presented,
>> Gilles. I get exactly the same error message.
> > /Library/Perl/5.8.1/Mail/Message/Head/Complete.pm: Line 172:
>> Can't call method "clone" without a package or object reference
>
>What version of MailBox are you running? In my version, the clone is
>on line 198...
>
>> The problem came up when I was tried to create a plain text mail
>> message and then, in a loop, change the to-field and body before
>> sending it out. So far I've been totally unsuccessful in doing this.
>> Perhaps the way I had been doing it before was better anyway. Then I
>> would just create a new head, new body, and new message on each
>> iteration of the loop.
>>
>> >$msg->head->reset( 'To', Mail::Message::Field->new( 'To', "\"Vic\"
>> ><norton\@dacor.net>") ) ;
>
>This certainly should work. I have tried it out.
>Simpler is
> $msg->head->set(To => '"Vic" <[email protected]>' ) ;
>
>An other way to get your task to work is:
>
> my $msg = Mail::Message->build(....);
> $msg->send(to => '"Vic" <[email protected]>' );
>
>The destination will not be visible in the sent headers, but plays its
>role in the SMTP protocol.
>--
> MarkOv
>
>------------------------------------------------------------------------
>drs Mark A.C.J. Overmeer MARKOV Solutions
> [email protected] [email protected]
>http://Mark.Overmeer.net http://solutions.overmeer.net
--
*------* http://www.ridehsta.com
| Vic Norton 2005 R1200GS HSTA 5992 DOD 43403
| (419)353-8399 1997 KLR650 STOC 037 AMA 594102
*------* http://vic.norton.name/moto