Отправка отчета по Email
Во вьювере предусмотрена возможность отправки отчета по Email. Для активации данной возможности необходимо установить свойство вьювера showSendEmailButton в значение true и добавить обработчик события onEmailReport.
Чистый JavaScript не имеет функций работы с Email, для этой возможности используются функции на стороне PHP сервера. Для отправки Email, в аргументах события на стороне PHP сервера необходимо установить параметры, такие как логин и пароль аккаунта, с которого будет производится отправка, а также настройки сервера - его адрес, порт и другие параметры. Для этого предназначено свойство $args->settings в аргументах события. Это свойство представляет собой объект класса StiEmailSettings, содержащий все необходимые параметры отправки.
Пример отправки отчета по Email с минимально необходимыми параметрами:
viewer.php |
<?php use Stimulsoft\Viewer\StiViewer; use Stimulsoft\Events\StiEmailEventArgs; use Stimulsoft\Report\StiReport; use Stimulsoft\StiResult;
$viewer = new StiViewer(); $viewer->options->toolbar->showSendEmailButton = true;
$viewer->onEmailReport = function (StiEmailEventArgs $args) { $args->settings->from = 'mail.sender@stimulsoft.com'; $args->settings->host = 'smtp.stimulsoft.com'; $args->settings->login = '********'; $args->settings->password = '********';
return StiResult::getSuccess('The Email has been sent successfully.'); };
$viewer->process(); ?>
|
Полный код примера доступен на GitHub.
Дополнительно, в аргументах события можно получить и изменить данные для отправки письма (тема письма, текст и имя файла отчета), получить сам отчет, а также получить настройки экспорта отчета и при необходимости изменить их. Подробное описание доступных значений аргументов находится в разделе События вьювера.
При необходимости, можно добавить вызов JavaScript события, в аргументах которого можно узнать необходимые данные для отправки письма, получить тип экспорта отчета, получить сам отчет, а также получить настройки экспорта отчета и при необходимости изменить их.
Пример изменения темы письма перед его отправкой:
viewer.php |
<?php use Stimulsoft\Viewer\StiViewer;
$viewer = new StiViewer(); $viewer->options->toolbar->showSendEmailButton = true; $viewer->onEmailReport = 'emailReport'; $viewer->process(); ?>
...
<script> function emailReport(args) { args.settings.subject = "Invoice: " + args.settings.subject; } </script>
|
При выполнении отправки Email в первую очередь будет вызвано JavaScript событие (если оно задано), затем будет вызвано событие на стороне PHP сервера. Таким образом, можно провести валидацию и корректировку значений непосредственно перед отправкой письма.
Пример проверки и изменения темы письма на стороне PHP сервера перед отправкой:
viewer.php |
$viewer->onEmailReport = function (StiEmailEventArgs $args) { if (strlen($args->settings->subject ?? '') == 0) $args->settings->subject = "{$args->formatName} report {$args->settings->attachmentName}";
return StiResult::getSuccess('The Email has been sent successfully.'); };
|
Пример добавления адресов дополнительных получателей письма с отчетом:
viewer.php |
$viewer->onEmailReport = function (StiEmailEventArgs $args) { $args->settings->cc[] = 'extra_recipient_one@stimulsoft.com'; $args->settings->bcc[] = 'hidden_recipient_one@stimulsoft.com'; $args->settings->bcc[] = 'hidden_recipient_two@stimulsoft.com John Smith';
return StiResult::getSuccess('The Email has been sent successfully.'); };
|
Вьювер позволяет установить значения по умолчанию для диалога отправки Email во вьювере. Для этого предназначены свойства defaultEmailAddress, defaultEmailSubject и defaultEmailMessage. По умолчанию данные свойства являются пустыми.
viewer.php |
<?php use Stimulsoft\Viewer\StiViewer;
$viewer = new StiViewer(); $viewer->options->toolbar->showSendEmailButton = true; $viewer->options->email->defaultEmailAddress = 'recipient_address@stimulsoft.com'; $viewer->options->email->defaultEmailSubject = 'New Invoice'; $viewer->options->email->defaultEmailMessage = 'Please check the new invoice in the attachment'; ?>
|