http://www.perlmonks.org?node_id=964514

heatblazer has asked for the wisdom of the Perl Monks concerning the following question:

Hello, monks.
I was trying a simple excersise script for using the local system`s sendmail while piping to it but the console shout me:

Insecure $ENV{PATH} while running with -T switch at ./perlmail.pl line + 30.

And my line 30 is a part of a subroutine:

sub send_mail { my ($from, $to, $subject, $data) = @_; open(MAIL, "| sendmail -t") or die "Can`t start sendmail: $!\n"; print MAIL "To: $to\n"; print MAIL "Cc: $subject\n"; print MAIL "Data: $data\n"; close(MAIL) or die "Can`t close sendmail filehandle: $!\n"; }

Why is that warning and what is my mistake?

Replies are listed 'Best First'.
Re: Insecure switch while working in ENV{PATH}
by moritz (Cardinal) on Apr 11, 2012 at 11:44 UTC
Re: Insecure switch while working in ENV{PATH}
by marto (Cardinal) on Apr 11, 2012 at 11:50 UTC

    After all this you're still not using MIME::Lite to make life easier for you?

      Ahem... I am learning Perl so I am getting used to it... using a ready-made module is no good for a learner like me.


      P.S.: I`ll use MIME::Lite in a real thing.

Re: Insecure switch while working in ENV{PATH}
by JavaFan (Canon) on Apr 11, 2012 at 11:45 UTC
    Your PATH is insecure.

    Set it. And use a full path to sendmail (if necessary).

    See also man perldiag (search for "Insecure") and man perlsec.