[ic] email-raw usertag broken for Net::SMTP FIX
Mike Heins
mike at perusion.com
Sun May 1 10:30:49 EDT 2005
Quoting Peter (peter at pajamian.dhs.org):
> On 04/30/05 20:04, Mike Heins wrote:
> > >One thing I failed to mention before is that my patch fails to account
> > >for the possibility of folded headers. I didn't think too much of it
> > >because I don't anticipate anyone using the email-raw tag to send emails
> > >out with folded headers, but if you want to make it work with then an
> > >additional regexp to unfold them should fix it. Something like the
> > >following before the split line should do it:
> > >
> > >$headers =~ s/\r?\n([ \t])/$1/s;
> >
> >
> >It would seem to make sense to account for it. Can't we do so simply by
> >joining the @header array with a \n without stripping the headers
> >in send_mail?
>
> I never bothered to look fully into the details of how send_mail works
> with Net::SMTP. That said...
>
> When I patched email-raw I looked at send_mail to see how to use it and
> it checks the first arg to see if it's a ref and if it is it assumes
> that the first arg is an array ref of all the headers and the second arg
> the email body. If the first arg is not a ref then it is assumed to be
> the To: recipient for the email. so by joining them as yuou suggest
> would just make send_mail assume that all those headers are the
> recipient and won't work.
I did mean in send_mail().
> If you want to hack up send_mail to work
> differently then be my guest, but i would want to caution against doing
> so in a way that might break existing functionality.
That is always the worry. 8-) But I think we can safely do this:
for(my $i = $#$head; $i > 0; $i--) {
if($head->[$i] =~ /^\s/) {
my $new = splice @$head, $i, 1;
$head->[$i - 1] .= "\n$new";
}
}
[snip]
> >One reason I had been avoiding all this is that the send_mail routine
> >is really an incredibly bad hack. It is some of the original code
> >in Vend 0.2, mangled year after year to wedge in more stuff. I had
> >always imagined I was going to make it reasonable, but instead we
> >ended up with send_mail, mail.coretag, email.coretag, email-raw.coretag,
> >etc.
>
> Sheesh, I never realised there was a mail tag as well. Maybe the email
> and email-raw usertags should just be rewritten as stubs of the mail tag
> since it seems to combine the functionality of both.
This is probably so. And if I add the MIME stuff then everyone will
be happy.
>
> I haven't checked yet, but can I assume that the mail tag works fine
> with Net::SMTP?
>
It uses send_mail().
--
Mike Heins
Perusion -- Expert Interchange Consulting http://www.perusion.com/
phone +1.765.647.1295 tollfree 800-949-1889 <mike at perusion.com>
Friends don't let friends use Outlook. -- Bob Blaylock
More information about the interchange-users
mailing list