Mail::Sender provides an object oriented interface to sending mails. It doesn't need any outer program. It connects to a mail server directly from Perl, using Socket. It can handle attachments.