Computer Laboratory

Triggering vacation responses

If any mail is forwarded to your email address prefixed by the two characters string “v-”, then exim’s “vacation” processing occurs (see below). Note that “v-gsm10” does not also deliver to gsm10’s mailbox: the delivery instructions must always also make a real delivery.

The vacation message itself

If a regular file (not a symbolic link) ~/.vacation.msg or ~/tripnote exists in the your home directory, its contents are used in creating the message sent to the supplicant. It may have ‘$-variables’ which are expanded, for example ‘$DATA’ gives the beginning of the received message, and ‘$SUBJECT’ its subject.

If the file starts with two hyphen characters (“--”), the hyphens are stripped and the remaining contents are used as the body of the message. Otherwise, the contents of the file are prefixed by an anodyne message like:

I will not be reading my mail for a while. Your mail regarding “$SUBJECT” will be read when I return. You should only receive one copy of this message.

Restrictions on vacation messages

Vacation messages are not sent if the incoming message comes from a ‘-request’ address, if it has a Precedence: header of ‘bulk’ or ‘junk’, if it has a spam score of at least 3, or if the your Lab mail address does not appear in the To: or cc: headers.

The last constraint may be adjusted by creating a file called ~/.vacation.roles containing a mailbox address per line, for which vacation messages should be sent. If you have a rôle address, which no-one else receives, this adjustment allows you to send warnings to those who mail the address.

Managing vacation messages

A list of actual recipients of your vacation message is kept in a DBM (database) file ~/.vacation.dbf (previously ~/.vacation.dbm). You may examine the list using the command:

cd; /global/src/usr.bin/exim/Local/vacation -lv

If the user creates a file ~/.vacation.log, it will contain a log of the recipients (and non recipients). You may care to protect the file so other people can’t read it:

touch ~/.vacation.log
chmod 600 ~/.vacation.log

Correspondents will only get a single copy of your vacation message. So if you have a vague ‘I am away’ message (without any dates) which you do not change between one vacation and another (or you have no vacation message at all) they will not get told about subsequent trips unless you delete ~/.vacation.dbf between trips.

NB: When you return, do not forget to restore non-vacation mail, so that people who mail you aren’t “surprised”…

Forward examples

If your .forward is a simple file with a list of email recipients, append ‘,v-gsm’ (for user gsm).

If your .forward is a complex filter file, at a suitable point (having filtered which emails generate vaction messages as desired) add a line

unseen deliver v-gsm

Testing

Send an email to yourself and check that it works. Note that users of the Windows email system need to send a test from another system (a Linux box, hermes, gmail, hotmail, etc) or send it to the v- address (e.g. v-gsm@cl.cam.ac.uk). If you don't see the vacation message, check it's not been filtered to a different folder or such like. Look to see if the .dbf or .log has reported it as being delivered. If you did not have a .log file, create one as above, then try again. If you did not use the v- form, try it. If you still cannot work it out, send a sample message, carbon copy it to postmaster@cl.cam.ac.uk, and explain what you have done and what happened.

Checklists

Before you leave

You should:

  1. Delete any old ~/.vacation.dbm (or ~/.vacation.dbf).
  2. Create (a null) ~/.vacation.log if you want a log - this isn’t vital to the operation, and the log could in principle run on for ever.
  3. Update your ~/.vacation.msg if you have one.
  4. Copy your existing ~/.forward file to ~/.forward-new and ~/.forward-SAVE
  5. Update ~/.forward-new file with instructions for delivery to the vacation processor, and use cl-ckfilter to check it.
  6. Update your ~/.forward file from the ~/.forward-new.

When you return

You should:

  1. Copy the ~/.forward to ~/.forward-vacation or some such as a reminder for next time.
  2. Restore the unchanged copy of your ~/.forward file (e.g. ~/.forward-SAVE above), that you made before you left: this will stop your correspondents receiving your “I am away” message.
  3. Review the contents of ~/.vacation.log and ~/.vacation.dbm, if you feel like it…
  4. Delete any vacation process files you feel are no longer needed.