FuelPHP - Управление электронной почтой
Электронная почта - это наиболее востребованная функция веб-платформы. FuelPHP предоставляет элегантный класс электронной почты в виде пакета. Он используется для отправки простого текстового электронного письма, а также расширенного электронного письма с форматированным текстом с несколькими вложениями. Он поддерживает следующие функции - сообщения в обычном текстовом формате, сообщения в формате HTML, вложения и встроенные вложения.
Конфигурация
Чтобы включить функцию электронной почты в приложении, нам нужно просто загрузить пакет электронной почты, как указано ниже, в основном файле конфигурации, fuel / app / config / config.php.
'always_load' => array (
'packages' => array (
'email',
),
),
Другой вариант - загрузить пакет электронной почты, сам контроллер следующим образом.
\Package::load('email');
Настройку электронной почты можно выполнить в основном файле конфигурации, а некоторые из важных параметров следующие:
driver - Драйвер электронной почты, например smtp
is_html - Следует ли отправлять почту в виде HTML-содержимого или нет
priority - Приоритет письма
smtp.host - Хост SMTP-сервера
smtp.port - Порт SMTP-сервера
smtp.username - Имя пользователя SMTP-сервера
smtp.password - Пароль SMTP-сервера
smtp.timeout - Тайм-аут SMTP
smtp.starttls - Нужна ли SMTP-серверу команда STARTTLS
Email API
Ниже приводится API, предоставляемый классом электронной почты и драйвера электронной почты.
ковать
Цель: создать экземпляр почтового драйвера. Он создает драйвер на основе конфигурации или входных данных, которые он получает. Драйвер электронной почты предоставляет функции для создания и отправки почты. Некоторые из возможных драйверов электронной почты:smtp, sendmail, mailgun, и mandrill.
Parameter - Нет или массив деталей конфигурации
Returns - Возвращает объект Email_Driver
Например,
$email = \Email::forge();
$email = \Email::forge (array(
'driver' => 'smtp',
));
тело
Purpose - Установить тело сообщения
Parameter - $ body - тело сообщения
Returns - Возвращает текущий экземпляр
Например,
$email = \Email::forge();
$email->body('Body message');
//or pass it a View
$email->body(\View::forge('my/view', $data);
alt_body
Purpose - Установить альтернативное тело сообщения
Parameter - $ alt_body - альтернативное тело сообщения
Returns - Возвращает текущий экземпляр
Например,
$email = \Email::forge();
$email->alt_body('Body message');
//or pass it a View
$email->alt_body(\View::forge('my/view', $data);
приоритет
Purpose - Установить приоритет почты
Parameter -
$priority- значение приоритета. Варианты -
a. \Email::P_LOWEST
* \Email::P_LOW
* \Email::P_NORMAL
* \Email::P_HIGH
* \Email::P_HIGHEST
Returns - Возвращает текущий экземпляр
Например,
$email = \Email::forge();
$email->priority(\Email::P_HIGHEST);
html_body
Purpose - Установить тело сообщения в формате HTML
Parameter -
$html - тело сообщения в формате HTML;
generate_alt - нужно ли генерировать альтернативное сообщение;
auto_attach - вставлять ли изображение или нет
Returns - Возвращает текущий экземпляр
Например,
$email = \Email::forge();
// Do generate the alt body, but don't auto attach images.
$email->html_body(\View::forge('welcome/email', $data), true, false);
из
Purpose - Для установки адреса отправителя
Parameters -
$from - с адреса электронной почты;
$name - Имя отправителя
Returns - Возвращает текущий экземпляр
Например,
$email = \Email::forge();
$email->from('[email protected]', 'My Name');
тема
Purpose - Установить тему сообщения
Parameter - $ subject - тема электронного письма
Returns - Возвращает текущий экземпляр
Например,
$email = \Email::forge();
$email->subject('Suject of the mail message');
к
Purpose - Установить адрес электронной почты получателя
Parameters -
$email - адрес электронной почты или массив адресов электронной почты;
$name - имя получателя
Returns - Возвращает текущий экземпляр
Например,
$email = \Email::forge();
$email->to('[email protected]', 'My Dear Name');
$email->to (array(
'[email protected]',
'[email protected]' => 'My Dear friend',
));
заголовок
Purpose - Чтобы установить собственный заголовок для сообщения электронной почты
Parameters -
$header - тип заголовка или массив заголовка;
$value - значение заголовка
Returns - Возвращает текущий экземпляр
Например,
$email = \Email::forge();
$email->header('X-SMTPAP', 'XXXXXXXX');
$email>reply_to (array(
'X-SMTPAP' => 'XXXXXX',
'X-SMTPAP2' > 'XXXXXA',
));
прикреплять
Purpose - Чтобы прикрепить файл к электронному письму
Parameters-
$file - путь к файлу;
$inline - прикреплять файл встроенным или нет;
$cid - идентификатор контента;
$mime - MIME-тип прикрепленного файла;
$name - переопределение имени файла вложения
Returns - Возвращает текущий экземпляр
Например,
$email = \Email::forge();
$email>attach(DOCROOT.'attachments/sample_attachment.pdf');
Отправить
Purpose - Отправить по почте.
Parameter -
$validate - нужно ли проверять адреса электронной почты
Returns - правда или ложь
Например,
$email = \Email::forge();
try{
$email->send();
} catch(\EmailSendingFailedException $e) {
// The driver could not send the mail.
} catch(\EmailValidationFailedException $e) {
// One or more email addresses failed validation.
}
Образец рабочего письма
Давайте воспользуемся API, изученным в предыдущей главе, и создадим простой код для отправки сообщения. Ниже приведен простейший код для отправки сообщения.
$email = Email::forge();
$email->from('[email protected]', 'person1');
$email->to('[email protected]', 'person2');
$email->subject('Add something');
$email->body('contents of mail'); $email->send();