Here is the script from my linux box. I'm running it pretty much the way I took it off the web except I changed the reply-to my email and put the "\" before the "@".
I've named the script "test.cgi" and put it in my cgi-bin directory on the linux box. The html document is in the www/html directory under a subdirectory entitled "test" Perl Script: ----------------------------------------------- #!/usr/bin/perl use CGI; my $query = new CGI; my $sendmail = "/usr/sbin/sendmail -t"; my $reply_to = "Reply-to: geringer2\@cox.net"; my $subject = "Subject: Confirmation of your submission"; my $content = "Thanks for your submission."; my $to = $query->param('send_to'); my $file = "subscribers.txt"; unless ($to) { print $query->header; print "Please fill in your email and try again"; } open (FILE, ">>$file") or die "Cannnot open $file: $!"; print $to,"\n"; close(FILE); my $send_to = "To: ".$query->param('send_to'); open(SENDMAIL, "|$sendmail") or die "Cannot open $sendmail: $!"; print SENDMAIL $reply_to; print SENDMAIL $subject; print SENDMAIL $to; print SENDMAIL "Content-type: text/plain\n\n"; print SENDMAIL $content; close(SENDMAIL); print $query->header; print "Confirmation of your submission will be emailed to you."; ~ ----------------------------------------------------------------------- HTML Script ----------------------------------------------------------------------- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Untitled Document</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <FORM method="POST" action="../../cgi-bin/test/test.cgi"> <INPUT type="text" name="send_to"> <INPUT type="submit"> </FORM> </body> </html> --------------------------------------------------------- Thanks -----Original Message----- From: Dan Muey [mailto:[EMAIL PROTECTED]] Sent: Wednesday, January 29, 2003 12:14 PM To: Ron Geringer Subject: RE: Need help > > Tbe query variable is the variable email that the html > document inserts and passes on to the perl script. I'm > assuming that the $query works with send_to as the original > sender. What's really confusing is that when I write a tcl > script - I just hardcode the receiver's email (much like the > perl script does here), I grab the user's email (usually from > a database), assign a variable to it and add that veriable to > the same line as the hardcoded email --- and all this is sent > using open $XXXXX --- multiple prints and the close. Its real > easy. Unfortunately, not all servers have tcl loaded so I've > got to fall back and learn perl. > > I've been working with a number of perl scripts and so far I > haven't gotten any of them to work - even if I don't get an > error, it still doesn't send anything. > > -----Original Message----- > From: Dan Muey [mailto:[EMAIL PROTECTED]] > Sent: Wednesday, January 29, 2003 11:52 AM > To: Ron Geringer > Subject: RE: Need help > > > > Don't forget to posyt to list and not just the orginal sender!! > > > > Dan: > > > > except that I ran the same script on my local linux box and got a > > similar error regarding headers: > > > > [Wed Jan 29 09:44:52 2003] [error] [client 192.168.0.202] malformed > > header from script. Bad [EMAIL PROTECTED]: /var/www/cgi-b > > in/test/test.cgi. > > Copy the line that has the $to line in it and send it here. > > > > > Same code that I'm trying to run on the server. > > > > -----Original Message----- > > From: Dan Muey [mailto:[EMAIL PROTECTED]] > > Sent: Wednesday, January 29, 2003 11:18 AM > > To: Ron Geringer > > Subject: RE: Need help > > > > > > > > > > > > > > Dan: > > > > > > you are right - I could have been a little clearer. > > > > > > Here's the actual error from the log that I get when I run > > the script: > > > > > > qmail-inject: fatal: unable to parse this line: > > > Reply-to: [EMAIL PROTECTED]: Confirmation of your > > > [EMAIL PROTECTED]: text/plain > > > [Wed Jan 29 12:05:44 2003] [error] [client 68.13.40.38] malformed > > > header from script. Bad [EMAIL PROTECTED] > > > > If you're using qmail it would be better to have the > qmail-inject path > > instead of sendmail which is probably a sym link to qmail-inject. > > > > To open a pipe to qmail-inject you need > /var/qmail/bin/qmail-inject -f > > $to_address > > > > Which means you'll have to modify the open statement to use that. > > > > Do you know what the -i and -t options do for qmail-inject? > > > > See you're trying to use sendmail's switches with qmail, do > they work, > > have the same options, probably not. > > > > Could be those switches are causing the bad header becaue > what they do > > in sendmail could be totally different than qmail. That is why it's > > best to use a module or at least use the right program/options. > > > > Dan > > > > > > > > Ron > > > > > > -----Original Message----- > > > From: Dan Muey [mailto:[EMAIL PROTECTED]] > > > Sent: Wednesday, January 29, 2003 10:56 AM > > > To: Ron Geringer; [EMAIL PROTECTED] > > > Subject: RE: Need help > > > > > > > > > > I'm pretty much used to scripting sendmail applications in > > > tcl - and > > > > I'm very new to perl so this may be a dumb question. I'm > > > working with > > > > a sendmail script that I got off the internet. The script > > that I'm > > > > working with is listed below: > > > > > > > > #!/usr/bin/perl > > > > use CGI; > > > > > > > > my $query = new CGI; > > > > my $sendmail = "/usr/sbin/sendmail -i -t"; > > > > my $reply_to = "Reply-to: geringer2\@cox.net"; > > > > my $subject = "Subject: Confirmation of your submission"; my > > > > $content = "Thanks for your submission."; > > > > my $to = $query->param('send_to'); > > > > my $file = "subscribers2.txt"; > > > > > > > > unless ($to) { > > > > print $query->header; > > > > print "Please fill in your email and try again"; > > > > } > > > > > > > > open (FILE, ">>$file") or die "Cannnot open $file: $!"; print > > > > $to,"\n"; close(FILE); > > > > > > > > my $send_to = "To: ".$query->param('send_to'); > > > > > > > > open(SENDMAIL, "|$sendmail") or die "Cannot open $sendmail: > > > $!"; print > > > > SENDMAIL $reply_to; print SENDMAIL $subject; print SENDMAIL > > > $to; print > > > > SENDMAIL "Content-type: text/plain\n\n"; print SENDMAIL > $content; > > > > close(SENDMAIL); > > > > > > > > print $query->header; > > > > print "Confirmation of your submission will be emailed to > > you."; ~ ~ > > > > > > > > -------------------------------------- > > > > > > > > The only difference between this and the one I found is > > the "\" in > > > > fron of the "@". When I run this cript - the error that I'm > > > seeing is > > > > that the header is malformed. > > > > > > If what you're trying to get help on is the malformed > header error > > > then this is probably the problem : > > > > > > You should need to do \@ if you're using double quotes, > > shouldn't need > > > if you use single quotes. > > > > > > Did having that ( the \ in front of the @ ) cause the > > error? Could you > > > be less ambiguous about the problem, is the problem the 'header > > > malformed' error or you can't send mail or ...? What > > happens when you > > > run it form the command line? > > > > > > You might want to look into a module, they're much easier > > to work with > > > and portable. The one I started working wioth lately is : > > > http://search.cpan.org/author/JENDA/Mail-Sender-0.8.04/Sender. > > pm > > > > Or search cpan and find one you like/does what you want and you'll > > probably on ly need a few lines of code to do what you want. > > > > Dan > > > > > > > > If anyone can tell me what I did wrong - I would appreciate it. > > > > > > What I'm trying to do is put a perl script on a server > > which will take > > > data from an html document and redirect it to an email > > address. Once I > > > get one to work, I'm confident that I can make > > modifications and work > > > with it (testing etc), to better understand how perl > makes it works. > > > > > > I would really appreciate any help I can get. > > > > > > > > > -- > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > > > -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]