Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What's a good Perl OO interface for creating and sending email?

Tags:

email

perl

cpan

I'm looking for a simple (OO?) approach to email creation and sending.

Something like

$e = Email->new(to => "test <[email protected]>", from => "from <[email protected]>");
$e->plain_text($plain_version);
$e->html($html_version);
$e->attach_file($some_file_object);

I've found Email::MIME::CreateHTML, which looks great in almost every way, except that it does not seem to support file attachments.

Also, I'm considering writing these emails to a database and having a cronjob send them at a later date. This means that I would need a $e->as_text() sub to return the entire email, including attachments, as raw text which I could stuff into the db. And so I would then need a way of sending the raw emails - what would be a good way of achieving this?

Many thanks

like image 980
aidan Avatar asked May 05 '10 16:05

aidan


2 Answers

You have to read the documentation more carefully, then two of your three questions would be moot.

From the synopsis of Email::MIME::CreateHTML:

my $email = Email::MIME->create_html(

You obviously get an Email::MIME object. See methods parts_set and parts_set for so called attachments.

Email::MIME is a subclass of Email::Simple. See method as_string for serialising the object to text.

See Email::Sender for sending mail.

like image 90
daxim Avatar answered Sep 23 '22 23:09

daxim


You might check out perl MIME::Lite.

You can get the message as a string to save into a database:

### Get entire message as a string:
$str = $msg->as_string;
like image 34
WhirlWind Avatar answered Sep 21 '22 23:09

WhirlWind