Documentation

EsmtpTransport extends AbstractSmtp
in package
implements AgentInterface

ESMTP transport class

Tags
category

Pop

author

Chris Corbyn, from the SwiftMailer library https://github.com/swiftmailer/swiftmailer

version
4.0.0

Table of Contents

Interfaces

AgentInterface
SMTP agent 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
Creates a new EsmtpTransport using the given I/O buffer
__destruct()  : mixed
Destructor
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 given 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()  : EsmtpTransport
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
Overridden to perform EHLO instead
doMailFromCommand()  : void
Overridden to add Extension support
doRcptToCommand()  : void
Overridden to add Extension support
getBufferParams()  : array<string|int, mixed>
Get the params to initialize 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

$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
throws
Exception

__construct()

Creates a new EsmtpTransport using the given I/O buffer

public __construct([BufferInterface|null $buffer = null ][, array<string|int, mixed>|null $handlers = null ]) : mixed
Parameters
$buffer : BufferInterface|null = null
$handlers : array<string|int, mixed>|null = null

executeCommand()

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
string

getEncryption()

Get the encryption type

public getEncryption() : string
Return values
string

getExtensionHandlers()

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
string

getLocalDomain()

Get the name of the domain Swift will identify as

public getLocalDomain() : string
Return values
string

getPort()

Get the port to connect to

public getPort() : int
Return values
int

getSourceIp()

Returns the IP used to connect to the destination

public getSourceIp() : string|null
Return values
string|null

getStreamOptions()

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
int

isStarted()

Test if an SMTP connection has been established

public isStarted() : bool
Return values
bool

reset()

Reset the current mail transaction.

public reset() : void

send()

Send the given Message.

public send(Message $message) : int

Recipient/sender data will be retrieved from the Message API. The return value is the number of recipients who were accepted for delivery.

Parameters
$message : Message
Tags
throws
Exception
Return values
int

setExtensionHandlers()

Set ESMTP extension handlers

public setExtensionHandlers(array<string|int, mixed> $handlers) : EsmtpTransport
Parameters
$handlers : array<string|int, mixed>
Return values
EsmtpTransport

setLocalDomain()

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
AbstractSmtp

setStreamOptions()

Sets the stream context options

public setStreamOptions(array<string|int, mixed> $options) : EsmtpTransport
Parameters
$options : array<string|int, mixed>
Return values
EsmtpTransport

start()

Start the SMTP connection

public start() : 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()

Overridden to perform EHLO instead

protected doHeloCommand() : void

doMailFromCommand()

Overridden to add Extension support

protected doMailFromCommand(string $address) : void
Parameters
$address : string

doRcptToCommand()

Overridden to add Extension support

protected doRcptToCommand(string $address) : void
Parameters
$address : string

getBufferParams()

Get the params to initialize the buffer

protected 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
throws
Exception
Return values
string

getReversePath()

Determine the best-use reverse path for this message

protected getReversePath(Message $message) : null|string
Parameters
$message : Message
Return values
null|string

readGreeting()

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

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
int

getActiveHandlers()

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
bool

lookupHostname()

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
int

sendTo()

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
int

setHandlerParams()

Set parameters which are used by each extension handler

private setHandlerParams() : void

        
On this page

Search results