[Cologne-pm] Fehler beim Versenden einer E-Mail

A. Pagaltzis pagaltzis at gmx.de
Tue Dec 13 07:50:30 PST 2005


* Karl-Heinz Kuth <khkuth at freenet.de> [2005-12-13 16:30]:
> Was tun, wenn das Modul Email::Send nicht für mein
> OS/Perlversion verfügbar ist? Die Version sieht so schön
> einfach aus.

Wie soll das gehen? Das sind alles Pure-Perl-Module. :-)

> Wie sieht denn das Fehlerhandling aus? Wo und wie bekommnt man
> denn eine Antwort, wenn der Befehl "send SMTP::Auth =>
> $mimelite->as_string, 'smtp.example.com', 'user', 'pass';"
> nicht korrekt läuft, weil SMTP-Server, UserId oder PW nicht
> korrekt sind?

Hmm, daran hatte ich nicht gedacht – und das ist auch ziemlich
dämlich, denn anscheinend definiert Email::Send das selber nicht,
und überlässt es jeder Unterklasse, wie sie es machen will.

Und Email::Send::SMTP::Auth gibt einfach nur false zurück und
gibt die Fehlermeldung als Warnung aus (und dann auch nur, wenn
$VERBOSE gesetzt ist).

Bah.

Bleibt wohl nichts anderes, als Email::Send wegzulassen und die
lange Variante zu nehmen, wo du Net::SMTP_auth direkt selber
verwendest:

    use Net::SMTP_auth;

    my $smtp = Net::SMTP_auth->new( 'smtp.example.com' );
    $smtp->auth( 'CRAM-MD5', 'user', 'password' );
    $smtp->mail( $from_address );
    $smtp->to( $to_address );
    $smtp->data( $mimelite->as_string );
    $smtp->quit;

Da greifen dann alle üblichen Net::Cmd-
Fehlerbehandlungsmechanismen; siehe Doku.

Gruss,
-- 
Aristoteles
»Wer nicht über sich selbst lachen kann, nimmt das Leben nicht ernst genug.«


More information about the Cologne-pm mailing list