Hello,
This might very likely be a server environment problem.
But I am lost here to find the solution for this problem.
I am using my downloaded version of the Sendmail.pm from cpan
installed into a directory where I have the permission do so.
I have created a directory 'Mail' and copied the Sendmail.pm file in that directory.
Running this script -
#!/usr/bin/perl
use MIME::QuotedPrint;
use MIME::Base64;
# Get environment variable value
$home = $ENV{"HOME"};
BEGIN { push @INC, "$home/scripts/Mail" };
use Mail::Sendmail;
$receiver = 'myemail@abc.com';
$sender = 'myemail@abc.com';
$subject = 'Test mail';
$message = 'This is a test mail';
$file = 'test.txt';
#mail parameter file
$mailfile = 'mailparam.dat';
open (MAILFILE, "$mailfile") || die "Can't open $mailfile for reading:
+ $!\n";
while ( defined ( $_ = <MAILFILE>) )
{
chomp $_;
@mailarray = split(/\|/);
$receiver = $mailarray[0];
$sender = $mailarray[1];
$sender = $mailarray[1];
$subject = $mailarray[2];
send_mail($receiver, $sender, $subject, $message, $file);
}
sub send_mail {
my ($receiver, $sender, $subject, $message, $file) = @_;
%mail = (
from => "$sender",
to => "$receiver",
subject => "$subject",
);
$boundary = "====" . time() . "====";
$mail{'content-type'} = "multipart/mixed; boundary=\"$boundary\"";
$message = encode_qp( $message );
open (F, $file) or die "Cannot read $file: $!";
binmode F; undef $/;
binmode F; undef $/;
$mail{body} = encode_base64(<F>);
close F;
$boundary = '--'.$boundary;
$mail{body} = <<END_OF_BODY;
$boundary
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
$message
$boundary
Content-Type: application/octet-stream; name="$file"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="$file"
$mail{body}
$boundary--
END_OF_BODY
sendmail(%mail) || print "Error: $Mail::Sendmail::error\n";
}
Getting this error message in one of the unix server I am running on -
Undefined subroutine &main::sendmail called at sendmail.pl ...
But running this same script I don't have any problem whatsoever
in another unix server.
Any help to solve this problem would be much appreciated.
Thanks