> I'd probably switch to a mailto: form, if only Netscape behaved and
> sent plain text instead of URL encoded mail.
> Why not URL decode on the mail server ? - it's not my mailserver. I
> can't keep asking for it to be changed to accept different types of
> mangled data.
Even if you can't/won't mess with the local MTA, you can still use
something like procmail [1] to process your mail, here are a few lines
from my ~/.procmailrc file:
:0 * ^Content-Type: *application/x-www-form-urlencoded { :0 fbw | $HOME/src/perl/decode-url.pl :0 Afhw | formail -I "Content-Type: x-decoded-url" }
decode-url.pl is a tiny perl script (included at the end of this
message) which reads the old message body on stdin, and writes a new
message body on stdout. It needs a little polishing (heck! a *lot* of
polishing), but the basics are there.
- Steinar
[1] ftp://ftp.informatik.rwth-aachen.de/pub/packages/procmail/procmail.tar.gz
Here's decode-url.pl:
#!/local/bin/perl # # $Id: decode-url.pl,v 1.1 1995/01/30 13:57:41 steinarb Exp $ # $query_string = <> ; @value_pairs = split(/&/, $query_string) ; foreach $vp (@value_pairs) { local($field, $fval) = split(/=/, $vp) ; push(@fields,$field) ; $values{$field} = &unEscape($fval) ; } foreach $f (@fields) { print "$f: $values{$f}\n" ; } # SB 940909 # # This subroutine returns the argument with "+" replaced with " " # and hex sequences ("%xx") with the character they represent. sub unEscape { local($s) = @_ ; $s =~ tr/+/ /d ; $s =~ s/%([0-9A-F][0-9A-F])/pack("H2",$1)/ge ; $s ; }