Во вьювере предусмотрена возможность отправки отчета по Email. Для активации данной возможности необходимо установить свойство вьювера showSendEmailButton в значение true и добавить обработчик события onEmailReport:

 

viewer.php

 

<?php

$options = new \Stimulsoft\Viewer\StiViewerOptions();

$options->toolbar->showSendEmailButton = true;

 

$viewer = new \Stimulsoft\Viewer\StiViewer($options);

$viewer->onEmailReport = true;

$viewer->renderHtml();

?>

 

 

 

При необходимости, можно добавить вызов JavaScript события, в аргументах которого можно узнать необходимые данные для отправки письма, получить тип экспорта отчета, получить сам отчет, а также получить настройки экспорта отчета и при необходимости изменить их. Подробное описание доступных значений аргументов находится в разделе События вьювера.

 

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

 

viewer.php

 

<?php

$viewer = new \Stimulsoft\Viewer\StiViewer();

$viewer->onEmailReport = 'onEmailReport';

$viewer->renderHtml();

?>

 

function onEmailReport(args) {

args.settings.subject = "Invoice: " + args.settings.subject;

}

 

 

 

Чистый JavaScript не имеет функций работы с Email, для этой возможности реализованы функции для отправки на стороне PHP сервера. Чтобы воспользоваться ими, необходимо на стороне клиента в событии onEmailReport добавить вызов обработчика событий, а на стороне сервера определить одноименное событие onEmailReport в файле обработчика событий. Подробное описание работы событий находится в разделе Обработчик событий PHP.

 

viewer.php

 

<?php

$viewer = new \Stimulsoft\Viewer\StiViewer();

$viewer->onEmailReport = true;

$viewer->renderHtml();

?>

 

 

handler.php

 

$handler->onEmailReport = function ($args) {

$format = $args->format;

$fileName = $args->fileName;

$settings = $args->settings;

 

return \Stimulsoft\StiResult::success();

};

 

 

 

Для отправки Email на стороне PHP сервера, в аргументах события необходимо передать данные, такие как логин и пароль аккаунта, с которого будет производится отправка, а также настройки сервера - его адрес, порт и другие параметры. Для этого предназначено свойство settings в аргументах события, оно представляет собой объект класса StiEmailSettings, который содержит все необходимые свойства для настройки отправки Email. Подробное описание доступных настроек находится в разделе События вьювера.

 

Пример установки минимально необходимых настроек почтового сервера для отправки отчета:

 

handler.php

 

$handler->onEmailReport = function ($args) {

$args->settings->from = 'mail.sender@stimulsoft.com';

$args->settings->host = 'smtp.stimulsoft.com';

$args->settings->port = 456;

$args->settings->login = '********';

$args->settings->password = '********';

 

return \Stimulsoft\StiResult::success();

};

 

 

 

Пример проверки и изменения темы письма перед отправкой:

 

handler.php

 

$handler->onEmailReport = function ($args) {

if (strlen($args->settings->subject) == 0)

$args->settings->subject = $args->formatName . ' report '.$args->settings->attachmentName;

 

return \Stimulsoft\StiResult::success();

};

 

 

 

Пример добавления адресов дополнительных получателей письма с отчетом:

 

handler.php

 

$handler->onEmailReport = function ($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 \Stimulsoft\StiResult::success();

};

 

 

 

Настройки отправки Email

Вьювер позволяет установить значения по умолчанию для формы отправки Email. Для этого предназначены свойства defaultEmailAddress, defaultEmailSubject и defaultEmailMessage. По умолчанию данные свойства являются пустыми.

 

viewer.php

 

<?php

$options = new \Stimulsoft\Viewer\StiViewerOptions();

$options->toolbar->showSendEmailButton = true;

 

$options->email->defaultEmailAddress = 'recipient_address@stimulsoft.com';

$options->email->defaultEmailSubject = 'New Invoice';

$options->email->defaultEmailMessage = 'Please check the new invoice in the attachment';

?>