Okay, I was fuming mad. I have been struggling with a program that is
supposed to send a simple e-mail...
or so I thought!
for 2 days I have sent test e-mails all of them with headers in the e-mail
and attachments all screwy.
then I found the culprit.
at the top of my script is:
local $\ = "\n";
now ... isn't local supposed to "modify the listed variables to be local to
the enclosing block, file, or eval." ?
then why when I set this variable just before some code (Mail::Sender or
MIME::Entity) that builds the e-mail and sends it, that the e-mail ALWAYS
comes out wrong (wrong == improper formatting, wrong headers, bad multipart,
etc.).
below I have attached some sample code for both modules with the local $\ =
"\n" [untested sample code but should be 95% correct since I just change
some private items to garbage]...
Am I just misunderstanding the use of local?????????????????
Thank you for any explaination to this behavior,
Nikola Janceski
The average person thinks he isn't.
-- Father Larry Lorenzoni
use MIME::Entity;
local $\ = "\n";
my $top = MIME::Entity->build(
Type => "multipart/mixed",
From => "nikola_janceski\@summithq.com",
To => '[EMAIL PROTECTED]',
Subject => "something"
);
$top->attach(Data=>"duh duh duh");
my $file = "/usr/nj/somefile";
if(-f $file){
$top->attach(
Path => $file,
Type => "text/plain",
Encoding => "base64");
}
open MAIL, "| /usr/lib/sendmail -t -oi -oem -f 'klehman\@summithq.com'" or
die "open: $!";
$top->print(\*MAIL); ## this is a method call which shouldn't be touched
by the local $\ right?
close MAIL;
#### similar problems when using Mail::Sender;
use Mail::Sender;
local $\ = "\n";
my $sender;
ref($sender = new Mail::Sender
{smtp => 'mail.localhost.com'}) || die "new $sender --
$Mail::Sender::Error\n";
ref($sender->OpenMultipart({from => $from.'@summithq.com', to =>
'[EMAIL PROTECTED]',
subject => $subject}) ) || die "OpenMultipart
$Mail::Sender::Error\n";
$sender->Body();
$sender->Send("duh duh duh");
my $file = "/usr/nj/somefile";
if( -f $file ){
$sender->SendFile({
ctype => 'text/plain',
encoding => 'base64',
file => "$file"
}) || die "$Mail::Sender::Error\n";
}
$sender->Close() || die "$Mail::Sender::Error\n";
----------------------------------------------------------------------------
--------------------
The views and opinions expressed in this email message are the sender's
own, and do not necessarily represent the views and opinions of Summit
Systems Inc.
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]