The tricky bit:
Saving a mimedecoded file with spaces in the name.
If the attached file has a singleword name, there is no error.
Neither single nor two levels of quotes fix it.
Specific Error:
procmail: Executing " mimedecode > ${DELIVERY_DIR}/$FILE"
/bin/bash: ${DELIVERY_DIR}/$FILE: ambiguous redirect
Trace:
procmail: Assigning "LOG=erik(_at_)dd(_dot_)nec(_dot_)com(_dot_)au"
erik(_at_)dd(_dot_)nec(_dot_)com(_dot_)auprocmail: Assigning
"PROJ_DIR=/vp/projects"
procmail: Match on "^Received:.*"
procmail: Assigning "MATCH="
procmail: Matched "n2ip_nms"
procmail: Match on "^Subject:[ ]*Project[^:]*:[ ]*\/[^ ]+"
procmail: Assigning "PROJECT=n2ip_nms"
procmail: Executing " test -d $PROJ_DIR/$PROJECT/admin"
procmail: Match on " test -d $PROJ_DIR/$PROJECT/admin"
procmail: Assigning "DELIVERY_DIR=/vp/projects/n2ip_nms/admin"
procmail: Assigning "MATCH="
procmail: Matched ""Old vege gardenPush up yards.doc""
procmail: Match on "^Content-Disposition: attachment; filename=\/.*"
procmail: Executing "echo "@$MATCH@" | tr [\(_at_)] [\']"
procmail: Assigning "FILE='"Old vege gardenPush up yards.doc"'"
procmail: Assigning "LOG=/vp/projects/n2ip_nms/admin/'"Old vege gardenPush up
yards.doc"'"
/vp/projects/n2ip_nms/admin/'"Old vege gardenPush up yards.doc"'procmail:
Couldn't determine implicit lockfile from " mimedecode >
${DELIVERY_DIR}/$FILE"
procmail: Locking ".lock"
procmail: Executing " mimedecode > ${DELIVERY_DIR}/$FILE"
/bin/bash: ${DELIVERY_DIR}/$FILE: ambiguous redirect
procmail: Error while writing to " mimedecode > ${DELIVERY_DIR}/$FILE"
procmail: Non-zero exitcode (1) from " mimedecode > ${DELIVERY_DIR}/$FILE"
procmail: Assigning "LASTFOLDER= mimedecode > ${DELIVERY_DIR}/$FILE"
procmail: Unlocking ".lock"
procmail: Executing " echo $FILE | mail -s "Document Lodgement Failed"
$SENDER"
procmail: Match on " echo $FILE | mail -s "Document Lodgement Failed"
$SENDER"
Offending Rule:
---------------
PROJ_DIR=/vp/projects
# WARNING: Any mail admitted here is written to
# $PROJECT's admin directory (or Approvals)
:0 # N.B. "Received" with IP may be 3rd last!
* ^Received:.*
* ^Subject:[ ]*Project[^:]*:[ ]*\/[^ ]+
{
PROJECT=$MATCH # Project dir
:0 # Exists already?
* ? test -d $PROJ_DIR/$PROJECT/admin
{
DELIVERY_DIR=$PROJ_DIR/$PROJECT/admin # Yes
}
:0 E
{
DELIVERY_DIR=$PROJ_DIR/Approvals # Fallback dir
}
:0 # Delivery
* B ?? ^Content-Disposition: attachment; filename=\/.*
{ # Accept ' ' in name
# FILE=`echo "$MATCH" | tr [\"] [\']` # Leave it quoted
FILE=`echo "@$MATCH@" | tr [\(_at_)] [\']` # "' xxx '"
LOG=${DELIVERY_DIR}/$FILE
:0c: # Deliver document
| mimedecode > ${DELIVERY_DIR}/$FILE
:0a: # Legitimation
* ? echo ${DELIVERY_DIR}/$FILE | mail -s "Document Lodged" $SENDER
$PROJ_DIR/Approvals/mail_record
:0E: # Failure
* ? echo $FILE | mail -s "Document Lodgement Failed" $SENDER
/dev/null
}
}
As mentioned, one level of hard quotes didn't cut it either:
procmail: Assigning "LOG=/vp/projects/n2ip_nms/admin/'Old vege gardenPush up
yards.doc'"
/vp/projects/n2ip_nms/admin/'Old vege gardenPush up yards.doc'procmail: Couldn't
determine implicit lockfile from " mimedecode > ${DELIVERY_DIR}/$FILE"
procmail: Locking ".lock"
procmail: Executing " mimedecode > ${DELIVERY_DIR}/$FILE"
/bin/bash: ${DELIVERY_DIR}/$FILE: ambiguous redirect
Attempting to simulate the suspected effect with bash, on the same host, does
not recreate the error message:
$ echo $SHELL
/bin/bash
$ echo fred > /tmp/erik sam
$ more /tmp/erik
fred sam
Does anyone recognise the fly in the ointment?
Regards,
Erik
_______________________________________________
procmail mailing list
procmail(_at_)lists(_dot_)RWTH-Aachen(_dot_)DE
http://MailMan.RWTH-Aachen.DE/mailman/listinfo/procmail