MQ データベースからきれいなチャートやグラフを作成する pear メール キュー レポート スクリプトはありますか? cron ジョブで MQ をセットアップしており、レポートを管理コンソールに結び付けたいと考えています。
1 に答える
2
「ネイティブ」ではありませんが、バージョン 1.2.3 の新しいコールバック サポートを使用して、データベースにログ テーブルを入力し、そこからレポートを生成できます。コールバック関数は、関連するエントリがデータベースの mail_queue テーブルから削除される前に呼び出されるため、必要に応じてログ/レポート テーブルに挿入するフィールドを追加できます。
レポートに必要な場合は、esmtp ID とグリーティングの詳細を取得できるように、Mail および Net_SMTP PEAR パッケージの最近のリリースを使用する必要があります。また、電子メールの本文をデコードしてレポート用に保存する場合は、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,...);
}
于 2010-04-16T11:58:14.750 に答える