  use Net::SMTP;

  sub mail {
     my ($msg,$server) = @_;

     # wyodrebnij z wiadomosci nadawce i odbiorce
     my ($header,$body) = split /\n\n/,$msg,2;
     return warn "bez naglowka" unless $header && $body;

     # zloz wiersze kontynuacji
     $header =~ s/\n\s+/ /gm;

     # analizuj pola
     my (%fields) = $header =~ /([\w-]+):\s+(.+)$/mg;
    my $from = $fields{From}                 or return warn "bez pola From";
    my @to   = split /\s*,\s*/,$fields{To}   or return warn "bez pola To";
    push @to,split /\s*,\s*/,$fields{Cc}     if $fields{Cc};

    # otworz serwer
    my $smtp = Net::SMTP->new($server)          or return warn "serwer nie zostal otwarty";
    $smtp->mail($from)                          or return warn $smtp->message;
    my @ok = $smtp->recipient(@to,{SkipBad=>1}) or return warn $smtp->message;
    warn $smtp->message unless @ok == @to;
    $smtp->data($msg)                           or return warn $smtp->message;
    $smtp->quit;
  }