#extract and decode part from multipart message #input: EXTRACT_INPUT, EXTRACT_BOUNDARY, EXTRACT_CONTENTTYPE #output EXTRACT_OUTPUT #LINEBUF=32768 SAVEVERBOSE = $VERBOSE #VERBOSE=NO # prepare regular expressions BOUND_START = `echo "$EXTRACT_BOUNDARY" | $HOME/bin/regexgen` BOUND_END = `echo "--$EXTRACT_BOUNDARY" | $HOME/bin/regexgen -n` #$EXTRACT_OUTPUT :0 * $ EXTRACT_INPUT ?? $BOUND_START^Content-Type: *$EXTRACT_CONTENTTYPE.*$\/($BOUND_END)* { EXTRACT_FULL = $MATCH } :0 E { EXTRACT_FULL } #extract the actual content - strip top till first empty line :0 * ! EXTRACT_FULL ?? ^^^^ * EXTRACT_FULL ?? (.+$)*^$\/(.*$)* { EXTRACT_OUTPUT = $MATCH } :0 E { EXTRACT_OUTPUT = $EXTRACT_FULL } :0 * ! EXTRACT_FULL ?? ^^^^ * EXTRACT_CONTENTTYPE ?? text/ * EXTRACT_FULL ?? Content-Transfer-Encoding: *\/.*(base64|quoted-printable) { #call decode DECODE_INPUT = $EXTRACT_OUTPUT DECODE_ENCODING = $MATCH INCLUDERC="$HOME/.procmail/rc.decode" EXTRACT_OUTPUT = $DECODE_OUTPUT } #cleanup EXTRACT_FULL VERBOSE=$SAVEVERBOSE