Попробуй так для sendmail:
#!/usr/bin/perl
open (SENDMAIL, "|/usr/sbin/sendmail -t") or die "sendmail not ready";
print SENDMAIL "Content-Type: text/plain; charset=windows-1251\\n";
print SENDMAIL "From: John Doe \\n";
print SENDMAIL "To: Frank Smith print SENDMAIL "Reply-To: Frank Smith \\n";
print SENDMAIL "Subject: Test.\\n\\n";
print SENDMAIL "It\'s just test!!!";
close (SENDMAIL) or warn "sendmail didn\'t close nicely";
вторым способом я не прользовался, но можно ещё с мопощью например Mime::Lite...она и через SMTP тож отсылает
синтаксис такой:
use MIME::Lite;
MIME::Lite->send(\'sendmail\', \'/usr/sbin/sendmail -t\');
or
MIME::Lite->send(\'smtp\', "smtp.myisp.net", Timeout=>60);
$msg = MIME::Lite->new(
   From    =>$from,
   Bcc     =>"$to",
    Subject =>$subject,
   Type    =>\'multipart/mixed\'
   );
$msg->attach(Type     =>\'TEXT\',
   Data     =>"$text"
);
$msg->send();