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]

Reply via email to