NAME Mail::Audit::Attach - Mail::Audit plugin for attachment handling. SYNOPSIS 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 DEFINITION 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. DESCRIPTION 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. METHODS IN MAIL::AUDIT "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. ATTACHMENT PROPERTIES 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. "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. ATTACHMENT ACTIONS "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. 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). Note that the attachment is not removed. ERROR FUNCTION "Mail::Audit::Attach::error" will return an error message if an action failed (currently only set by "save"). AUTHOR Christian Renz LICENSE Copyright (C) 2002-2003 Christian Renz This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. SEE ALSO Mail::Audit. MIME::Entity.