Homepage: http://www.neilvandyke.org/spamprod
Author: Neil W. Van Dyke
Updated:
Generate spam complaint email
*** PLEASE DO NOT USE THIS PACKAGE UNLESS YOU KNOW WHAT YOU'RE DOING. ***
*** With contemporary spam, this package does not find a good complaint ***
*** address very often; it needs a complete redesign to be useful. ***
Introduction:
Given a spam email message in Emacs, `spamprod.el' generates a complaint
email addressed to various parties who are hopefully in a position to do
something about curtailing the spam. (SEE *** NOTICE ABOVE.)
System Requirements:
The `spamprod.el' package is developed using FSF GNU Emacs 21 on a
GNU/Linux system, and should work with recent Emacs 20 and 21 versions on
Unix variants. `spamprod.el' has not yet been tested with the XEmacs fork
of Emacs, and I'd welcome any necessary patches.
`spamprod.el' has special support for the VM email reader package by Kyle
E. Jones (`http://www.wonderworks.com/vm/'), although VM is not required.
Installation:
1. Put this `spamprod.el' file somewhere in your Emacs Lisp load path.
2. Add the following to your `.emacs' file (or elsewhere):
(require 'spamprod)
3. Optionally set `spamprod-exclude-domains' and
`spamprod-exclude-emailaddrs' in your `.emacs' file (or elsewhere).
For example:
(setq spamprod-exclude-domains
'("foobar.edu"
"mailhub.someisp.net"))
(setq spamprod-exclude-emailaddrs
'("joe@cs.foobar.edu"
"sexkitten69@someisp.foo"
"roleplaying-discussion@mailinglists.bar"))
4. Optionally customize various other option variables (see "Option
Variables" below).
How To Use It:
1. Do one of the following, depending on how you are viewing the spam:
a. In the VM mail reader: Press the `$' key (mnemonics: "$pam" or
"spam=greed=money=$") from within the VM summary or message windows.
b. In another kind of Emacs buffer: Make sure you are viewing the full
raw original email text (including all headers) in the current
buffer, and then invoke `M-x spamprod-from-buffer RET'.
An Emacs mail window with a generated complaint email will appear.
2. Quickly double-check that the complaint email is addressed to the
appropriate parties, make any necessary changes, and then send it
(usually by pressing `C-c C-c').
Alternative Package:
If `spamprod.el' does not surpass your every fantasy of Emacs-based spam
complaint aids, you might take a look at `uce.el' by Stanislav Shalunov
. `uce.el' was first created in 1996 with similar
goals, and you may prefer the way it operates. In addition, it supports
Rmail and Gnus (but not VM). Any redundancy of `spamprod.el' with respect
to `uce.el' is partly accidental, since I initially hacked up the former
at a time when I had limited Internet access and only a fuzzy recollection
of seeing a similar Emacs package before.
http://www.deja.com/getdoc.xp?AN=661148514&fmt=text
Author's To-Do List:
* Code smarter injection point detection heuristic.
* Add Gnus integration.
* Add Rmail integration. (Actually, wait for an Rmail user to do this and
send us a patch.)
* Make sure that other newline conventions don't break us.
* Be more smart about Received headers, such as not complaining about the
last hop (unless there's only one hop). Look at more samples to get a
better intuition for the best way.
* Try to avoid mailing to the loopback address.
* Include `^From_' header when attaching spam to complaint mail, unless
the header has been mangled, such as by VM.
* Special-case complaint mechanisms for certain domains (e.g., see
`http://www.nic.it/NA/mailspam-engl.html').
* Add a better way to avoid automatic replies.
* Automatically detect when an icky little spam company is using its own
hosts for spam, and figure out their upstream connectivity provider.
* Try to extract a domain from any `^From_' header.
* Maybe get email addresses out of spam body.
* Maybe extract domain names of any URLs mentioned in spam body.
* Maybe try to get a domain out of the Message-ID.
* Reconcile `spamprod-max-domain-depth' with the fact that we now
recognize that some domains have two or more too-general levels.
Perhaps the easiest way to do this is to instead specify the maximum
depth *below the too-general threshhold*, with the default being 2.
* Maybe don't drill up/down some domains. For example, there's probably
no point in complaining to subdomains of `compuserve.com'.
* Respond to suggestions from our Gentle Readers.