safir: Fehlermeldung mit der Methode "mail"

Hallo leute,

ich versuche seit einiger Zeit einen Mail-Versand zu realisieren
mittels des Moduls "Net::SMTP". Ich erhalte aber folgende
Fehlermeldung im Browser, die ich nicht so ganz verstehe!!!
-----
Can't call method "mail" on an undefined value at C:/Programme/Apache Group/Apache2/cgi-bin/xy.cgi line 25.
-----

meine CGI sieht folgende massen so aus:
-----
#!c:/Perl/bin/Perl.exe
use CGI ':standard';
use Net::SMTP;
use strict;
use CGI::Carp qw(fatalsToBrowser);

my $mailFrom = 'xy1@xxx.com';
my $subj = 'Testmail';
my $text = 'Testemail von mir selber';

my $mailServer = 'xx.xxxx.xxx';
my $smtp = Net::SMTP->new($mailServer);
my $mailTo = 'xy2@xxx.ch';

my $message = <<"MSGTEXT";
From: $mailFrom
To: $mailTo
Subject: $subj

Message:
$text
MSGTEXT

$smtp->mail($mailFrom);
$smtp->to($mailTo);
$smtp->data($message);
$smtp->quit;

print "Content-Type: text/html\n\n";
print "Erfolgreich versendet";
-----

Ich bitte um hilfe. Ich danke euch im Voraus
Gruss
safir

  1. Hi,

    my $smtp = Net::SMTP->new($mailServer);

    Ist dieser Aufruf gutgegangen?
    Du machst hier keinerlei Fehlerprüfung...

    cu,
    Andreas

    --
    MudGuard? Siehe http://www.Mud-Guard.de/
    1. Hi Andreas,

      ich habe mein code jetzt etwas umgeschrieben:
      ----
      my $smtp = Net::SMTP->new($mailServer) or die("Fehler: $!");
      ----

      und erhalte jetzt dieser Fehlermeldung:
      ----
      Fehler: Bad file descriptor at C:/Programme/Apache Group/Apache2/cgi-bin/xxx.cgi line 12.
      ----

      was soll jetzt dieser Fehlermeldung heissen. Ich habe ja kurz im internet nachgeschaut, aber habe nichts gescheites gefunden zu dieser Meldung.

      Ich danke dir fuer die Hilfe
      Gruss
      safir

  2. hi,

    ich versuche seit einiger Zeit einen Mail-Versand zu realisieren
    mittels des Moduls "Net::SMTP". Ich erhalte aber folgende
    Fehlermeldung im Browser, die ich nicht so ganz verstehe!!!

    Can't call method "mail" on an undefined value at C:/Programme/Apache Group/Apache2/cgi-bin/xy.cgi line 25.

    meine CGI sieht folgende massen so aus:

    #!c:/Perl/bin/Perl.exe
    use CGI ':standard';
    use Net::SMTP;
    use strict;
    use CGI::Carp qw(fatalsToBrowser);

    my $mailFrom = 'xy1@xxx.com';
    my $subj = 'Testmail';
    my $text = 'Testemail von mir selber';

    my $mailServer = 'xx.xxxx.xxx';
    my $smtp = Net::SMTP->new($mailServer);
    my $mailTo = 'xy2@xxx.ch';

    my $message = <<"MSGTEXT";
    From: $mailFrom
    To: $mailTo
    Subject: $subj

    Message:
    $text

    Hier muss eine Leerzeile rein !!!!

    MSGTEXT

    $smtp->mail($mailFrom);
    $smtp->to($mailTo);
    $smtp->data($message);
    $smtp->quit;

    print "Content-Type: text/html\n\n";

    Ähmm, Content-type ...

    Erwin

    --
    SELFforum - Das Tor zur Welt!
    Theoretiker: Wie kommt das Kupfer in die Leitung?
    Praktiker: Wie kommt der Strom in die Leitung?
    1. Hi Erwin,

      Ich erhalte immernoch diese Fehlermeldung:
      ----
      Fehler: Bad file descriptor at C:/Programme/Apache Group/Apache2/cgi-bin/sol/mail.cgi line 12.
      ----

      Mit dieser Fehlermeldung kann ich leider nicht viel anfangen. Ich habe nach "Bad file descriptor" im Web gesucht, habe leider keine gescheite erklaerung dafuer gefunden. kommischer Weise das Script bei mir zu Hause laeuft problemlos, nur in der Firma nicht.

      Ich danke jedem fuer einen Hinweis
      Gruss
      safir

      1. hi,

        Ich erhalte immernoch diese Fehlermeldung:

        Fehler: Bad file descriptor at C:/Programme/Apache Group/Apache2/cgi-bin/sol/mail.cgi line 12.

        Na, nun spann mich nicht länger auf die Folter und poste mal line 12

        Erwin

        1. Hi Erwin,

          Mein Code sieht folgende Massen aus:
          ----
          #!c:/Perl/bin/perl.exe
          use CGI ':standard';
          use Net::SMTP;
          use strict;
          use CGI::Carp qw(fatalsToBrowser);

          my $mailFrom = 'xy1@xxx.com';
          my $subj = 'Testmail';
          my $text = 'Testemail von mir selber';

          my $mailServer = 'mail.xxx.ch';
          my $smtp = Net::SMTP->new($mailServer) or die("Fehler: $!");
          my $mailTo = 'xy2@xxx.ch';

          my $message = <<"MSGTEXT";
          From: $mailFrom
          To: $mailTo
          Subject: $subj

          Message:
          --------
          $text

          MSGTEXT

          $smtp->mail($mailFrom);
          $smtp->to($mailTo);
          $smtp->data($message);
          $smtp->quit;

          print header();
          print "ENDE";
          ----

          und Zeile 12 ist:
          ----
          my $smtp = Net::SMTP->new($mailServer) or die("Fehler: $!");
          ----

          Ich danke dir fuers Geduld :)

          gruss
          safir