SMTP

Класс SMTP - это подключаемый модуль SMTP для подготовки сообщений электронной почты (заголовки и вложения) и отправки их через соединение по socket.

Пространство имен: \

Расположение файла:lib/smtp.php

Инициализация

Вернуть экземпляр класса

$smtp = new SMTP ( $host, $port, $scheme, $user, $pw );

Пожалуйста, обратитесь к методу _construct для получения подробной информации.

Класс SMTP наследует класс Magic .

Методы

set

Привязать значение к заголовку электронного письма

string set ( string $key, string $val )

Эта функция позволяет привязать значение к заголовку электронного письма. Полный список доступных полей см. в разделе Формат интернет-сообщений, RFC5322 (возвращает значение $val).

Пример:

echo $smtp->set('Errors-to', '<bluehole@fatfreeframework.com>');
echo $smtp->set('To', '"Contact Name" <smtp-plug-in@fatfreeframework.com>');
echo $smtp->set('Subject', 'Sent with the F3 SMTP plug-in');

Несколько получателей:

echo $smtp->set('To', '"Username1" <user1@fatfreeframework.com>, "Username2" <user2@fatfreeframework.com>');

NB: имена ключей заголовка электронной почты чувствительны к регистру и должны начинаться с большой буквы.

get

Возвращаемое значение заголовка электронного письма

string|NULL get ( string $key )

Эта функция позволяет вам возвращать значение заголовка электронного письма.

Пример:

echo $smtp->get('From'); // displays e.g. 'J. W. von Goethe <jwgoethe@famousauthors.org>'
 

exists

Вернуть TRUE, если заголовок существует

bool exists ( string $key )

Эта функция возвращает, TRUE если заголовок существует в соответствии с функцией set(), описанной выше.

Пример:

$has_date_header = $smtp->exists('Date'); // returns TRUE

clear

Удалить заголовок

NULL clear ( string $key )

Эта функция позволяет удалить заголовок.

Пример:

$smtp->clear('In-Reply-To');

attach

Добавить вложение сообщения

NULL attach ( $filename, [ $alias ] )

Эта функция позволяет вам добавить вложение сообщения из файла на веб-сервере. Необязательный параметр alias позволяет использовать другую метку для значения имени файла, как оно отображается во вложении электронной почты, на случай, если вы хотите скрыть исходное значение имени файла для повышения безопасности за счет обфускации.

attach проверяет, является ли имя файла обычным файлом или нет (в соответствии с функцией PHP is_file ), в противном случае высвечивается user_error.

Пример:

$smtp->attach( './files/pdf/'.$pdf );
$smtp->attach( './pictures/'.$screenshot ); // you can attach as many attachments you need to the same e-mail

send

Отправить сообщение

bool send ( string $message [, bool $log = TRUE ] )

Эта функция позволяет отправлять сообщение. send открывает soket соединение, используя настройки, предоставленные при создании экземпляра класса. (подробнее см. _construct ниже).

заголовки 'From', 'To' и 'Subject' являются обязательными ,$message также; в противном случае высвечивается user_error.

$log - это переменная для включения и отключения логов истории разговора клиент-сервер, которые вы можете получить с помощью метода log() .

Возврат TRUE в случае успеха или FALSE когда:

  • Не удалось установить соединение soket'a с хостом.
  • SSL недоступен на сервере, пока объект SMTP был создан с помощью $scheme=='ssl'.

Пример:

$smtp->send($message); // returns TRUE or FALSE

log

Вернуть историю разговора клиент-сервер

string log ( )

Эта функция позволяет получать историю разговоров клиент-сервер в виде логов на каждую команду.

Пример:

echo '<pre>'.$smtp->log().'</pre>';
/ / Outputs:
250-8BITMIME
250-AUTH LOGIN PLAIN XOAUTH XOAUTH2 PLAIN-CLIENTTOKEN
250 CHUNKING
AUTH LOGIN
235 2.7.0 Accepted
MAIL FROM:
(…)
QUIT
502
  

__construct

Создать экземпляр класса

__construct ( string $host, int $port, string $scheme, string $user, string $pw )

Конструктор позволяет создать экземпляр класса и указать параметры, которые будут использоваться функцией send.

  • $host & $port SMTP-сервера, который вы хотите использовать для отправки сообщений.
  • $scheme позволяет использовать SSL-соединение при условии, что на сервере загружено расширение openssl .
  • $scheme позволяет использовать соединение TLS. Шифрование будет основано на методе STREAM_CRYPTO_METHOD_TLS_CLIENT согласно функции PHP stream_socket_enable_crypto.
  • $user & $pw используются для аутентификации с помощью команды SMTP AUTH LOGIN.

Пример:

$smtp_ssl = new SMTP ( $host, $port, 'ssl', $user, $pw );
$smtp_tls = new SMTP ( $host, $port, 'tls', $user, $pw );

fixheader

Исправить заголовок

protected string fixheader ( string $key )

Эта функция позволяет исправить заголовок

Этот метод, с областью видимости protected, используется внутри get, set, exists и clear методов для проверки и обеспечения правильного формирования значений полученных заголовков(в основном убирает запрещенные символы).

dialog

Отправить команду SMTP и записать ответ сервера

protected dialog ( [ string $cmd = NULL [, bool $log = NULL ]] )

Этот метод, с областью видимости protected, используется внутри send и позволяет отправлять SMTP-команду, записывая ответ сервера.

Печать/экспорт