MIME::Parser::RedoUU - a Redoer which sniffs out uuencoded data.


NAME

MIME::Parser::RedoUU - a Redoer which sniffs out uuencoded data.


DESCRIPTION

Look for embedded ``begin'' lines in a text/plain, like this:

    Content-type: text/plain

    begin 644 Hello.gif
    M1TE&.#=A$P`3`*$``/___P```("`@,#`P"P`````$P`3```"1X2/F<'MSTQ0
    M%(@)YMB\;W%)@$<.(*:5W2F2@<=F8]>LH4P[7)P.T&NZI7Z,(&JF^@B121Y3
    4Y4SNEJ"J]8JZ:JTH(K$"/A0``#L`
    `
    end

Whenever we are confronted with a message whose effective content-type is ``text/plain'', we scan the decoded body to see if it contains uuencoded data (generally given away by a ``begin XXX'' line). By default, we scan only the first 24 lines, though you can change this if you need to.

If it does, we explode the uuencoded message into a multipart, where the text before the first ``begin XXX'' becomes the first part, and all ``begin...end'' sections following become the subsequent parts. The filename (if given) is accessible through the normal means.

Notice that, since this action is triggered by a ``redo'', it will work even if the original uuencoded file has been base64-encoded. I have no earthly idea if that's a good thing, but it's pretty cool if you want it to be. :-)

Note: I do not schedule the uuencoded portions for re-doing. I could, but I don't.


PUBLIC INTERFACE

horizon LINES
Instance method. Set the number of lines to read while looking for lines like ``begin 644'', before giving up. Negative means no limit. Default is 24.

redo IN, ENTITY, PARSER
Instance method. Try to detect and dispatch embedded uuencode as a fake multipart message. Returns new entity or undef.

 MIME::Parser::RedoUU - a Redoer which sniffs out uuencoded data.