Mod_Perl and Net::SMTP - modperl

This is a discussion on Mod_Perl and Net::SMTP - modperl ; I have a Netware server 6.5 sp6 with Apache 2.0.59. I am trying to use some perl scripts to send HTML form data back to a particular e-mail address. The scripts work on my workstation with my active perl but ...

+ Reply to Thread
Results 1 to 5 of 5

Thread: Mod_Perl and Net::SMTP

  1. Mod_Perl and Net::SMTP

    I have a Netware server 6.5 sp6 with Apache 2.0.59. I am trying to use some perl scripts to send HTML form data back to a particular e-mail address. The scripts work on my workstation with my active perl but fail running on the server.

    Error message:
    Can't call method "mail" on an undefined value at sys:/perl/web/mailtest2.pl line 6.

    It's always a line containing " $smtp = Net::SMTP->new("smtpserver")

    I tried many different scripts but it always seems to be a problem around the object utilizing "Net::SMTP;. Is there a known issue with this. My version of MOD_PERL is 1.01.00

  2. Re: Mod_Perl and Net::SMTP

    Guy Alston wrote:
    Error message:
    > Can't call method "mail" on an undefined value at
    > sys:/perl/web/mailtest2.pl line 6.
    >
    > It's always a line containing " $smtp = Net::SMTP->new("smtpserver")


    Net::SMTP is known to work, though I'm not currently using it.
    You could add

    local $SIG{__WARN__} = \&Carp::cluck;
    local $SIG{__DIE__} = \&Carp::confess;

    This will help tell you where in Net::SMTP you are having a problem.

    Once you know that, you can try to fix it.

    OR this works --

    use MIME::Lite ();

    sub email {
    my %args = @_;

    my $email = MIME::Lite->new( Type => 'multipart/mixed' );

    $email->add(To => $args{to});
    $email->add(BCC => $args{bcc});
    $email->add(From => $args{from});
    $email->add(Subject => $args{subject});

    $email->attach(Type => "TEXT", Data => $args{data});

    MIME::Lite->send('smtp', SMTP_HOST, Timeout => 5);

    eval { $email->send };

    return $@;
    }


    >
    > I tried many different scripts but it always seems to be a problem
    > around the object utilizing "Net::SMTP;. Is there a known issue with
    > this. My version of MOD_PERL is 1.01.00


    Was I even alive when this version of mod_perl was out ?

    Given that, more importantly, what version of perl are you using ?


  3. Re: Mod_Perl and Net::SMTP

    First of all thanks to everyone who has responded. I've run a few more test and the problem is clearly around "MOD_Perl". I've load an SMTP server on the same system where I'm running the apache server and the scripts fail to establish a session.
    I'm able to run those scripts same scripts successfully from the console using the Netware Perl Interpreter. Both the Apache MOD_PERL and Netware NLM are 5.8.4 version of Perl. I'm running apache 2.0.59. on Netware 6.5 sp6.





    >>> Philip M. Gollucci 10/3/2008 10:34:12 AM >>>


    Guy Alston wrote:
    Error message:
    > Can't call method "mail" on an undefined value at
    > sys:/perl/web/mailtest2.pl line 6.
    >
    > It's always a line containing " $smtp = Net::SMTP->new("smtpserver")


    Net::SMTP is known to work, though I'm not currently using it.
    You could add

    local $SIG{__WARN__} = \&Carp::cluck;
    local $SIG{__DIE__} = \&Carp::confess;

    This will help tell you where in Net::SMTP you are having a problem.

    Once you know that, you can try to fix it.

    OR this works --

    use MIME::Lite ();

    sub email {
    my %args = @_;

    my $email = MIME::Lite->new( Type => 'multipart/mixed' );

    $email->add(To => $args{to});
    $email->add(BCC => $args{bcc});
    $email->add(From => $args{from});
    $email->add(Subject => $args{subject});

    $email->attach(Type => "TEXT", Data => $args{data});

    MIME::Lite->send('smtp', SMTP_HOST, Timeout => 5);

    eval { $email->send };

    return $@;
    }


    >
    > I tried many different scripts but it always seems to be a problem
    > around the object utilizing "Net::SMTP;. Is there a known issue with
    > this. My version of MOD_PERL is 1.01.00


    Was I even alive when this version of mod_perl was out ?

    Given that, more importantly, what version of perl are you using ?

  4. Re: Mod_Perl and Net::SMTP

    Got it working after updating UPDATING TCPIP stack. I have noticed after I do a few operations or process a form with a fair amount of data I start getting this error :

    Failed to open SMTP connection: Inappropriate I/O control operation

    Could this be some sort of Buffer issue. Here is a small piece of test code I'm using to work on the problem :

    #!/usr/bin/perl
    use Net::SMTP;
    #Create a new object with 'new'.
    $smtp = Net::SMTP->new("10.102.10.74");
    if ( ! $smtp ) {
    die "Failed to open SMTP connection: ", $!, "\n";
    }

    #Send the MAIL command to the server.
    $smtp->mail("user\@sombody.com");
    #Send the server the 'Mail To' address.
    $smtp->to("user\@somewhere.net");
    #Start the message.
    $smtp->data();
    #Send the message.
    $smtp->datasend("Subject: Console test Post tcp update Very Very Cruel World!\n\n");
    $smtp->datasend("\n\n");
    $smtp->datasend("Good bye Cruel World!\n\n");
    #End the message.
    $smtp->dataend();
    #Close the connection to your server.
    $smtp->quit();

    >>> Guy Alston 10/16/2008 5:19:33 PM >>>


    First of all thanks to everyone who has responded. I've run a few more test and the problem is clearly around "MOD_Perl". I've load an SMTP server on the same system where I'm running the apache server and the scripts fail to establish a session.
    I'm able to run those scripts same scripts successfully from the console using the Netware Perl Interpreter. Both the Apache MOD_PERL and Netware NLM are 5.8.4 version of Perl. I'm running apache 2.0.59. on Netware 6.5 sp6.





    >>> Philip M. Gollucci 10/3/2008 10:34:12 AM >>>


    Guy Alston wrote:
    Error message:
    > Can't call method "mail" on an undefined value at
    > sys:/perl/web/mailtest2.pl line 6.
    >
    > It's always a line containing " $smtp = Net::SMTP->new("smtpserver")


    Net::SMTP is known to work, though I'm not currently using it.
    You could add

    local $SIG{__WARN__} = \&Carp::cluck;
    local $SIG{__DIE__} = \&Carp::confess;

    This will help tell you where in Net::SMTP you are having a problem.

    Once you know that, you can try to fix it.

    OR this works --

    use MIME::Lite ();

    sub email {
    my %args = @_;

    my $email = MIME::Lite->new( Type => 'multipart/mixed' );

    $email->add(To => $args{to});
    $email->add(BCC => $args{bcc});
    $email->add(From => $args{from});
    $email->add(Subject => $args{subject});

    $email->attach(Type => "TEXT", Data => $args{data});

    MIME::Lite->send('smtp', SMTP_HOST, Timeout => 5);

    eval { $email->send };

    return $@;
    }


    >
    > I tried many different scripts but it always seems to be a problem
    > around the object utilizing "Net::SMTP;. Is there a known issue with
    > this. My version of MOD_PERL is 1.01.00


    Was I even alive when this version of mod_perl was out ?

    Given that, more importantly, what version of perl are you using ?

  5. Re: Mod_Perl and Net::SMTP

    I got it to work after upgrading the TCP/IP stack. It works for awhile but after processing a few forms I get the following:

    Failed to open SMTP connection: Inappropriate I/O control operation

    Here's some test code I'm using to diagnose the problem.


    #!/usr/bin/perl
    use Net::SMTP;
    #Create a new object with 'new'.
    $smtp = Net::SMTP->new("10.102.10.74");
    if ( ! $smtp ) {
    die "Failed to open SMTP connection: ", $!, "\n";
    }

    #Send the MAIL command to the server.
    $smtp->mail("user\@sombody.com");
    #Send the server the 'Mail To' address.
    $smtp->to("user\@somewhere.com");
    #Start the message.
    $smtp->data();
    #Send the message.
    $smtp->datasend("Subject: Console test Post tcp update Very Very Cruel World!\n\n");
    $smtp->datasend("\n\n");
    $smtp->datasend("Good bye Cruel World!\n\n");
    #End the message.
    $smtp->dataend();
    #Close the connection to your server.
    $smtp->quit();

    >>> Guy Alston 10/16/2008 5:19 PM >>>


    First of all thanks to everyone who has responded. I've run a few more test and the problem is clearly around "MOD_Perl". I've load an SMTP server on the same system where I'm running the apache server and the scripts fail to establish a session.
    I'm able to run those scripts same scripts successfully from the console using the Netware Perl Interpreter. Both the Apache MOD_PERL and Netware NLM are 5.8.4 version of Perl. I'm running apache 2.0.59. on Netware 6.5 sp6.





    >>> Philip M. Gollucci 10/3/2008 10:34:12 AM >>>


    Guy Alston wrote:
    Error message:
    > Can't call method "mail" on an undefined value at
    > sys:/perl/web/mailtest2.pl line 6.
    >
    > It's always a line containing " $smtp = Net::SMTP->new("smtpserver")


    Net::SMTP is known to work, though I'm not currently using it.
    You could add

    local $SIG{__WARN__} = \&Carp::cluck;
    local $SIG{__DIE__} = \&Carp::confess;

    This will help tell you where in Net::SMTP you are having a problem.

    Once you know that, you can try to fix it.

    OR this works --

    use MIME::Lite ();

    sub email {
    my %args = @_;

    my $email = MIME::Lite->new( Type => 'multipart/mixed' );

    $email->add(To => $args{to});
    $email->add(BCC => $args{bcc});
    $email->add(From => $args{from});
    $email->add(Subject => $args{subject});

    $email->attach(Type => "TEXT", Data => $args{data});

    MIME::Lite->send('smtp', SMTP_HOST, Timeout => 5);

    eval { $email->send };

    return $@;
    }


    >
    > I tried many different scripts but it always seems to be a problem
    > around the object utilizing "Net::SMTP;. Is there a known issue with
    > this. My version of MOD_PERL is 1.01.00


    Was I even alive when this version of mod_perl was out ?

    Given that, more importantly, what version of perl are you using ?

+ Reply to Thread