Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re: Sending e-mail with attachments.

by periapt (Hermit)
on Jun 08, 2004 at 18:55 UTC ( [id://362500]=note: print w/replies, xml ) Need Help??


in reply to Sending e-mail with attachments.

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

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://362500]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others rifling through the Monastery: (5)
As of 2024-04-23 06:04 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found