Mail::Audit::Attach - Mail::Audit plugin for attachment handling.
use Mail::Audit qw(Attach); my $mail = Mail::Audit->new; # ... my $num_attachment = $mail->num_attachments; my $attachments = $mail->attachments; remove_attachments(filename => "\.(exe|scr|pif)", smaller_than => 20000); $mail->remove_attachments(mime_type => "text/html"); foreach (@$attachments) { $_->save($attachdir) if ($_->mime_type =~ |^image/|); $_->remove if ($_->filename =~ |\.(vcf)$|); } $mail->make_singlepart; # if possible
For the purpose of this plugin, an attachment is a MIME part that has a filename. Files attached to non-MIME messages will not be discovered.
This is a Mail::Audit plugin which provides easy access to files attached to mail messages. Besides Mail::Audit, it requires the MIME::Entity module.
MIME::Entity
num_attachments
Returns the number of attachments found
attachments
Returns a reference to a list of attachment objects
remove_attachments
Removes attachments from the mail that match the criteria specified via the options, or all, if no options are specified. Currently, the following options (hash keys) are supported:
mime_type
file_name
Specify a regular expression; attachments whose MIME type or filename matches this expression are removed.
smaller_than
bigger_than
Specify file size limits; attachments smaller or bigger than these limits are removed.
An attachment must match all of the criteria to be removed. Returns the number of attachments removed.
The attachments are a subclass of MIME::Entity. Check out MIME::Entity to learn about useful methods like mime_type or bodyhandle that are inherited.
bodyhandle
size
Returns the size of the attached file.
filename
Returns the original filename given in the MIME headers.
safe_filename
Returns the filename, with /\:;[]| and whitespace replaced by underscores, or 'attachment' if the original filename is empty.
remove
Removes the attachment, ie. detaches the corresponding MIME entity and purges the body data.
save($location)
Saves the attachment as a file in $location. If $location is a directory (ie if -d $location), save uses safe_filename to store the file inside that directory, else $location is assumed to be a fully-qualified path with filename.
$location
-d $location
save
In both cases, save checks whether the target file exists and appends '.n' to the filename, with n being an integer that leads to a unique filename, if necessary.
Returns the filename used to save the file, or undef if an error ocurred (you might want to take a look at Mail::Audit::Attach::error in that case).
Mail::Audit::Attach::error
Note that the attachment is not removed.
Mail::Audit::Attach::error will return an error message if an action failed (currently only set by save).
Christian Renz <crenz@web42.com>
Copyright (C) 2002-2003 Christian Renz <crenz@web42.com>
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Mail::Audit. MIME::Entity.
To install Mail::Audit::Attach, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Mail::Audit::Attach
CPAN shell
perl -MCPAN -e shell install Mail::Audit::Attach
For more information on module installation, please visit the detailed CPAN module installation guide.