Birne Mail-Queue Report-Skript?
-
26-09-2019 - |
Frage
Gibt es eine Birne Mail-Queue Reporting-Skript, das hübsche Diagramme und Grafiken aus dem MQ-Datenbank aufbaut? Ich habe MQ auf einem Cron-Job einrichten, und ich möchte einige Berichte in mein Admin-Konsole binden.
Lösung
Nicht ‚nativ‘, aber man konnte die neue Rückruf Unterstützung in Version 1.2.3 verwenden, um eine Log-Tabelle in Ihrer Datenbank zu füllen und von diesem zu generieren Ihre Berichten. Die Callback-Funktion aufgerufen wird, bevor der entsprechende Eintrag aus der mail_queue Tabelle in der Datenbank gelöscht wird so ggf. Sie zusätzliche Felder für das Einfügen in die Log / Berichtstabelle hinzufügen könnte.
Sie müssen die neuesten Veröffentlichungen der Mail und Net_SMTP PEAR-Pakete verwenden, um der Lage sein, die esmtp id und Gruß Details abrufen, wenn Sie sie für Ihre Berichte benötigen. Auch wenn Sie den Körper der E-Mail und speichern zu entschlüsseln, dass für den Bericht Sie das Mail_mimeDecode PEAR-Paket installieren.
Geben Sie den Namen der Callback-Funktion wie folgt:
$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,...);
}