[comp.mail.sendmail] Purposely bouncing selected mail?

jlol@REMUS.EE.BYU.EDU (Jay Lawlor) (09/22/90)

Let's suppose I'm on some junk mail mailing list that I haven't been
able to get off of.  How can I make mail from that particular
person/list bounce or appear (convincingly) to have bounced without
having to change my email address?  I assume that after a bounce or
two I would be removed from the list.

Unix SysV and/or BSD solutions are what I'm looking for.

I'd prefer mail but post if you want.  I'll summarize if there's
interest.


-----------------------------------------------------------------------------
Jay Lawlor                            |
Systems Manager, Supercomputer Center | I think there is a world market for
459 Clyde Building                    | about five computers -- Thomas J.
Brigham Young University              | Watson, CEO, IBM Corporation, 1947
Provo, UT 84602                       |
jlol@ee.byu.edu                       |
-----------------------------------------------------------------------------

karl_kleinpaste@charcoal.com (09/23/90)

jlol@remus.ee.byu.edu writes:
   Let's suppose I'm on some junk mail mailing list that I haven't been
   able to get off of.  How can I make mail from that particular
   person/list bounce or appear (convincingly) to have bounced without
   having to change my email address?

The following suggestion is entirely untested, but the principle
should be reasonably obvious.

In .forward, place this:
	\jlol, "|/home/dirs/jlol/bin/bouncer"

Then the bouncer script could look like...

    ----------------
#!/bin/csh -f
#
# Bouncer: a script to scan incoming mail to see if it comes
# from the "wrong" place, and fakes a bounce-o-gram back if so.
#
set t1=/tmp/bounce.a$$
set t2=/tmp/bounce.b$$
#
# Save the mail; then pull out the From_ address.
cat > $t1
set origin="`head -1 $t1 | awk '{ print $2 }'`"
#
# If it comes from the wrong place (hopefully, a *-request@* form)...
if ("$origin" == bad@addr.ess) then
	#
	# Bad juju.  Preformat a pseudobounce-o-gram.
	cat << EoF > $t2
To: $origin
Subject: Returned mail: User unknown
From: mailer-daemon@remus.ee.byu.edu

   ----- Transcript of session follows -----
   554 jlol...User unknown

EoF
	#
	# Stuff it directly into sendmail.
	(cat $t2 ; tail +2 $t1) | /usr/lib/sendmail -t
endif
#
# Clean up.
rm -f $t1 $t2
exit 0
    ----------------

Embellish to taste.

--karl

jlol@REMUS.EE.BYU.EDU (Jay Lawlor) (09/27/90)

I promised a summary and have been getting some requests for one so
here it is.

A couple people mentioned that this might be kind of an anti-social
thing to do.  I hadn't really thought of it that way before.  But
considering that so many people are happy to share their time and
knowledge on the net and through email, I guess some of us could stand
to be a little more tolerant of mail we consider junk.

Actually, I made the request on behalf of a friend.  I'm pretty happy
with the mailing lists that I'm on currently.

But here goes...  I haven't tried these yet.  Some of them look rather
fun.

------------------------------------------------------------------
>>>>> On Fri, 21 Sep 90 21:27:42 -0400, David Lesher <wb8foz@mthvax.cs.miami.edu> said:

David> I use filter from elm. Here's how. (I'm chewing on Phil,  a vampire
David> type I know who has mailboxes on a dozen machines, but never answers
David> his mail.)

David> ~/.elm/filter-rules:

David> If (from "ncoast!smith") 	then execute "elm -s garlictoast Count"
David> If (from "smith@skybridge") 	then execute "elm -s garlictoast Count"
David> If (from "smith@pyrite") 	then execute "elm -s garlictoast Count"
David> If (from "hal9000") 		then execute "elm -s garlictoast Count"
David> If (from "val9000") 		then execute "elm -s garlictoast Count"
David> If (from "Phil Smyth") 		then execute "elm -s garlictoast Count"
David> If (from "smith@ncoast") 	then execute "elm -s garlictoast Count"
David> If (from "sidrat") 		then execute "elm -s garlictoast Count"

David> where Count is a alias within elm as follows:

David> ~/.elm/aliases.text:

David> c1 = Phil Smith = ncoast!hal9000!smith@usenet.ins.cwru.edu 
David> c2 = Phil Smith = ncoast!sidrat!smith@usenet.ins.cwru.edu
David> c3 = Phil Smith = ncoast!hal9000!val9000!smith@usenet.ins.cwru.edu 
David> c5 = Phil Smith = ncoast!smith@usenet.ins.cwru.edu 
David> c6 = Phil Smith = ncoast!hal9000!root@usenet.ins.cwru.edu 
David> c7 = Phil Smith = ncoast!hal9000!val9000!root@usenet.ins.cwru.edu 
David> c8 = Phil Smith = ncoast!sidrat!root@usenet.ins.cwru.edu
David> c9 = Phil Smith = smith@pyrite.som.cwru.edu
David> Count = Phil Smith = c1, c2, c3, c5, c6, c7, c8, c9

David> with c1-9 needed because elm can only map its own alili on a
David> multiple destination line.

David> You could, of course, be less anti-social, and just use
David> filter to delete the mail. It will look at subject, from, and
David> a bunch of other things...
David> -- 
David> A host is a host from coast to coast.....wb8foz@mthvax.cs.miami.edu 
David> & no one will talk to a host that's close............(305) 255-RTFM
David> Unless the host (that isn't close)......................pob 570-335
David> is busy, hung or dead....................................33257-0335

---------------------------------------------------------------------------
>>>>> On Fri, 21 Sep 90 21:35:08 PDT, raymond@math.berkeley.edu (Raymond Chen) said:

Raymond> How about "sendmail -t" with a spoofed return address?

Raymond> In general, though, this is a Very Antisocial thing to do...
-------------------------------------------------------------------------

>>>>> On Sat, 22 Sep 90 13:33:08 EDT, Rodney Peck II <rodney@ipl.rpi.edu> said:

Rodney> that's really not such a good idea -- if the admin doesn't answer and
Rodney> take you off, he's probably not watching at all and all you will do is
Rodney> clog up the net with messages.

Rodney> Something better would be to use a filter like mh or something you write
Rodney> yourself to catch your incoming mail, check it to see if its from the list,
Rodney> and if it is, compose a letter to the list-request asking to be removed,
Rodney> and tossing the received message in /dev/null.  

Rodney> this would solve your problem since you would never see the message again.
--------------------------------------------------------------------------

>>>>> On Mon, 24 Sep 1990 15:55:02 EDT, mskucherawy@watmath.waterloo.edu (Murray S. Kucherawy) said:
Murray> Return-Receipt-To: mskucherawy@watmath.waterloo.edu

Murray> Mush can do it (it's not BSD or Unix V, but a mail package that can be told
Murray> to do what you're asking for).  If you want more info, I cn provide it.

Murray> -- 

Murray> ============================== Murray S. Kucherawy ==========================
-----------------------------------------------------------------------------

>>>>> On Mon, 24 Sep 90 13:29 EDT, tct!chip@uunet.UU.NET (Chip Salzenberg) said:

Chip> I suggest you get my Deliver program.  It can do just about anything
Chip> with arriving mail, including throw it away.  You control its actions
Chip> by writing shell scripts, called "delivery files".  Here's mine:

Chip> ================================================================
Chip> # Delivery for Chip

Chip> PATH=/bin:/usr/bin:/u/local/bin ; export PATH

Chip> user="$1"

Chip> case "$SENDER" in
Chip> *!NOVELL)
Chip> 	echo DROP
Chip> 	( sed -e 's/!uunet![A-Za-z]*\.PRINCETON\.EDU!/!/g' $HEADER
Chip> 	  cat $BODY ) | 
Chip> 	    /u/local/bin/postmail mail.novell >&2
Chip> 	exit
Chip> 	;;
Chip> esac

Chip> echo $user

Chip> for tty in `who | awk '$1 == "'"$user"'" { print $2 }'`
Chip> do
Chip>     case "$tty" in
Chip>     ttyp*) continue ;;
Chip>     esac
Chip>     f="`header -f from $HEADER`"
Chip>     [ "" != "$f" ] || f="$SENDER"
Chip>     m="Hey!  You have new mail from $f."
Chip>     echo "\r\n>>> $m <<<\r\n" >>/dev/$tty 2>/dev/null
Chip> done
Chip> ================================================================

Chip> You see the part where my Novell mailing list is gatewayed to a local
Chip> newsgroup, based on the $SENDER value (an environment variable set by
Chip> Deliver before it runs the script).  To throw away mail, just replace
Chip> the "postmail" code with "echo DROP; exit".

Chip> Deliver works with System V, BSD, Xenix and V7 (!).  When used with
Chip> Sendmail or Smail 3, you put "|/usr/bin/deliver" in your .forward.
Chip> With Smail 2.5, you configure Smail to run /usr/bin/deliver for
Chip> delivery of local (and/or remote) mail.  Otherwise, you have to hack
Chip> it in manually.

Chip> Note that current version is 2.0 PL12.  Once you have 2.0 PL11, send
Chip> me mail and I'll send you patch #12.

Chip> **FTP: Get Deliver 2.0 PL11 by anonymous FTP from tut.cis.ohio-state.edu.
Chip> For those of you without DNS, that's [128.146.8.60].  Here's the relevant
Chip> part of the Ohio State archive info:

Chip> 	Deliver 2.0
Chip> 	-----------
Chip> 	Source is Chip Salzenberg <ateng!tct!chip@uunet.uu.net>.
Chip> 	Root is ~/deliver/deliver-2.0-part-[1234].Z [4 parts], varying sizes
Chip> 	less than 25Kbytes each.

Chip> Note that "~" is the anonymous FTP "pub" directory.  So, after making an
Chip> FTP connection as user "anonymous," type the following commands to get
Chip> Deliver into the current directory:

Chip> 	binary
Chip> 	cd pub/deliver
Chip> 	get deliver-2.0-part-1.Z deliver.01.Z
Chip> 	get deliver-2.0-part-2.Z deliver.02.Z
Chip> 	get deliver-2.0-part-3.Z deliver.03.Z
Chip> 	get deliver-2.0-part-4.Z deliver.04.Z

Chip> **UUCP: Get Deliver 2.0 PL11 by anonymous UUCP from alfred:

Chip>     alfred Any ACU 2400 14072909799 "" \d in:--in: anonuucp word: unknown
Chip>     alfred Any ACU 1200 14072909799 "" \d\r\d in:--in: anonuucp word: unknown

Chip> Alfred's complete file listing is alfred!~/ANON/ls-lR.

Chip> Deliver is stored on alfred as four compressed sharchives in the
Chip> ~/ANON/deliver directory, with a total size of less than 100K.
Chip> To get Deliver 2.0 from alfred into the current directory, type:

Chip> 	uucp alfred!~/ANON/deliver/deliver.01.Z .
Chip> 	uucp alfred!~/ANON/deliver/deliver.02.Z .
Chip> 	uucp alfred!~/ANON/deliver/deliver.03.Z .
Chip> 	uucp alfred!~/ANON/deliver/deliver.04.Z .

Chip> Note that wildcards ("deliver.??.Z") will *not* work.
Chip> -- 
Chip> Chip Salzenberg at Teltronics/TCT     <chip@tct.uucp>, <uunet!pdn!tct!chip>
---------------------------------------------------------------------------

>>>>> On Wed, 26 Sep 90 20:20:00 PDT, andy@spl28.spl.fac.com (Andrew Purshottam) said:

Andrew> Ask shipley@berkeley.edu for "autobounce", you'll love it.
Andrew> I reccomend against installing it in you .forward as it has 
Andrew> a few bugs still. You can use it against particular pieces
Andrew> of mail or have it screen all mail and bounce with selected
Andrew> probabilaties though uses in your ".s*itlist"! 

Andrew> Cheers,
Andrew> 	Andy
----------------------------------------------------------------------------

>>>>> On 23 Sep 90 16:55:54 GMT, karl_kleinpaste@charcoal.com said:

karl> The following suggestion is entirely untested, but the principle
karl> should be reasonably obvious.

karl> In .forward, place this:
karl> 	\jlol, "|/home/dirs/jlol/bin/bouncer"

karl> Then the bouncer script could look like...

karl>     ----------------
karl> #!/bin/csh -f
karl> #
karl> # Bouncer: a script to scan incoming mail to see if it comes
karl> # from the "wrong" place, and fakes a bounce-o-gram back if so.
karl> #
karl> set t1=/tmp/bounce.a$$
karl> set t2=/tmp/bounce.b$$
karl> #
karl> # Save the mail; then pull out the From_ address.
cat > $t1
karl> set origin="`head -1 $t1 | awk '{ print $2 }'`"
karl> #
karl> # If it comes from the wrong place (hopefully, a *-request@* form)...
karl> if ("$origin" == bad@addr.ess) then
karl> 	#
karl> 	# Bad juju.  Preformat a pseudobounce-o-gram.
karl> 	cat << EoF > $t2
karl> To: $origin
karl> Subject: Returned mail: User unknown
karl> From: mailer-daemon@remus.ee.byu.edu

karl>    ----- Transcript of session follows -----
karl>    554 jlol...User unknown

karl> EoF
karl> 	#
karl> 	# Stuff it directly into sendmail.
karl> 	(cat $t2 ; tail +2 $t1) | /usr/lib/sendmail -t
karl> endif
karl> #
karl> # Clean up.
karl> rm -f $t1 $t2
karl> exit 0
karl>     ----------------

karl> Embellish to taste.

karl> --karl