You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 lines
1.1 KiB

10 years ago
package LDV::Email;
use strict;
use warnings;
use utf8;
use Email::Simple;
use Email::Sender::Simple qw(sendmail);
sub new {
my ($class, $opts) = @_;
my $self = {
from => 'noreply@example.com',
reply => 'admin@example.com',
%$opts,
};
return bless($self, $class);
}
sub send {
my ($self, $to, $subject, $body) = @_;
eval {
my $email = Email::Simple->create(
header => [
From => $self->{from},
'Reply-To' => $self->{reply} || $self->{from},
To => $to,
Subject => $subject,
],
body => $body);
sendmail($email, {from => $self->{from}}); 1;
} or do {
return $@->message if ref $@;
return $@;
};
return;
}
1;
=pod
=head1 NAME
LDV::Email -- simple wrapper class to work with emails
=head2 C<new>
my $email = LDV::Email->new(\%opts);
* from -- default 'From' header
* reply -- reply to this email instead 'from'
=head2 C<send>
my $email = LDV::Email->new(\%opts);
my $error = $email->send($to, $subject, $body);
die($result) if $error;
=cut