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

Hey fellas.

Anyone knows why the following code returns "No recipient!" error msg?

(I know the var is correct, because I've tested it printing it after the sendmail function.)
%mail = ( To => '$n_mail', From => 'foo@foo.com.br', Message => "BlahBlahBlah\n\nBlahBlah\n\n"); sendmail(%mail) or die $Mail::Sendmail::error;
Is there a trick to use vars with this module? It's documentation sadly doesn't show any examples with vars...

Thanks in advance,

Er Galvão Abbott
a.k.a. Lobo, DaWolf
Webdeveloper

Replies are listed 'Best First'.
Re: Vars with Mail::Sendmail
by Caillte (Friar) on Mar 26, 2002 at 16:38 UTC

    Um.... '$var' is a string with the value $var... lose the single quotes ;)

    This page is intentionally left justified.

      What Caillte said. Plus you probably want to set $mail{smtp} to be your SMTP server.

      gav^

        Not necessary if it's the localhost.
Re: Vars with Mail::Sendmail
by extremely (Priest) on Mar 26, 2002 at 19:56 UTC
    As you use Mail::Sendmail mroe (or Mail::Mailer which I prefer) you'll be happy to discover that it will take an arrayref in place of a single address in the To field.

    I use Mail::Mailer because you can switch from a local mail server to a remote mail server to raw perl generated mail in a heartbeat. Plus I like the print handle model better. Handy.

    #!/usr/bin/perl -w use strict; use CGI qw(:standard); use Mail::Mailer qw(sendmail); #use Mail::Mailer; my $mailer = new Mail::Mailer; #my $mailer = new Mail::Mailer "smtp", Server => "smtp.somewhere.com"; my $to = [ 'one@two.xxx', 'three@four.yyy' ]; $mailer->open( { To => $to, From => 'Automated Mailer <here@here.zzz>', Subject => "Sample Mailer Script!", "Content-Type" => "text/html", }); print $mailer start_html,h1('Hi!),p('Yay Test!'),end_html; $mailer->close;

    --
    $you = new YOU;
    honk() if $you->love(perl)