Oli: MailTools und SMTP

Hallo liebes Forum,

ich benutze normal unter Linux das Modul Mail::Mailer um per sendmail schnell und problemlos Bestätigungsmails nach einer Formulareingabe zu schicken. Da ich nun dasselbe unter NT ohne ein sendmail clone bewirken will, möchte ich via SMTP gehen. Gesagt getan, hier der Auszug:

eval{  

my $absender = $_[0]; #@ quoten!
   my $empfaenger =  $_[1]; #@ quoten!
   my $betreff = $_[2];
   my $rumpf = $_[3];

my $mailer = Mail::Mailer->new("smtp", "mailout.lrz-muenchen.de");  
  
   $mailer->open({ From => $absender,
     To => $empfaenger,
     Subject => $betreff,
   })
     or die "Kann nicht oeffnen: $!\n";
    
   print $mailer $rumpf;
   $mailer->close;
};

if ($@){print "Fehler $@\n";}  

Sieht doch eigentlich o.k. aus, dennoch gibt es zwei Fehlermeldungen: use of uninitialized value in split at Mailer.pm 207 sowie die in $@ stehende Fehlermeldung Invalid argument at Mailer.pm 264

Habe in Mailer.pm selbst geschaut, irgendwie wird smtp nicht als $exe anerkannt. Nur für mein Verständnis: Muß ich zusätzlich, wenn ich den Weg über einen SMTP Server gehe noch ein Mailprogramm auf Systemebenen wie etwa sendmail haben? Ich habe es so verstanden, daß ich entweder sendmail nehme oder mich eben eines SMTP Servers bediene.

Mit der Bitte um Hilfe

Der mitlerweile völlig verwirrte Oliver

  1. Hallo Oliver,

    wenn Du eine Mail direkt an einen SMTP-Host senden willst, musst Du den Namen des SMTP-Hosts kennen, der da an Port 25 lauscht. Für Deine Domain "lrz-muenchen.de" lauten die Hosts wie folgt:

    mailrelay1.lrz-muenchen.de
    mailrelay2.lrz-muenchen.de

    das kannst Du mit diesem CGI hier abfragen:http://www.i-netlab.de/cgi-bin/mx.cgi, aber: Du musst auch dafür sorgen, dass eine etwaige Nichterreichbarkeit des Hosts entsprechend abgefangen wird und eine Fehlermeldung ausgegeben wird, dazu schau mal in die Dokumentation des Moduls "Mailer.pm". Ein richtiger Mailerdämon wie "Sendmail" auf UNIX-Systemen nimmt Dir z.B. die Abfrage des MX-Records (DNS) ab (Du brauchst also nur die Mailadresse) und versucht bei Nichterreichbarkeit eines SMTP-Hosts die anderen, falls es mehrere gibt. Weiteres zu "Sendmail" siehe http://www.sendmail.org/; Rolf

    1. Hallo Rolf,
      danke für die Hilfe, leider gibt auch folgende Zeile

      my $mailer = Mail::Mailer->new("smtp", "mailrelay1.lrz-muenchen.de");

      dieselbe Fehlermeldung. Hast Du vielleicht noch ne Idee, woran es hapern könnte.
      Als Alternative dachte ich schon, den sendmail clone brat zu benutzen. Allerdings habe ich von mehreren Seiten gehört, daß der sehr fehleranfällig sein soll. Hast Du (oder ein anderer Forumler) da bereits Erfahrung sammeln können.

      Beste Grüße

      Oliver

      1. Hallo,

        danke für die Hilfe, leider gibt auch folgende Zeile

        my $mailer = Mail::Mailer->new("smtp", "mailrelay1.lrz-muenchen.de");

        benutzt Du die Mail-Tools http://theoryx5.uwinnipeg.ca/CPAN/data/MailTools/Mail/Mailer.html?

        dann dürfte der Syntax so aussehen

        <cite>
        smtp

        Use the smtp protocol via Net::SMTP to deliver the mail. The server to use can be specified in @args with
            $mailer = new Mail::Mailer 'smtp', Server => $server;
        </cite>

        Als Alternative dachte ich schon, den sendmail clone brat zu benutzen. Allerdings habe ich von mehreren Seiten gehört, daß der sehr fehleranfällig sein soll. Hast Du (oder ein anderer Forumler) da bereits Erfahrung sammeln können.

        Du meinst "Blat" ;-) nein keine Erfahrung damit...

        Aber mit Net::SMTP, schau mal auf http://www.i-netlab.de/pop3/pop3.htm

        Viele Grüße, Rolf

        1. Hallo Rolf,

          Du meinst "Blat" ;-) nein keine Erfahrung damit...

          ganz genau, das gute Blat hat funktioniert, und zwar gleich ...

          Danke für die Hilfe.

          Oliver