Script Library: 1238 scripts

#!/usr/local/bin/rebol -cs REBOL [ Title: " Lookalike Spam Trap" File: Author: "HY" History: [ 4-Oct-2004 "HY" "Made the script" ] Date: 4-Oct-2004 Purpose: { Respond to a CGI calls as if we were (See If the request seems to be an openness check, respond with an email indicating this server is ready for abuse. Else, swallow spam email and return nothing. Note the filename - for once, a rebol script that does not end with the .r extension. } Library: [ level: 'beginner domain: [http email other-net web cgi] license: none Platform: 'all Tested-under: none Type: [tool] Support: none ] ] ; set-net [%email--your--server--com "" "" none none none] send?: no my-servers: [ "" ] ; This should be the name of your servers. ; If one of these strings are found in the ; subject line, email will be passed on to the recipient! query-object: make object! decode-cgi system/options/cgi/query-string ; Here's what FormMail 1.6 does (and we don't): ; 1 Check referer ; 2 Format today's date (we stick with rebol's format) ; 3 Parse input form (note: this is 86 lines in perl. In rebol, it's done with line 35 above). ; 4 Check that all required fields are filled in. We'll just check if the request is an openness check or not: foreach server my-servers [ if attempt [find query-object/subject server] [send?: yes] ] ; Then it's time to write some HTML: print join "Generated-by: " system/script/header/title print "Pragma: no-cache" print "Content-Type: text/html; charset=iso-8859-1^/" print [ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 TRANSITIONAL//EN"> newline <HTML> newline <HEAD> <TITLE> system/script/header/title </TITLE> </HEAD> newline <BODY> <H1> "This is not an open relay" </H1> ] print either send? [ [ <P> "But of course, you don't read this page anyway, you just check your email" </P> newline <P> "Please enjoy our service." </P> ] ] [ [ <P> "Thank you. Your email is now swallowed and didn't even make it to the recipient's spam filter." </P> ] ] print [ </BODY> newline </HTML> ] if send? [ send/header to-email query-object/recipient to-string attempt [query-object/message] make object! [X-sender: system/script/header/title from: attempt [query-object/email] to: attempt [query-object/recipient] date: none subject: query-object/subject] ]
halt ;; to terminate script if DO'ne from webpage
  • email address(es) have been munged to protect them from spam harvesters. If you are a Library member, you can log on and view this script without the munging.
  • (email:your:server:com)