If for some reasone you don't want to use an existing package, one thing you could do is just use a simple cgi form to do the collecting (since most people sign up when viewing a page anyway).
What I've done in the past is
- they submit their address via form.
- I generate a random digest and store the email in a temporary place (using Cache::FileCache, etc).
- I send the user a text email with a link to another script that validates it. The digest is in the url.
- If it's a valid address, they get the mail, click the link and the program adds them to the live list.
Something like this is pretty straight forward to code. Handling a generic list subscribe would most likely be really time consuming. Many nuances I'm sure.
-Lee
"To be civilized is to deny one's nature."