I don't think that Net::SMTP allows for attachments but the module Mime::Lite does. Mime::Lite is part of Activestate's core distribution. Below is a very stripped down example of using the module. I copped it out of a running program and took out the program specific variables and references so it may not work right out of the can but it should give you an idea.
#!/usr/local/ActivePerl-5.6/bin/perl
# Compiler directives and Includes
use strict;
use warnings;
use diagnostics;
use Mime::Lite;
# Constants and pragmas
use constant TRUE => scalar 1;
use constant FALSE => scalar 0;
#####################################################################;
#main()
{
my @to = ();
my @cc = ();
my @bcc = ();
my $subject = '';
my %mailhdr = ();
my $msg = '';
my $body = '';
my $mailsvr = '';
my $filename = '';
my $path = '';
my $type = '';
my $tmp = '';
my $from = '';
my %mimetype = ('zip' =>'application/zip',
'pdf'=>'application/pdf',
'html'=>'text/html',
'txt'=>'text/plain',
'ps' =>'application/postcript',
'tgz'=>'application/gzip',
'tab' =>'text/tab-separated-values',
'htm'=>'text/html',
'rtf'=>'text/richtext',
'doc'=>'application/msword',
'gzip'=>'application/gzip',
'gz' =>'application/gzip',);
$mailhdr{From} = "$from";
$mailhdr{To} = \@to;
$mailhdr{Cc} = \@cc if scalar @cc;
$mailhdr{Bcc} = \@bcc if scalar @bcc;
$mailhdr{Subject} = "$subject";
$mailhdr{Type} = 'multipart/mixed'; # indicates attachments
$msg = MIME::Lite->new( %mailhdr );
$msg->attach(Type =>'TEXT',
Data =>"$body"
);
$tmp = (exists($mimetype{$type}))
? $mimetype{$type}
: 'application/octet-stream' ;
$msg->attach(Type =>"$tmp",
Path =>"$path",
Filename =>"$filename",
Disposition => 'attachment'
);
MIME::Lite->send('smtp', "$mailsvr", Timeout=>60);
eval{$msg->send}; # send email
exit 0;
} #end main()
######################################################################
PJ
We are drowning in information and starving for knowledge - Rutherford D. Rogers What good is knowledge if you have to pull teeth to get it - anonymous
|