in reply to form+subscription+Perl+sendmail = TROLL

  1. the various MIME/Email RFCs require that there be a blank line between the last header, and the body of the email. When you send a "manual" subscription request, your sending mail client is most certainly doing "the right thing". When you pass a "normal email address" to your CGI, your recieving mail client is probably being very forgiving and parsing the msg even without that blank line. Your mailing list software is probably not as forgiving.
  2. This is why you should use modules.
  3. Please don't put this CGI any where on the Internet without seriously re-writting it. putting the "to" address in a HIDDEN form variable may seem like a good idea from a maintenance perspective, but it will just turn your site into a massive spam relay, allowing people to write scripts to use your CGI as a starting point for email to any address without any accountability as to where it orriginated from. Even if $body is something hard coded into your script, that the CGI user can't change, they can still use your script to flood someone's inbox -- and you're the one that people will go after when it happens.