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 my $email = LDV::Email->new(\%opts); * from -- default 'From' header * reply -- reply to this email instead 'from' =head2 C my $email = LDV::Email->new(\%opts); my $error = $email->send($to, $subject, $body); die($result) if $error; =cut