use strict; use Net::SMTP;             my $SMTP_Host  = 'xxx'; my $account    = 'xxx'; # Prüfroutine ob der Mailserver überhaupt ansprechbar ist, erster Test #my $smtp = Net::SMTP->new( $SMTP_Host, #                           Hello    => $account, #                           Debug   => 1, #                           Timeout => 360 #                         ); # my $sender     = 'xxx.xxx.xxx.de'; my @Empfaenger = qw(xxx@xxx.de);                    # Code \015\012 (Zeilenumbruch), sonst steht alles in einer Zeile my @message = (                "Subject: Ergebnis CHECK\015\012",                "\r\n", # Leerzeile zwischen Header und Body                "Hallo,\015\012\015\012",                "das ist ein Test!\015\012",                "Waren die Zeilen lesbar??\015\012",                "\015\012",         "Gruss Joerg\015\012"              ); my $smtp = Net::SMTP->new( $SMTP_Host, Hello => $account, Debug => 1 ); my $OK;     # Absender $OK = $smtp->mail($sender); $OK ? print "Absender okay\n"    : die "Unbekannter Absender";       # Empfänger my @Gute_Adressen;     @Gute_Adressen = $smtp->recipient( @Empfaenger, { SkipBad => 1 } );     # Hier wird Adresse geprüft, for (@Gute_Adressen) { print "$_ ist brauchbar\n"; }     # die Schlechten Adressen die nicht vorhanden sind werden aussortiert...        # ausortieren my %seen;                   # lookup table @seen{@Gute_Adressen} = (); # Hash Slice mit 'undef' Values my @Schlechte_Adressen; for (@Empfaenger) { push(@Schlechte_Adressen, $_) unless exists $seen{$_}; } for (@Schlechte_Adressen) { print  "$_ ist unbrauchbar\n"; }     # Nachricht senden         $OK = $smtp->data(\@message); $OK ? print "Nachricht ausgeliefert\n"    : die "Konnte Nachricht nicht ausliefern";     # Ordungsgemäss beim Server abmelden $OK = $smtp->quit(); $OK ? print "Connection closed\n"    : die "Konte Abmeldung nicht vornehmen $!"; exit;