from -- mail summary generater
Liam R. E. Quin
lee at sq.sq.com
Mon Dec 18 09:26:14 AEST 1989
The enclosed shell script prints a summary of my incoming mail. The summary
is better than Mail/mailx's "h" line; it looks a bit like this:
----------------------------------- M A I L -----------------------------------
waterloo.edu!looking!brad: S/ Re: Modifying news storage for fast searches Ok,
toad.com!gnu: S/ Re: GNU License OK...if you ever find out more ab
research!bwk: S/ Re: job offer Yes, when can I start at Unixsys?
o.edu!Sun.COM!uunet!henry: S/ troff and such Thanks for the help. Software Prac
nrcaer!cognos!alzabo!tris: S/ Re: Word list wanted. In rec.puzzles you write: >
research!alice!dmr: S/ Thanks for the help learning C
roys%uk.ac.sussex.cogs at NF: S/ Re: BOOK REQUEST Okay - address from 15th Dec - 9
.eu.net!westhawk.UUCP!thp: S/ modems etc. I'm keen (if a bit skint). > give me
dave: Oh yeah! I forgot about this
msb: S/ .uimp idea What about making .uimp trimodal? .uim
-------------------------------------------------------------------------------
[OK, I admit it, I made up a couple of the items in there, real wizards know
which ones :-) :-)]
uucp !-style paths are truncated on the left, so you get to see the username
(as in the first line); Internet %/@-style addresses are truncated on the
right (as in roys%uk.ac. ....) for the same reason.
Then it shows S/ if there was a Subject: line (not all mailers add one),
followed by the text of the subjectline (if any) and the first few words of
text from the body of the message.
There are a three control characters at one point.
Have fun!
Lee
#! /bin/sh
# This is a shell archive. Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file". To overwrite existing
# files, type "sh file -c". You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g.. If this archive is complete, you
# will see the following message at the end:
# "End of shell archive."
# Contents: from
# Wrapped by lee at sq on Sun Dec 17 17:25:01 1989
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'from' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'from'\"
else
echo shar: Extracting \"'from'\" \(2075 characters\)
sed "s/^X//" >'from' <<'END_OF_FILE'
X#! /bin/sh
X# print summary of mail.
X# Hacked by Liam Quin (using nawk) to account for Internet addresses...
X# on SysV, put the next line at the start of the script:
X: use /bin/sh
X
if test -s "$MAIL"
then nawk '
X BEGIN {
X h = "-----------------------------------"
X print h " M A I L " h
X }
X
X /^[ ]/ { next } # skip RFC822 continuation lines from Sendmail etc
X
X # You might want to remove the >From
X ($1 == ">From" || $1 == "From") && $(NF-3) != "forwarded" {
X # Delete common (boring) domains
X ## Uncomment if you have mks awk
X ## $0 = $0 "."
X ## gsub(/[.!@%][cC][oO][mM]([^A-Za-z0-9-])/, "\\1") # .com
X ## gsub(/[.!@%][rE][dD][uU]([^A-Za-z0-9-])/, "\\1") # .edu
X ## gsub(/[.!@%][uU][uU][cC][pP]([^A-Za-z0-9-])/, "\\1") # .uucp
X ## gsub(/\.$/, "")
X # deal with control characters other than TAB & LF:
X # (if you do not have nawk, comment this out and use vis, cat -v
X # or col -b on the input to deal with this --
X # i.e., col -b < $MAIL | awk ... )
X gsub(/[-]/, "?")
X # above line reads gsub(/[^A-^H^K^_]/, "?"), with control chars
X
X if (x==1) {printf "%.79s\n",str;sender=""}
X x=0
X
X # From anything remote from utzoo
X if ($(NF-2) == "remote") sender = $NF "!" $2
X else if ($2 !~ /^uucp/) { # From user <date> other-stuff
X if (sender != "") sender = sender "!" $2;
X else sender = $2
X }
X
X # str = sprintf("%-20s: ",sender);
X len = length(sender)
X if (len > 25) {
X if (sender ~ /[^!@]*[@%]/) {
X # Internet address, lose the end
X str = sprintf("%-25.25s: ",sender);
X } else { # uuucp address, lose the beginning
X str = sprintf("%-25.25s: ", substr(sender, len-24, 25))
X }
X } else { # it all fits
X str = sprintf("%25.25s: ", sender);
X }
X next
X }
X
X /^[a-zA-Z0-9-]*:/ && $1 != "Subject:" {next}
X
X $1 == "Subject:" { $1 = "S/" } # delete this line to see "Subject:"
X !/^From /&&length(str)<79 {
X for (i=1;i<=NF;i++) str = str $i " "
X x = 1
X }
X
X END {
X if (x==1) printf "%.79s\n", str
X print h "---------" h
X }' $MAIL
fi
END_OF_FILE
echo shar: 3 control characters may be missing from \"'from'\"
if test 2075 -ne `wc -c <'from'`; then
echo shar: \"'from'\" unpacked with wrong size!
fi
chmod +x 'from'
# end of 'from'
fi
echo shar: End of shell archive.
exit 0
--
Liam R. Quin, lee at sq.com Until Dec. 20th (visiting sq, not an employee)
After Dec 20, Unixsys (UK) Ltd, Knutsford, UK -- +44 565 50021
At home: +44 925 831084 (0830 GMT to midnight GMT only please...)
rn: .signature: cannot open: no such fire or dirigible
More information about the Alt.sources
mailing list