浏览代码

[Web] More mailq fixes

andryyy 6 年之前
父节点
当前提交
70a914a98c
共有 1 个文件被更改,包括 12 次插入9 次删除
  1. 12 9
      data/web/inc/functions.mailq.inc.php

+ 12 - 9
data/web/inc/functions.mailq.inc.php

@@ -37,7 +37,6 @@ function mailq($_action, $_data = null) {
   switch ($_action) {
     case 'get':
       $mailq_lines = docker('post', 'postfix-mailcow', 'exec', array('cmd' => 'mailq', 'task' => 'list'));
-      $mailq_lines .= '{"queue_name":"hold","queue_id":"6004D1021DE","arrival_time":1540195064,"message_size":269,"sender":"watchdog@invalid","recipients":[{"address":"test@example.com","delay_reason":"connect to 123.0.0.1[123.0.0.1]:25: Connection refused"},{"address":"test@example.com","delay_reason":"connect to 123.0.0.1[123.0.0.1]:25: Connection refused"}]}';
       $lines = 0;
       // Hard limit to 10000 items
       foreach (preg_split("/((\r?\n)|(\r\n?))/", $mailq_lines) as $mailq_item) if ($lines++ < 10000) {
@@ -45,17 +44,21 @@ function mailq($_action, $_data = null) {
           continue;
         }
         $mq_line = json_decode($mailq_item, true);
-        $rcpts = array();
-        foreach ($mq_line['recipients'] as $rcpt) {
-          if (isset($rcpt['delay_reason'])) {
-            $rcpts[] = $rcpt['address'] . ' (' . $rcpt['delay_reason'] . ')';
+        if ($mq_line !== NULL) {
+          $rcpts = array();
+          foreach ($mq_line['recipients'] as $rcpt) {
+            if (isset($rcpt['delay_reason'])) {
+              $rcpts[] = $rcpt['address'] . ' (' . $rcpt['delay_reason'] . ')';
+            }
+            else {
+              $rcpts[] = $rcpt['address'];
+            }
           }
-          else {
-            $rcpts[] = $rcpt['address'];
+          if (!empty($rcpts)) {
+            $mq_line['recipients'] = $rcpts;
           }
+          $line[] = $mq_line;
         }
-        $mq_line['recipients'] = $rcpts;
-        $line[] = $mq_line;
       }
       if (!isset($line) || empty($line)) {
         return '{}';