Настроить, чтобы скрипт отправлял письмо со вложением xls файла
500 руб. за проект
Нужно настроить, чтобы этот скрипт отправлял письмо со вложением xls файла (сам он формируется в папке нормально), но не отправляется через событие
<?php
if (PHP_SAPI !== 'cli') die('console mode only');
$DOCUMENT_ROOT = str_replace('/scripts/exportlinkoml.php','',__FILE__);
if(empty($_SERVER["DOCUMENT_ROOT"])) $_SERVER["DOCUMENT_ROOT"] = $DOCUMENT_ROOT;
require($DOCUMENT_ROOT."/bitrix/modules/main/include/prolog_before.php");
define("NO_KEEP_STATISTIC", true);
define("NOT_CHECK_PERMISSIONS", true);
set_time_limit(0);
ini_set('max_execution_time', '3600');
ini_set('memory_limit', '512M');
\Bitrix\Main\Loader::includeModule('catalog');
$iblockIds = [48, 49];
$elements = \Bitrix\Catalog\ProductTable::getList([
'select' => ['ELEMENT_ID' => 'IBLOCK_ELEMENT.ID', 'ELEMENT_NAME' => 'IBLOCK_ELEMENT.NAME', 'QUANTITY'],
'filter' => ['IBLOCK_ELEMENT.IBLOCK_ID' => $iblockIds, '>QUANTITY' => 0]
])->fetchAll();
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xls;
// Создаем новый объект Spreadsheet
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
// Устанавливаем заголовки столбцов
$sheet->setCellValue('A1', 'ID');
$sheet->setCellValue('B1', 'Name');
$sheet->setCellValue('C1', 'Quantity');
// Заполняем данные
$row = 2;
foreach ($elements as $element) {
$sheet->setCellValue('A' . $row, $element['ELEMENT_ID']);
$sheet->setCellValue('B' . $row, $element['ELEMENT_NAME']);
$sheet->setCellValue('C' . $row, $element['QUANTITY']);
$row++;
}
// Сохраняем файл в формате Excel в папке /scripts/
$filename = $DOCUMENT_ROOT . '/scripts/export.xls';
$writer = new Xls($spreadsheet);
$writer->save($filename);
// Проверяем, что файл существует и доступен для чтения
if (file_exists($filename) && is_readable($filename)) {
echo "File exists and is readable: $filename\n";
// Отправляем файл по email
$arEventFields = array(
"EMAIL_TO" => "майл",
"SUBJECT" => "Exported Data",
"MESSAGE" => "Письмо."
);
CEvent::SendImmediate("EXPORTLIN", Array("s1"), $arEventFields, "N", "", array($filename));
} else {
echo "File does not exist or is not readable: $filename\n";
}
// Удаление временного файла убрано
?>
<?php
if (PHP_SAPI !== 'cli') die('console mode only');
$DOCUMENT_ROOT = str_replace('/scripts/exportlinkoml.php','',__FILE__);
if(empty($_SERVER["DOCUMENT_ROOT"])) $_SERVER["DOCUMENT_ROOT"] = $DOCUMENT_ROOT;
require($DOCUMENT_ROOT."/bitrix/modules/main/include/prolog_before.php");
define("NO_KEEP_STATISTIC", true);
define("NOT_CHECK_PERMISSIONS", true);
set_time_limit(0);
ini_set('max_execution_time', '3600');
ini_set('memory_limit', '512M');
\Bitrix\Main\Loader::includeModule('catalog');
$iblockIds = [48, 49];
$elements = \Bitrix\Catalog\ProductTable::getList([
'select' => ['ELEMENT_ID' => 'IBLOCK_ELEMENT.ID', 'ELEMENT_NAME' => 'IBLOCK_ELEMENT.NAME', 'QUANTITY'],
'filter' => ['IBLOCK_ELEMENT.IBLOCK_ID' => $iblockIds, '>QUANTITY' => 0]
])->fetchAll();
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xls;
// Создаем новый объект Spreadsheet
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
// Устанавливаем заголовки столбцов
$sheet->setCellValue('A1', 'ID');
$sheet->setCellValue('B1', 'Name');
$sheet->setCellValue('C1', 'Quantity');
// Заполняем данные
$row = 2;
foreach ($elements as $element) {
$sheet->setCellValue('A' . $row, $element['ELEMENT_ID']);
$sheet->setCellValue('B' . $row, $element['ELEMENT_NAME']);
$sheet->setCellValue('C' . $row, $element['QUANTITY']);
$row++;
}
// Сохраняем файл в формате Excel в папке /scripts/
$filename = $DOCUMENT_ROOT . '/scripts/export.xls';
$writer = new Xls($spreadsheet);
$writer->save($filename);
// Проверяем, что файл существует и доступен для чтения
if (file_exists($filename) && is_readable($filename)) {
echo "File exists and is readable: $filename\n";
// Отправляем файл по email
$arEventFields = array(
"EMAIL_TO" => "майл",
"SUBJECT" => "Exported Data",
"MESSAGE" => "Письмо."
);
CEvent::SendImmediate("EXPORTLIN", Array("s1"), $arEventFields, "N", "", array($filename));
} else {
echo "File does not exist or is not readable: $filename\n";
}
// Удаление временного файла убрано
?>
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.