是否有梨邮件队列报告脚本,可以从MQ数据库构建漂亮的图表和图形?我在一个cron作业上设置了MQ,我想将一些报告绑定到我的管理控制台。
答案 0 :(得分:2)
不是“原生”,但您可以使用1.2.3版中的新回调支持来填充数据库中的日志表,并从中生成报告。在从数据库的mail_queue表中删除相关条目之前调用回调函数,因此如有必要,可以向其添加额外的字段以插入到日志/报告表中。
如果您需要报告,则需要使用最新版本的Mail和Net_SMTP PEAR包来检索esmtp ID和问候详细信息。 此外,如果您要解码电子邮件的正文并存储该报告,则需要安装Mail_mimeDecode PEAR包。
提供回调函数的名称,如下所示:
$dn = $mail_queue->sendMailsInQueue(
MAX_AMOUNT_MAILS,
MAILQUEUE_START,
MAILQUEUE_MAX_RETRY,
"callback_fn");
function callback_fn($args) {
$row = get_mail_queue_row($args['id']);
$headers = unserialize($row['headers']);
$subject = $headers['Subject'];
$body = unserialize($row['body']);
$mh = '';
foreach($headers as $key=>$value) {
$mh .= "$key:$value\n";
}
$mail = $mh . "\n" . $body;
$decoder = new Mail_mimeDecode($mail);
$decoded = $decoder->decode(array(
'include_bodies' => TRUE,
'decode_bodies' => TRUE,
'decode_headers' => TRUE,
));
$body = $decoded->body;
if (isset($args['greeting'])) {
$greeting = $args['greeting'];
$greets = explode(" ", $greeting);
$detail = "esmtp id: {$args['queued_as']}; server: {$greets[0]}";
} else {
$detail = "esmtp id: {$args['queued_as']}; server: localhost";
}
insert_to_log($detail, $subject,...);
}