This answer is extracted directly from the MIME::Lite documentation. Create a multipart message (i.e., one with attachments).
use MIME::Lite;
### Create a new multipart message: $msg = MIME::Lite->new( From =>'me@myhost.com', To =>'you@yourhost.com', Cc =>'some@other.com, some@more.com', Subject =>'A message with 2 parts...', Type =>'multipart/mixed' );
### Add parts (each "attach" has same arguments as "new"): $msg->attach(Type =>'TEXT', Data =>"Here's the GIF file you wanted" ); $msg->attach(Type =>'image/gif', Path =>'aaa000123.gif', Filename =>'logo.gif' );
$text = $msg->as_string;MIME::Lite also includes a method for sending these things.
$msg->send;This defaults to using sendmail(1) but can be customized to use SMTP via Net::SMTP.