Smtp
extends EsmtpTransport
in package
implements
TransportInterface
SMTP transport class
Tags
Table of Contents
Interfaces
- TransportInterface
- Mail transport interface
Properties
- $buffer : BufferInterface|null
- Input-Output buffer for sending/receiving SMTP commands and responses
- $domain : string
- The domain name to use in HELO command
- $sourceIp : string|null
- Source IP
- $started : bool
- Connection status
- $capabilities : array<string|int, mixed>
- ESMTP capabilities
- $handlers : array<string|int, mixed>
- ESMTP extension handlers
- $params : array<string|int, mixed>
- Connection buffer parameters
Methods
- __call() : mixed
- Mixin handling method for ESMTP handlers
- __construct() : mixed
- Create a new SMTP transport
- __destruct() : mixed
- Destructor
- create() : Smtp
- Create the SMTP transport
- executeCommand() : string
- Run a command against the buffer, expecting the given response codes.
- getBuffer() : BufferInterface
- Get the IoBuffer where read/writes are occurring.
- getEncryption() : string
- Get the encryption type
- getExtensionHandlers() : array<string|int, mixed>
- Get ESMTP extension handlers
- getHost() : string
- Get the host to connect to
- getLocalDomain() : string
- Get the name of the domain Swift will identify as
- getPort() : int
- Get the port to connect to
- getSourceIp() : string|null
- Returns the IP used to connect to the destination
- getStreamOptions() : array<string|int, mixed>
- Returns the stream context options
- getTimeout() : int
- Get the connection timeout
- isStarted() : bool
- Test if an SMTP connection has been established
- reset() : void
- Reset the current mail transaction.
- send() : int
- Send the message
- setEncryption() : EsmtpTransport
- Set the encryption type (tls or ssl)
- setExtensionHandlers() : EsmtpTransport
- Set ESMTP extension handlers
- setHost() : EsmtpTransport
- Set the host to connect to
- setLocalDomain() : AbstractSmtp
- Set the name of the local domain which Swift will identify itself as.
- setPort() : EsmtpTransport
- Set the port to connect to
- setSourceIp() : AbstractSmtp
- Sets the source IP
- setStreamOptions() : EsmtpTransport
- Sets the stream context options
- setTimeout() : EsmtpTransport
- Set the connection timeout
- start() : void
- Start the SMTP connection
- stop() : void
- Stop the SMTP connection.
- assertResponseCode() : void
- Throws an Exception if a response code is incorrect
- doDataCommand() : void
- Send the DATA command
- doHeloCommand() : void
- Send the HELO welcome
- doMailFromCommand() : void
- Send the MAIL FROM command
- doRcptToCommand() : void
- Send the RCPT TO command
- getBufferParams() : array<string|int, mixed>
- Return an array of params for the Buffer
- getFullResponse() : string
- Get an entire multi-line response using its sequence number
- getReversePath() : null|string
- Determine the best-use reverse path for this message
- readGreeting() : void
- Read the opening SMTP greeting
- streamMessage() : void
- Stream the contents of the message over the buffer
- throwException() : void
- Throw a TransportException, first sending it to any listeners
- doMailTransaction() : int
- Send an email to the given recipients from the given reverse path
- getActiveHandlers() : array<string|int, mixed>
- Get ESMTP handlers which are currently ok to use
- getCapabilities() : array<string|int, mixed>
- Determine ESMTP capabilities by function group
- isFqdn() : bool
- Determine is the $hostname is a fully-qualified name
- lookupHostname() : void
- Try to determine the hostname of the server this is run on
- sendBcc() : int
- Send a message to all Bcc: recipients
- sendTo() : int
- Send a message to the given To: recipients
- setHandlerParams() : void
- Set parameters which are used by each extension handler
- sortHandlers() : int
- Custom sort for extension handler ordering
Properties
$buffer
Input-Output buffer for sending/receiving SMTP commands and responses
protected
BufferInterface|null
$buffer
= null
$domain
The domain name to use in HELO command
protected
string
$domain
= '[127.0.0.1]'
$sourceIp
Source IP
protected
string|null
$sourceIp
= null
$started
Connection status
protected
bool
$started
= false
$capabilities
ESMTP capabilities
private
array<string|int, mixed>
$capabilities
= []
$handlers
ESMTP extension handlers
private
array<string|int, mixed>
$handlers
= []
$params
Connection buffer parameters
private
array<string|int, mixed>
$params
= ['protocol' => 'tcp', 'host' => 'localhost', 'port' => 25, 'timeout' => 30, 'blocking' => 1, 'tls' => false, 'type' => \Pop\Mail\Transport\Smtp\Stream\BufferInterface::TYPE_SOCKET, 'stream_context_options' => []]
Methods
__call()
Mixin handling method for ESMTP handlers
public
__call(mixed $method, mixed $args) : mixed
Parameters
- $method : mixed
- $args : mixed
Tags
__construct()
Create a new SMTP transport
public
__construct([string $host = 'localhost' ][, int $port = 25 ][, string|null $security = null ][, BufferInterface|null $buffer = null ][, array<string|int, mixed>|null $handlers = null ]) : mixed
Parameters
- $host : string = 'localhost'
- $port : int = 25
- $security : string|null = null
- $buffer : BufferInterface|null = null
- $handlers : array<string|int, mixed>|null = null
__destruct()
Destructor
public
__destruct() : mixed
create()
Create the SMTP transport
public
static create(array<string|int, mixed> $options) : Smtp
Parameters
- $options : array<string|int, mixed>
Tags
Return values
SmtpexecuteCommand()
Run a command against the buffer, expecting the given response codes.
public
executeCommand(string $command[, array<string|int, mixed> $codes = [] ]) : string
If no response codes are given, the response will not be validated. If codes are given, an exception will be thrown on an invalid response.
Parameters
- $command : string
- $codes : array<string|int, mixed> = []
Return values
stringgetBuffer()
Get the IoBuffer where read/writes are occurring.
public
getBuffer() : BufferInterface
Return values
BufferInterfacegetEncryption()
Get the encryption type
public
getEncryption() : string
Return values
stringgetExtensionHandlers()
Get ESMTP extension handlers
public
getExtensionHandlers() : array<string|int, mixed>
Return values
array<string|int, mixed>getHost()
Get the host to connect to
public
getHost() : string
Return values
stringgetLocalDomain()
Get the name of the domain Swift will identify as
public
getLocalDomain() : string
Return values
stringgetPort()
Get the port to connect to
public
getPort() : int
Return values
intgetSourceIp()
Returns the IP used to connect to the destination
public
getSourceIp() : string|null
Return values
string|nullgetStreamOptions()
Returns the stream context options
public
getStreamOptions() : array<string|int, mixed>
Return values
array<string|int, mixed>getTimeout()
Get the connection timeout
public
getTimeout() : int
Return values
intisStarted()
Test if an SMTP connection has been established
public
isStarted() : bool
Return values
boolreset()
Reset the current mail transaction.
public
reset() : void
send()
Send the message
public
send(Message $message) : int
Parameters
- $message : Message
Return values
intsetEncryption()
Set the encryption type (tls or ssl)
public
setEncryption(string $encryption) : EsmtpTransport
Parameters
- $encryption : string
Return values
EsmtpTransportsetExtensionHandlers()
Set ESMTP extension handlers
public
setExtensionHandlers(array<string|int, mixed> $handlers) : EsmtpTransport
Parameters
- $handlers : array<string|int, mixed>
Return values
EsmtpTransportsetHost()
Set the host to connect to
public
setHost(string $host) : EsmtpTransport
Parameters
- $host : string
Return values
EsmtpTransportsetLocalDomain()
Set the name of the local domain which Swift will identify itself as.
public
setLocalDomain(string $domain) : AbstractSmtp
This should be a fully-qualified domain name and should be truly the domain you're using.
If your server doesn't have a domain name, use the IP in square brackets (i.e. [127.0.0.1]).
Parameters
- $domain : string
Return values
AbstractSmtpsetPort()
Set the port to connect to
public
setPort(int|string $port) : EsmtpTransport
Parameters
- $port : int|string
Return values
EsmtpTransportsetSourceIp()
Sets the source IP
public
setSourceIp(string $source) : AbstractSmtp
Parameters
- $source : string
Return values
AbstractSmtpsetStreamOptions()
Sets the stream context options
public
setStreamOptions(array<string|int, mixed> $options) : EsmtpTransport
Parameters
- $options : array<string|int, mixed>
Return values
EsmtpTransportsetTimeout()
Set the connection timeout
public
setTimeout(int|string $timeout) : EsmtpTransport
Parameters
- $timeout : int|string
-
seconds
Return values
EsmtpTransportstart()
Start the SMTP connection
public
start() : void
stop()
Stop the SMTP connection.
public
stop() : void
assertResponseCode()
Throws an Exception if a response code is incorrect
protected
assertResponseCode(string $response, array<string|int, mixed> $wanted) : void
Parameters
- $response : string
- $wanted : array<string|int, mixed>
doDataCommand()
Send the DATA command
protected
doDataCommand() : void
doHeloCommand()
Send the HELO welcome
protected
doHeloCommand() : void
doMailFromCommand()
Send the MAIL FROM command
protected
doMailFromCommand(string $address) : void
Parameters
- $address : string
doRcptToCommand()
Send the RCPT TO command
protected
doRcptToCommand(string $address) : void
Parameters
- $address : string
getBufferParams()
Return an array of params for the Buffer
protected
abstract getBufferParams() : array<string|int, mixed>
Return values
array<string|int, mixed>getFullResponse()
Get an entire multi-line response using its sequence number
protected
getFullResponse(string $seq) : string
Parameters
- $seq : string
Tags
Return values
stringgetReversePath()
Determine the best-use reverse path for this message
protected
getReversePath(Message $message) : null|string
Parameters
- $message : Message
Return values
null|stringreadGreeting()
Read the opening SMTP greeting
protected
readGreeting() : void
streamMessage()
Stream the contents of the message over the buffer
protected
streamMessage(Message $message) : void
Parameters
- $message : Message
throwException()
Throw a TransportException, first sending it to any listeners
protected
throwException(Exception $e) : void
Parameters
- $e : Exception
Tags
doMailTransaction()
Send an email to the given recipients from the given reverse path
private
doMailTransaction(Message $message, string $reversePath, array<string|int, mixed> $recipients) : int
Parameters
- $message : Message
- $reversePath : string
- $recipients : array<string|int, mixed>
Return values
intgetActiveHandlers()
Get ESMTP handlers which are currently ok to use
private
getActiveHandlers() : array<string|int, mixed>
Return values
array<string|int, mixed>getCapabilities()
Determine ESMTP capabilities by function group
private
getCapabilities(string $ehloResponse) : array<string|int, mixed>
Parameters
- $ehloResponse : string
Return values
array<string|int, mixed>isFqdn()
Determine is the $hostname is a fully-qualified name
private
isFqdn(string $hostname) : bool
Parameters
- $hostname : string
Return values
boollookupHostname()
Try to determine the hostname of the server this is run on
private
lookupHostname() : void
sendBcc()
Send a message to all Bcc: recipients
private
sendBcc(Message $message, string $reversePath, array<string|int, mixed> $bcc) : int
Parameters
- $message : Message
- $reversePath : string
- $bcc : array<string|int, mixed>
Return values
intsendTo()
Send a message to the given To: recipients
private
sendTo(Message $message, string $reversePath, array<string|int, mixed> $to) : int
Parameters
- $message : Message
- $reversePath : string
- $to : array<string|int, mixed>
Return values
intsetHandlerParams()
Set parameters which are used by each extension handler
private
setHandlerParams() : void
sortHandlers()
Custom sort for extension handler ordering
private
sortHandlers(HandlerInterface $a, HandlerInterface $b) : int
Parameters
- $a : HandlerInterface
- $b : HandlerInterface