Reputation: 9576
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
Upvotes: 5
Views: 353
Reputation: 4115
Email::Stuff is a nice wrapper for Email::MIME. You don't need to care about the MIME structure of the mail, the module does it for you.
Email::Stuff->from ('[email protected]' )
->to ('[email protected]' )
->bcc ('[email protected]' )
->text_body($body )
->attach (io('dead_bunbun_faked.gif')->all,
filename => 'dead_bunbun_proof.gif')
->send;
It also has as_string.
Upvotes: 1
Reputation: 39158
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.
Upvotes: 4
Reputation: 14112
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;
Upvotes: 2