Alex 'AdUser' Z
10 years ago
2 changed files with 77 additions and 0 deletions
@ -0,0 +1,63 @@
|
||||
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 |
Loading…
Reference in new issue