2
# Requires the following to be installed:
5
# IO::Scalar, ... from the IO-stringy distribution
9
# Mail::Internet, ... from the MailTools distribution.
13
use Archive::Zip qw(:CONSTANTS :ERROR_CODES);
15
use MIME::Entity; # part of MIME::Tools package
18
my $SH = IO::Scalar->new( \$zipContents );
20
my $zip = Archive::Zip->new();
23
# add a string as a member:
24
my $stringMember = '<html><head></head><body><h1>Testing</h1></body></html>';
25
$member = $zip->addString($stringMember, 'whatever.html');
26
# $member->desiredCompressionMethod(COMPRESSION_STORED);
28
# write it to the scalar
29
my $status = $zip->writeToFileHandle($SH);
32
print STDERR "zip is ". length($zipContents). " bytes long\n";
35
my $top = MIME::Entity->build(
36
Type => 'multipart/mixed',
37
From => 'ned@bike-nomad.com',
38
To => 'billnevin@tricom.net',
39
Subject => "Your zip",
45
Data => "here is the zip you ordered\n"
50
Data => \$zipContents,
51
Type => "application/x-zip",
53
Disposition => 'attachment',
54
Filename => 'your.zip'
63
Disposition => 'inline'
66
# and print it out to stdout
67
$top->print( \*STDOUT );