Viewing file: mailZip.pl (1.58 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#!/usr/bin/perl -w # Requires the following to be installed: # File::Path # File::Spec # IO::Scalar, ... from the IO-stringy distribution # MIME::Base64 # MIME::QuotedPrint # Net::SMTP # Mail::Internet, ... from the MailTools distribution. # MIME::Tools
use strict; use Archive::Zip qw(:CONSTANTS :ERROR_CODES); use IO::Scalar; use MIME::Entity; # part of MIME::Tools package
my $zipContents = ''; my $SH = IO::Scalar->new(\$zipContents);
my $zip = Archive::Zip->new(); my $member;
# add a string as a member: my $stringMember = '<html><head></head><body><h1>Testing</h1></body></html>'; $member = $zip->addString($stringMember, 'whatever.html');
# $member->desiredCompressionMethod(COMPRESSION_STORED);
# write it to the scalar my $status = $zip->writeToFileHandle($SH); $SH->close;
print STDERR "zip is " . length($zipContents) . " bytes long\n";
### Create an entity: my $top = MIME::Entity->build( Type => 'multipart/mixed', From => 'ned@bike-nomad.com', To => 'billnevin@tricom.net', Subject => "Your zip", );
# attach the message $top->attach( Encoding => '7bit', Data => "here is the zip you ordered\n" );
# attach the zip $top->attach( Data => \$zipContents, Type => "application/x-zip", Encoding => "base64", Disposition => 'attachment', Filename => 'your.zip' );
# attach this code $top->attach( Encoding => '8bit', Type => 'text/plain', Path => $0,
# Data => 'whatever', Disposition => 'inline' );
# and print it out to stdout $top->print(\*STDOUT);
|