Using Mime::Decoder as tachyon pointed out would work well. However, there are some existing applications which already do what you are looking for -- some are even written in Perl! :-)

There are a bunch of such programs on Freshmeat. Below are a few of them, all of which are written in Perl:

  • batemail
    Used from procmail, can take a list of extension types, and removes matching attachments from incoming emails.

  • MIMEDefang
    Working with Sendmail's new Milter API, MIMEDefang can delete or alter attachments based on a config file, amongst a load of other message altering features.

  • the Anomy mail sanitizer
    Anomy is a bit more encompasing of program than you had asked for, but I'll mention it nonetheless. It handles removing/renaming attachments, which includes arbitrarily long RFC822 attachments. It truncates long MIME headers, and can disable Javascript and other potentially dangerous HTML.

  • Email Security Through Procmail
    Providing much of the functionality that the Anomy mail sanitizer does, this program also covers a lot of ground in the amount of things it protects users from.

    Each of the last two email scanners will be capable of removing uuencoded attachments. However, if you're still looking to build your own, you could use MIME:;Decoder::UU to help out with that.

    Good luck!
    -Eric

    --
    Lucy: "What happens if you practice the piano for 20 years and then end up not being rich and famous?"
    Schroeder: "The joy is in the playing."

    In reply to Re: Filtering mail attachments by andreychek
    in thread Filtering mail attachments by Anonymous Monk

    Title:
    Use:  <p> text here (a paragraph) </p>
    and:  <code> code here </code>
    to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.