Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

sendmail not returning error info

by gsee (Acolyte)
on Nov 26, 2014 at 10:19 UTC ( [id://1108436]=perlquestion: print w/replies, xml ) Need Help??

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

Hi

I have written a script which calls the system sendmail, which in most cases works well.

But when it fails on the close statement i am getting nothing back in $!

Here is the code:

if ( close(MAIL) ) { logger("DEBUG: Email sent to: $toList", 0); } else { logger("CRITICAL: Email Failed. $!", 1); }

The logger subroutine is a simpler print to file and exit if second parameter is 1

Is there something I am missing here? I really need to know why the close statement is failing so I can do something about it.

Replies are listed 'Best First'.
Re: sendmail not returning error info
by McA (Priest) on Nov 26, 2014 at 10:42 UTC

    Hi,

    have a look at perldoc -f close and you'll see that you have to program two cases where you get feedback in $! or $?.

    McA

      McA, Thanks this definitely helped!

      I am getting an error of 17152 returned in $? which translated to sendmails error code 67 and I'm yet to discover why I get this error as all the email addresses in the To: seem fine.

Re: sendmail not returning error info
by sam_bakki (Pilgrim) on Nov 27, 2014 at 03:50 UTC

    Hi

    I have been using module Mail::Sendmail . With this module, we can error handle better and very easy to send mail via SMTP. See my sample code below,


    use strict; use warnings; use Mail::Sendmail; my %mail = ( To => 'Bakkiaraj Murugesan <bakkiaraj.murugesan@bakki.com>' +, From => 'Bakkiaraj Murugesan <bakkiaraj.murugesan@bakki.com>' +, #Bcc => 'Someone <him@there.com>, Someone else her@there.com +', # only addresses are extracted from Bcc, real names disregarded #Cc => 'Yet someone else <xz@whatever.com>', # Cc will appear in the header. (Bcc will not) Subject => 'Test message - Bakki', 'X-Mailer' => "Mail::Sendmail version $Mail::Sendmail::VERSION", ); $mail{Smtp} = '<mysmtp>.<mydomain>'; # $mail{'X-custom'} = 'My custom additionnal header'; $mail{'message : '} = "Test Message"; # cheat on the date: $mail{Date} = Mail::Sendmail::time_to_date( time() ); if (sendmail(%mail)) { print "Mail sent OK.\n" } else { print "Error sending mail: $Mail::Sendmail::error \n" } print "\n\$Mail::Sendmail::log says:\n", $Mail::Sendmail::log;

    Thanks & Regards,
    Bakkiaraj M
    My Perl Gtk2 technology demo project - http://code.google.com/p/saaral-soft-search-spider/ , contributions are welcome.

      Ill take a look at this if I can (at work where getting modules added is a little tricky)

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://1108436]
Front-paged by Eily
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others imbibing at the Monastery: (6)
As of 2024-03-28 08:23 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found