Email::Sender::Transport::SMTPS(3) Email::Sender joins Net::SMTPS


use Email::Sender::Simple qw(sendmail);
use Email::Sender::Transport::SMTPS;
use Try::Tiny;
my $transport = Email::Sender::Transport::SMTPS->new(
host => '',
ssl => 'starttls',
sasl_username => '[email protected]',
sasl_password => 'mypassword',
debug => 0, # or 1
# my $message = Mail::Message->read($rfc822)
# || Email::Simple->new($rfc822)
# || Mail::Internet->new([split /\n/, $rfc822])
# || ...
# || $rfc822;
# read L<Email::Abstract> for more details
use Email::Simple::Creator; # or other Email::
my $message = Email::Simple->create(
header => [
From => '[email protected]',
To => '[email protected]',
Subject => 'Subject title',
body => 'Content.',
try {
sendmail($message, { transport => $transport });
} catch {
die "Error sending email: $_";


This transport is used to send email over SMTP, either with or without secure sockets (SSL/TLS). it uses the great Net::SMTPS.

that's based on a patch for Email::Sender::Transport::SMTP. <> most of the code are copied from Email::Sender::Transport::SMTP


The following attributes may be passed to the constructor:
"host": the name of the host to connect to; defaults to "localhost"
"ssl": 'ssl' / 'starttls' / undef, if true, passed to Net::SMTPS doSSL.
"port": port to connect to; defaults to 25 for non-SSL, 465 for 'ssl' and 587 for 'starttls'
"timeout": maximum time in secs to wait for server; default is 120
"sasl_username": the username to use for auth; optional
"sasl_password": the password to use for auth; required if "username" is provided
"allow_partial_success": if true, will send data even if some recipients were rejected; defaults to false
"helo": what to say when saying HELO; no default
"localaddr": local address from which to connect
"localport": local port from which to connect
"debug": enable debug info for Net::SMTPS


If "allow_partial_success" was set when creating the transport, the transport may return Email::Sender::Success::Partial objects. Consult that module's documentation.


send email with Gmail

  my $transport = Email::Sender::Transport::SMTPS->new({
    host => '',
    ssl  => 'starttls',
    sasl_username => 'my[email protected]',
    sasl_password => 'mypassword',

send email with mandrillapp

  my $transport = Email::Sender::Transport::SMTPS->new(
    host => '',
    ssl  => 'starttls',
    sasl_username => '[email protected]',
    sasl_password => 'api_key',
    helo => '',

send with Amazon SES

  my $transport = Email::Sender::Transport::SMTPS->new(
    host => '',
    ssl  => 'starttls',
    sasl_username => 'xx',
    sasl_password => 'zzz',


Fayland Lam <[email protected]>


Copyright 2013- Fayland Lam


This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.