The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.


Email::Sender::Transport::SMTP - send email over SMTP


version 2.601


This transport is used to send email over SMTP, either with or without secure sockets (SSL/TLS). It is one of the most complex transports available, capable of partial success.

For a potentially more efficient version of this transport, see Email::Sender::Transport::SMTP::Persistent.


This library should run on perls released even a long time ago. It should work on any version of perl released in the last five years.

Although it may work on older versions of perl, no guarantee is made that the minimum required version will not be increased. The version may be increased for any reason, and there is no promise that patches will be accepted to lower the minimum required perl.


The following attributes may be passed to the constructor:

hosts: an arrayref of names of the host to try, in order; defaults to a single element array containing localhost

The attribute host may be given, instead, which contains a single hostname.

ssl: if 'starttls', use STARTTLS; if 'ssl' (or 1), connect securely; if 'maybestarttls', use STARTTLS if available; otherwise, no security
ssl_options: passed to Net::SMTP constructor for 'ssl' connections or to starttls for 'starttls' or 'maybestarttls' connections; should contain extra options for IO::Socket::SSL
port: port to connect to; defaults to 25 for non-SSL, 465 for 'ssl', 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 sasl_username is provided
sasl_authenticator: An Authen::SASL instance to use for auth; optional

The sasl_authenticator and sasl_username attributes are mutually exclusive.

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: if true, put the Net::SMTP object in debug mode


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


Ricardo Signes <>


This software is copyright (c) 2024 by Ricardo Signes.

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