Perl is platform-independent.
I guess you will not run your own SMTP server. Thus everything depends a bit on the provider of the SMTP server.
MIME::Lite can do everything if you are happy with simple smtp. If you need SSL (like yahoo/google), Net::SMTP::SSL is your friend.
my $msg=MIME::Lite->new(From=>$user,
To=>join(",", @to_address),
Subject=>$0,
Data=>$data);
my $smtp = Net::SMTP::SSL->new('xxx', Debug=>1, Timeout=>20, Port=>4
+65);
$smtp->auth($user, $password) or die "Error message: $smtp->message"
+;
$status=$smtp->mail();
$status=$smtp->to(@to_address);
$status=$smtp->data();
my $msgString=$msg->as_string;
$status=$smtp->datasend($msgString);
$status=$smtp->dataend();
$status=$smtp->quit();
is a little example...