in reply to 3Re: How do I send mail from a script?
in thread How do I send mail from a script?

Hey man. Thanks for giving me a hand. Tried your code but recieved the following error: Global symbol "%in" requires explicit package name at enquiry02.pl line 23. I have no idea what it means. Any idea? Here is my code so far
#!/usr/bin/perl -w use strict; use CGI; use CGI::Carp qw(fatalsToBrowser); use Mail::Mailer; my @param = qw( Title Name Position School Address Suburb State PCode Email Tel Fax Att1 Att2 Att3 Att4 Att5 Att6 Att7 Att8 Att9 Comments ); my $mailer = Mail::Mailer->new; $mailer->open({ To => 'pete@home.com', From => 'Tester@qux.com', Subject => 'results of submit', }); my $body; $body .= "$in{$_}\n" for @param; print $mailer $body; $mailer->close;

Replies are listed 'Best First'.
5Re: How do I send mail from a script?
by jeffa (Bishop) on Aug 12, 2003 at 01:15 UTC
    Yep, you didn't declare %in and since you are using strict, this causes a compilation error. I recommend you add this at the top:
    use CGI qw(:standard); use vars qw(%in); CGI::ReadParse();
    The use vars declares %in as a global variable (you could probably also use our). Personally, i prefer using CGI::param() instead of CGI::ReadParse() - you could construct $body like this instead:
    $body .= param($_) . "\n" for param;
    instead, or if you only want the form fields listed in the @param array:
    $body .= param($_) . "\n" for @param;
    Hope this helps more. :)

    jeffa

    L-LL-L--L-LL-L--L-LL-L--
    -R--R-RR-R--R-RR-R--R-RR
    B--B--B--B--B--B--B--B--
    H---H---H---H---H---H---
    (the triplet paradiddle with high-hat)