Класс SmtpTransport
Отправка почты с использованием протокола SMTP
Постоянные значения
- AUTH_LOGIN
'LOGIN'
- AUTH_PLAIN
'PLAIN'
Краткое описание свойств
- $_config protected
array<string, mixed>Конфигурация выполнения
- $_configInitialized protected
boolУказывает, была ли конфигурация свойства уже настроена по умолчанию
- $_content protected
array<string, string>Содержание электронного письма для возврата
- $_defaultConfig protected
array<string, mixed>Конфигурация по умолчанию для этого класса
- $_lastResponse protected
arrayОтвет на последнюю отправленную команду SMTP.
- $_socket protected
Cake\Network\Socket|nullСокет для SMTP-сервера
- $authType protected
string|nullОбнаруженный тип аутентификации.
Краткое описание методов
-
__construct() public
Конструктор
-
__destruct() public
Деструктор
-
__wakeup() public
Обработчик десериализации.
-
_auth() protected
Отправка аутентификации
-
_authLogin() protected
Аутентификация с использованием механизма AUTH LOGIN.
-
_authPlain() protected
Аутентификация с использованием механизма AUTH PLAIN.
-
_bufferResponseLines() protected
Парсит и сохраняет строки ответа в формате
'code' => 'message'. -
_configDelete() protected
Удаляет один ключ конфигурации.
-
_configRead() protected
Читает ключ конфигурации.
-
_configWrite() protected
Записывает ключ конфигурации.
-
_connect() protected
Подключение к SMTP-серверу
-
_disconnect() protected
Отключение
-
_generateSocket() protected
Вспомогательный метод для генерации сокета
-
_parseAuthType() protected
Парсит последнюю строку ответа и извлекает предпочтительный тип аутентификации.
-
_prepareFromAddress() protected
Подготавливает адрес электронной почты
from. -
_prepareFromCmd() protected
Подготавливает команду SMTP
MAIL FROM. -
_prepareMessage() protected
Подготавливает тело сообщения.
-
_prepareRcptCmd() protected
Подготавливает команду SMTP
RCPT TO. -
_prepareRecipientAddresses() protected
Подготавливает адреса получателей электронной почты.
-
_sendData() protected
Отправка данных
-
_sendRcpt() protected
Отправка писем
-
_smtpSend() protected
Защищенный метод для отправки данных на соединение SMTP
-
_socket() protected
Получение экземпляра сокета.
-
checkRecipient() protected
Проверка наличия хотя бы одного адреса назначения.
-
configShallow() public
Объединяет предоставленную конфигурацию с существующей. В отличие от
config(), который выполняет рекурсивное объединение для вложенных ключей, этот метод выполняет простое объединение. -
connect() public
Подключение к SMTP-серверу.
-
connected() public
Проверка наличия открытого соединения с SMTP-сервером.
-
disconnect() public
Отключение от SMTP-сервера.
-
getConfig() public
Возвращает конфигурацию.
-
getConfigOrFail() public
Возвращает конфигурацию для конкретного ключа.
-
getLastResponse() public
Возвращает ответ на последнюю отправленную команду SMTP.
-
send() public
Отправка почты
-
setConfig() public
Установка конфигурации.
Подробное описание методов
__construct() public
__construct(array<string, mixed> $config = [])
Конструктор
Параметры
-
array<string, mixed>$config optional Параметры конфигурации.
__destruct() public
__destruct()
Деструктор
Пытается разорвать соединение, чтобы гарантировать правильное завершение перед закрытием сокета.
__wakeup() public
__wakeup(): void
Обработчик распаковки.
Гарантирует, что свойство сокета не будет переинициализировано в поврежденном состоянии.
Возвращает
void_auth() protected
_auth(): void
Отправка аутентификации
Возвращает
voidВызывает исключение
Cake\Network\Exception\SocketException_authLogin() protected
_authLogin(string $username, string $password): void
Аутентификация с использованием механизма AUTH LOGIN.
Параметры
-
string$username Имя пользователя.
-
string$password Пароль.
Возвращает
void_authPlain() protected
_authPlain(string $username, string $password): string|null
Аутентификация с использованием механизма AUTH PLAIN.
Параметры
-
string$username Имя пользователя.
-
string$password Пароль.
Возвращает
string|null_bufferResponseLines() protected
_bufferResponseLines(array<string> $responseLines): void
Разбирает и сохраняет строки ответа в формате 'code' => 'message'.
Параметры
-
array<string>$responseLines Строки ответа для разбора.
Возвращает
void_configDelete() protected
_configDelete(string $key): void
Удаляет один ключ конфигурации.
Параметры
-
string$key Ключ для удаления.
Возвращает
voidВызывает исключение
Cake\Core\Exception\CakeExceptionесли пытаетесь перезаписать существующую конфигурацию
_configRead() protected
_configRead(string|null $key): mixed
Читает ключ конфигурации.
Параметры
-
string|null$key Ключ для чтения.
Возвращает
mixed_configWrite() protected
_configWrite(array<string, mixed>|string $key, mixed $value, string|bool $merge = false): void
Записывает ключ конфигурации.
Параметры
-
array<string, mixed>|string$key Ключ для записи.
-
mixed$value Значение для записи.
-
string|bool$merge optional True для рекурсивного слияния, 'shallow' для простого слияния, false для перезаписи, по умолчанию false.
Возвращает
voidВызывает исключение
Cake\Core\Exception\CakeExceptionесли пытаетесь перезаписать существующую конфигурацию
_connect() protected
_connect(): void
Подключение к SMTP серверу
Возвращает
voidВызывает исключение
Cake\Network\Exception\SocketException_disconnect() protected
_disconnect(): void
Отключение
Возвращает
voidВызывает исключение
Cake\Network\Exception\SocketException_generateSocket() protected
_generateSocket(): void
Вспомогательный метод для генерации сокета
Возвращает
voidВызывает исключение
Cake\Network\Exception\SocketException_parseAuthType() protected
_parseAuthType(): void
Разбирает последнюю строку ответа и извлекает предпочтительный тип аутентификации.
Возвращает
void_prepareFromAddress() protected
_prepareFromAddress(Cake\Mailer\Message $message): array
Подготавливает from адрес электронной почты.
Параметры
-
Cake\Mailer\Message$message Экземпляр сообщения
Возвращает
array_prepareFromCmd() protected
_prepareFromCmd(string $message): string
Подготавливает MAIL FROM команду SMTP.
Параметры
-
string$message Адрес электронной почты для отправки с командой.
Возвращает
string_prepareMessage() protected
_prepareMessage(Cake\Mailer\Message $message): string
Подготавливает тело сообщения.
Параметры
-
Cake\Mailer\Message$message Экземпляр сообщения
Возвращает
string_prepareRcptCmd() protected
_prepareRcptCmd(string $message): string
Подготавливает RCPT TO команду SMTP.
Параметры
-
string$message Адрес электронной почты для отправки с командой.
Возвращает
string_prepareRecipientAddresses() protected
_prepareRecipientAddresses(Cake\Mailer\Message $message): array
Подготавливает адреса электронной почты получателей.
Параметры
-
Cake\Mailer\Message$message Экземпляр сообщения
Возвращает
array_sendData() protected
_sendData(Cake\Mailer\Message $message): void
Отправка данных
Параметры
-
Cake\Mailer\Message$message Экземпляр сообщения
Возвращает
voidВызывает исключение
Cake\Network\Exception\SocketException_sendRcpt() protected
_sendRcpt(Cake\Mailer\Message $message): void
Отправка электронных писем
Параметры
-
Cake\Mailer\Message$message Экземпляр сообщения
Возвращает
voidВызывает исключение
Cake\Network\Exception\SocketException_smtpSend() protected
_smtpSend(string|null $data, string|false $checkCode = '250'): string|null
Защищенный метод для отправки данных в SMTP соединение
Параметры
-
string|null$data Данные для отправки на SMTP сервер
-
string|false$checkCode optional Код для проверки в ответе сервера, false для пропуска
Возвращает
string|nullВызывает исключение
Cake\Network\Exception\SocketException_socket() protected
_socket(): Cake\Network\Socket
Получение экземпляра сокета.
Возвращает
Cake\Network\SocketВызывает исключение
RuntimeExceptionЕсли сокет не установлен.
checkRecipient() protected
checkRecipient(Cake\Mailer\Message $message): void
Проверить, что установлен хотя бы один заголовок назначения.
Параметры
-
Cake\Mailer\Message$message Экземпляр сообщения.
Возвращает
voidВыбрасывает
Cake\Core\Exception\CakeExceptionЕсли хотя бы один из to, cc или bcc не указан.
configShallow() public
configShallow(array<string, mixed>|string $key, mixed|null $value = null): $this
Объединить предоставленную конфигурацию с существующей. В отличие от config(), который выполняет рекурсивное объединение для вложенных ключей, этот метод выполняет простое объединение.
Установка определенного значения:
$this->configShallow('key', $value); Установка вложенного значения:
$this->configShallow('some.nested.key', $value); Обновление нескольких параметров конфигурации одновременно:
$this->configShallow(['one' => 'value', 'another' => 'value']);
Параметры
-
array<string, mixed>|string$key Ключ для установки или массив конфигураций.
-
mixed|null$value необязательно Значение для установки.
Возвращает
$thisconnect() public
connect(): void
Подключиться к серверу SMTP.
Этот метод пытается подключиться только в том случае, если уже нет доступного открытого соединения.
Возвращает
voidconnected() public
connected(): bool
Проверить, доступно ли открытое соединение с сервером SMTP.
Возвращает
booldisconnect() public
disconnect(): void
Отключиться от сервера SMTP.
Этот метод пытается отключиться только в том случае, если доступно открытое соединение.
Возвращает
voidgetConfig() public
getConfig(string|null $key = null, mixed $default = null): mixed
Возвращает конфигурацию.
Использование
Чтение всей конфигурации:
$this->getConfig();
Чтение определенного значения:
$this->getConfig('key'); Чтение вложенного значения:
$this->getConfig('some.nested.key'); Чтение со значением по умолчанию:
$this->getConfig('some-key', 'default-value'); Параметры
-
string|null$key необязательно Ключ для получения или null для всей конфигурации.
-
mixed$default необязательно Возвращаемое значение, когда ключ не существует.
Возвращает
mixedgetConfigOrFail() public
getConfigOrFail(string $key): mixed
Возвращает конфигурацию для указанного ключа.
Значение конфигурации для данного ключа должно существовать, оно никогда не может быть null.
Параметры
-
string$key Ключ для получения.
Возвращает
mixedВыбрасывает
InvalidArgumentExceptiongetLastResponse() public
getLastResponse(): array
Возвращает ответ последней отправленной команды SMTP.
Ответ состоит из одной или нескольких строк, содержащих код ответа и, необязательно, текст сообщения ответа:
[
[
'code' => '250',
'message' => 'mail.example.com'
],
[
'code' => '250',
'message' => 'PIPELINING'
],
[
'code' => '250',
'message' => '8BITMIME'
],
// etc...
] Возвращает
arraysend() public
send(Cake\Mailer\Message $message): array{headers: string, message: string} Отправка почты
Параметры
-
Cake\Mailer\Message$message Экземпляр сообщения
Возвращает
array{headers: string, message: string}Выбрасывает
Cake\Network\Exception\SocketExceptionsetConfig() public
setConfig(array<string, mixed>|string $key, mixed|null $value = null, bool $merge = true): $this
Устанавливает конфигурацию.
Использование
Установка определенного значения:
$this->setConfig('key', $value); Установка вложенного значения:
$this->setConfig('some.nested.key', $value); Обновление нескольких параметров конфигурации одновременно:
$this->setConfig(['one' => 'value', 'another' => 'value']);
Параметры
-
array<string, mixed>|string$key Ключ для установки или массив конфигураций.
-
mixed|null$value необязательно Значение для установки.
-
bool$merge необязательно Выполнять рекурсивное объединение или перезапись существующей конфигурации, по умолчанию true.
Возвращает
$thisВыбрасывает
Cake\Core\Exception\CakeExceptionПри попытке установить недопустимый ключ.
Подробное описание свойств
$_config protected
Конфигурация во время выполнения
Тип
array<string, mixed>$_configInitialized protected
Признак того, что свойство config уже настроено со значениями по умолчанию
Тип
bool$_content protected
Содержимое возвращаемого электронного письма
Тип
array<string, string>$_defaultConfig protected
Конфигурация по умолчанию для этого класса
Тип
array<string, mixed>$_lastResponse protected
Ответ последней отправленной команды SMTP.
Тип
array$_socket protected
Сокет сервера SMTP
Тип
Cake\Network\Socket|null$authType protected
Обнаруженный тип аутентификации.
Тип
string|null
© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/4.4/class-Cake.Mailer.Transport.SmtpTransport.html