[sf-perl] MIME::Lite

Thomas Brightbill thomas at brightbill.net
Thu Jul 23 23:46:13 PDT 2009

Peter Loo wrote:

>   my $fileName = "stravinsky09.gif";
>   my $datDir = "/the/path/to/my/file";

>   $message->attach ( Type     => 'application/gif',
>                      Path     => $datDir,
>                      #Encoding => 'base64',
>                      Filename => $fileName,
>                      Disposition => 'attachment' );

I've used MIME::Lite a couple times but have never run across this 
before.  I would suggest changing 'Path' as follows

   Path => $datDir/$filename,

The MIME::Lite documentation says


     Alternative to "Data" or "FH". Path to a file containing the
     data... actually, it can be any open()able expression. If it
     looks like a path, the last element will automatically be
     treated as the filename. See "ReadNow" also.

In your example above, I'm wondering if it's looking for "file" as the 

I also found it helpful to turn on debugging with

   $msg->send('smtp','localhost', Debug=>1);

Here's my working test script:



use strict;

use MIME::Lite;

### Create the multipart "container":
my $msg = MIME::Lite->new(
     From    =>'thomas at brightbill.net',
     To      =>'thomas at brightbill.net',
     Subject =>'A message with 2 parts...',
     Type    =>'multipart/mixed'

### Add the text message part:
### (Note that "attach" has same arguments as "new"):
     Type     =>'TEXT',
     Data     =>"Here's the spreadsheet file you wanted"

### Add the spreadsheet:
     Type        =>'application/vnd.ms-excel',
     Path        =>'/home/thomas/testfile.xls',
     Filename    =>'testfile.xls',
     Disposition => 'attachment'

$msg->send('smtp','localhost', Debug=>1);



Thomas Brightbill
thomas at brightbill.net

More information about the SanFrancisco-pm mailing list