The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"FreePBX отправка отчётов CDR на почту."
Отправлено gor7740, 27-Фев-20 09:59 
> Отправка отчета в теле письма:
>
echo "select src, duration, calldate, billsec, disposition from cdr where calldate 
> >= '2020-02-20 12:00:00' and calldate <= '2020-02-20 12:10:00' and length(src) >
> 3;" | mysql asteriskcdrdb | mutt -s "Report" user@example.com

> Отправка отчета во вложении:
>
echo "select src, duration, calldate, billsec, disposition from cdr where calldate 
> >= '2020-02-20 12:00:00' and calldate <= '2020-02-20 12:10:00' and length(src) >
> 3;" | mysql asteriskcdrdb > report.txt; mutt -s "Report" -a report.txt
> user@example.com

Спасибо огромное! Очень удобно.
Я начал смотреть формирование таблицы через PHP:

<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
$hostname = "localhost";  //адрес хоста. Скрипт мы будем запускать на той же машине, на которой находится БД asteriskcdrdb;
//$username = "ПользовательSQL";
// $password = "ПарольSQL";
$dbName = "asteriskcdrdb"; //база данных, в которой хранятся необходимые нам данные
$today = date('y-m-d'); // сегодняшняя дата в формате 2020-02-25

$counter = 1; // счетчик

mysql_connect($hostname) OR DIE("Не могу создать соединение ");  // соединиться к БД

mysql_select_db($dbName) or die(mysql_error()); //выбрать базу данных. Если произойдет ошибка - вывести ее

$headers = "From: CDRPBX <почта@отКого>";
/*
$headers  = "Content-type: text/html; charset=windows-1251 \r\n"; //заголовок для письма
$headers .= "From: CDRPBX <почта@отКого>\r\n";

$headers .= "Reply-To: почта@комуПисать\r\n";
*/
$query = "SELECT  `dst` ,  `src` ,  `duration` ,  `dstchannel` ,  `calldate` ,  `disposition` FROM  `cdr` WHERE `calldate` >='$today 00:00:00' AND `calldate` <='$today 23:59:59' AND LENGTH(  `src` ) >3 AND `dst` = '469';"  ;
//$query = "SELECT `dst` , `src` , `duration` , `dstchannel` , `calldate` , `disposition` FROM  `cdr` WHERE `dst` = '469' AND LENGTH(  `src` ) >3 AND `calldate` >='$today 00:00:00' AND `calldate` <='$today 23:59:59';"  ;
$res=mysql_query($query) or die(mysql_error()); // Выполнить запрос. Если произойдет ошибка - вывести ее.
$number = mysql_num_rows($res); // Как много нашлось строк

//формируем шапку нашей таблицы со значениями
$mes .= '
table style="max-width: 575px;border-bottom:none; margin: 0 auto;border-spacing: inherit;">
thead>
tr style="border-bottom: 2px solid #05477c;">
th style="padding:10px; color: #fff; max-width: 150px;background:#05477c;">Порядковый номер</th>
th style="padding:10px; color: #fff; max-width: 150px;background:#05477c;">Дата</th>
th style="padding:10px; color: #fff; max-width: 100px;background:#05477c;">От кого</th>
th style="padding:10px; color: #fff; max-width: 45px;background:#05477c;">Кому</th>
th style="padding:10px; color: #fff; max-width: 45px;background:#05477c;">Статус звонка</th>
/tr>
/thead>';
//перебираем значения ассоциативного массива.  Число элементов данного массива равно числу строк на выходе sql запроса
  while ($row=mysql_fetch_array($res)) { $mes .= '
tbody>
tr style="width: 100px;">
td style="padding:10px;   border-bottom: 1px solid #eee; text-align:center;">'.$counter.'</td>
td style="padding:10px;   border-bottom: 1px solid #eee; text-align:center;min-width: 100px;">'. $row['calldate'].'</td>
td style="padding:10px;   border-bottom: 1px solid #eee; text-align:center;min-width: 100px;">'. $row['src'].'</td>
td style="padding:10px;  border-bottom: 1px solid #eee; text-align:center;">'.$row['dst'].'</td>
td style="padding:10px;  text-align:center;  border-bottom: 1px solid #eee; min-width: 120px; ">'.$row['disposition'].'</td>
/tr>';    
$counter = $counter + 1;
  }
//Теперь, мы храним в переменной $mes html таблицу, которая готова к отправке на почту.
$to = "<почта@комуОтчёт>";
$subject = 'OtchetCDRPBX'; // тема письма
$msg = "Все входящие за $today $mes\r\n";
mail($to, $subject, $msg, $headers);
?>

Но его надо доработать. Ищу ошибки.


Это позволит в дальнейшем выводить общее время вызовов - что очень важно.

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру