App-Basis-Email
view release on metacpan or search on metacpan
lib/App/Basis/Email.pm view on Meta::CPAN
has ssl => (
is => 'ro',
default => sub { 0 },
);
# SSL needs a user
has user => (
is => 'ro',
default => sub { '' },
);
# SSL user needs a password
has passwd => (
is => 'ro',
default => sub { '' },
);
# how should we send things, either SMTP or Sendmail (default)
has transport => (
is => 'ro',
writer => '_set_transport'
);
lib/App/Basis/Email.pm view on Meta::CPAN
Create a new instance of the email
my $mail = App::Basis::Email->new( host => "email.server.fred", port => 25 );
B<Parameters>
host ip address or hotsname of your SMTP server
port optional port number for SMTP, defaults to 25
ssl use SSL mode
user user for ssl
passwd password for ssl
testing flag to show testing mode, prevents sending of email
=cut
sub BUILD {
my $self = shift;
my $sender;
my $transport = $self->transport;
$transport = 'SMTP' if ( $self->host );
die "You need either host or transport Sendmail defined" if ( !$transport );
die "You need username/password for SSL" if ( $self->ssl && !( $self->user && $self->passwd ) );
# its sendmail or SMTP
if ( $transport =~ /sendmail/i ) {
die "sendmail_path should be passed to new when using transport => 'sendmail" if( !$self->sendmail_path) ;
$sender = Email::Sender::Transport::Sendmail->new( { sendmail => $self->sendmail_path } );
}
else {
$sender = Email::Sender::Transport::SMTP->new(
{
host => $self->host,
port => $self->port,
ssl => $self->ssl,
sasl_username => $self->user,
sasl_password => $self->passwd
}
);
}
# make sure we set this, as it can be tested for in our test code
$self->_set_transport($transport);
# this too
$self->_set_sender($sender);
}
# ----------------------------------------------------------------------------
( run in 0.707 second using v1.01-cache-2.11-cpan-49f99fa48dc )