image provider

Welcome Wagon


Disclaimer

This essay does not describe an existing computer program, just one that should exist. This essay is about a suggested student project in Java programming. This essay gives a rough overview of how it might work. I have no source, object, specifications, file layouts or anything else useful to implementing this project. Everything I have prepared to help you is right here.

This project outline is not like the artificial, tidy little problems you are spoon-fed in school, when all the facts you need are included, nothing extraneous is mentioned, the answer is fully specified, along with hints to nudge you toward a single expected canonical solution. This project is much more like the real world of messy problems where it is up to you to fully the define the end point, or a series of ever more difficult versions of this project and research the information yourself to solve them.

Everything I have to say to help you with this project is written below. I am not prepared to help you implement it; or give you any additional materials. I have too many other projects of my own.

Though I am a programmer by profession, I don’t do people’s homework for them. That just robs them of an education.

You have my full permission to implement this project in any way you please and to keep all the profits from your endeavour.

Please do not email me about this project without reading the disclaimer above.

Newbies clog newsgroups with frequently asked questions. What this program does is monitor a newsgroup, or set of newsgroups and notices new posters. To do this, it must simulate a newsreader checking headers with NNTPprotocol. When it detects one, it uses the Javamail interface to send them an email. The email would point them to the various FAQ (Frequently Asked Questions) s, tell them what the purpose of each newsgroup was, answer a few of the most common questions and just generally welcome them aboard.

I implemented this project myself and a group of harpies came after me declaring my welcome email messages spam. To me this was an idiotic knee-jerk reaction without understanding what I was doing, but it did not stop them from making life hell, so I stop using it.

This should help keep the newsgroups clear of frequently asked questions and snarky welcomes to newbies who ask too many FAQs (Frequently Asked Questionses).

Ideally your program would speak NNTP (Network News Transfer Protocol), and just read headers, looking for new FROM’s. It would need to learn to defang some of the standard anti-spam techniques on email addresses. Here is an article on how to write a minimal NNTP newsreader and whether you should.

The Javamail code is less than a page. If that scares you, just prepare a comma delimited list to copy/paste into a standard email program. If NNTP scares you, have your program scan files from Agent or other newsreader. For bounced mail, it could repost the message to the newsgroup, with a little header mildly chastising for posting with a phony email address.

If you want to get a little fancier, you could add boilerplate paragraphs to the letter if various strings appeared in the post. That way you could also have a fair chance of answering any of the dozen or so most common newbie questions in your welcome letter.

You could dedicate a little server to monitoring dozens of newsgroups. It would gain you karmic brownie points.

Here is what a typical control script might look like this. Keywords are in bold. Each email line adds more boilerplate to the letter you send someone.

// just generate the emails and posts, don’t actually send them.
test
// Newsgroups to monitor
NEWSGROUPScomp.lang.java.advocacy, comp.lang.java.help, comp.lang.java.programmer
// always send standard greeting, but only if there is some other reason to send an email
email standardGreeting.txt
// Send standard welcome letter to all first time posters in any of the monitored newsgroups email welcome.txt to virgin
email adhominem.txt to anyone who says crap fool idiot lame-brain stupid
email faqLoc.txt to anyone who says Where is the FAQ URL (Uniform Resource Locator) for the FAQ
email faqLoc.txt to virgin
email standardClose.txt
// post to newsgroup as a comment on the original post, but only if email to that person has recently bounced
post shortwelcome.txt to bounced virgin
The text that comes after who says is interpreted just like an AltaVista search query. You can use + - " in the standard way. If you want to get fancy you could add () and boolean operators. A few things to watch.

Another approach is, instead of building letters out of boilerplate chunks, you send only complete letters, possibly in HTML (Hypertext Markup Language) and enclosures. What you do is construct a list of email addresses to receive each of your library of canned letters. You prepare a filter for each canned letter on who should receive it.

With a bit of extra work, this program could also be used to autorespond to emails, giving out canned advice to common problems, the way the Eudora bug/help desk works.

I have implemented a simplified version of this project. It scans the newsgroup headers of comp.lang.java.help and comp.lang.java.programmer each day, looking for new posters. It despamifies the email addresses and checks the syntax. I sometimes manually clean them up a bit too, then run them through a final dedup filter common to both newsgroups and hand the lists of new posters in each newsgroup to my bulk emailer. It then sends a standard welcome letter, one for comp.lang.java.help and one for comp.lang.java.programmer.

Unfortunately, all it took was for one turkey to complain that my welcome messages were spam. He threatened my ISPs (Internet Service Providers) with blacklisting, who then caved in and forced me to stop sending them.


This page is posted
on the web at:

http://mindprod.com/project/welcome.html

Optional Replicator mirror
of mindprod.com
on local hard disk J:

J:\mindprod\project\welcome.html
Canadian Mind Products
Please the feedback from other visitors, or your own feedback about the site.
Contact Roedy. Please feel free to link to this page without explicit permission.

IP:[65.110.21.43]
Your face IP:[52.15.209.178]
You are visitor number