msg: `While You Were Out' Messages with comp
[previous]
[next]
[table of contents] [index]
The messages you send with comp don't need to have fields like
cc: and Subject: in the headers.
As long as you have To:, your message should get there.
(The other header fields should follow rules in RFC 822.)
For instance, here's a program that receptionists might want.
It uses prompter to take phone and other messages, then sends
them via email.
This version of comp is called msg.
The date, time, and person who took the message are added automatically by MH.
The draft template file uses Fcc: to automatically keep a copy of
all messages sent.
msg is nice for messages to busy people who aren't at their desks but
are close to terminals -- or who can't check their mailboxes for slips of
paper -- or who want to track their messages electronically.
The messages look something like this:
% show
...
Date: Mon, 09 Jan 1995 12:34:56 PST
From: receptionist's username
To: loisl
Subject: While You Were Out...
X-Person: Betty Smith
X-Of: Kumquat Associates
X-Phone: (619)234-5678
X-Called: x
X-Please_call: x
--------
About your new cheese straightener.
To make msg, follow these steps:
-
Make a file named msgcomps in your MH directory, like this:
To:
Fcc: msgs
Subject: While You Were Out...
X-URGENT:
X-Person:
X-Of:
X-Phone:
X-Called:
X-Came_to_see_you:
X-Wants_to_see_you:
X-Please_call:
X-Will_call:
X-Returned_your_call:
--------
As prompter shows each empty field from that file, the
receptionist can either fill it in with a name or number, type x after
it (to just include the field in the message), or leave it blank (and
prompter will delete the field).
This is a handy way to use prompter.
-
To make msg as a version of comp, see the Section
Making a New Command Version.
Or, to make an alias or function, see the Section
Writing Command Versions as Aliases or Functions.
Add this entry to your MH profile, or add the arguments to your alias
or function:
msg: -form msgcomps -editor prompter
-
If you want to use the Fcc: msgs field to keep copies
of messages, as shown above, you might also want to add an
at(1)
or
cron(8)
job to clean up old messages.
The Section
Cleaning Up Old Messages shows the setup.
-
Some users don't want their phone messages mixed in with their other email.
If that's true, try one of these ideas:
-
Write a short shell script called getmsgs that uses
pick to find messages with the subject "While You Were Out...",
puts them in a sequence, shows them, and then either refiles or removes them.
For example:
#! /bin/sh
msgs=`pick -list -subject "While You Were Out"` || exit
for msg in $msgs
do
show $msg
echo "q quits, r removes, anything else continues: \c"
read ans
case "$ans" in
q) break ;;
r) rmm $msg ;;
esac
done
See the Chapter
Introduction to UNIX Programming with MH
for help with shell programming.
-
Ask the system administrator to add the user to the system transfer
agent's alias file with a different address.
For instance, make an alias named joeb_msgs for the user joeb.
When people send him messages to
joeb_msgs, they'll be delivered to
his usual address (joeb), but the message header will say:
To: joeb_msgs
Other users can send Joe's phone messages to his special address,
even if they don't use the msg program.
Then it will be easy for Joe to find his messages
with MH tools like pick:
% pick -to joeb_msgs ...
You could make a little shell alias or shell program named something like
showmsgs that does this:
show `pick -to ${USER}_msgs -list`
The Section
Passing Message Numbers with Backquotes
and the Chapter
Introduction to UNIX Programming with MH
have hints.
-
Your system administrator might make separate small accounts for users who
get messages this way.
Use a simple .login or .profile file that automatically shows
the messages, if any, then asks the user what to do with each message.
A shell script with a loop would do it.
|