diff options
Diffstat (limited to 'examples/mailZip.pl')
-rw-r--r-- | examples/mailZip.pl | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/examples/mailZip.pl b/examples/mailZip.pl new file mode 100644 index 0000000..4e043aa --- /dev/null +++ b/examples/mailZip.pl @@ -0,0 +1,69 @@ +#!/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); |