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