Domanda

C'è uno script di reporting coda di posta pera che costruisce bei diagrammi e grafici dal database MQ? Ho MQ installato su un processo di cron e voglio legare qualche segnalazione nella mia console di amministrazione.

È stato utile?

Soluzione

Non 'nativo', ma è possibile utilizzare il nuovo supporto di richiamata nella versione 1.2.3 per popolare una tabella di log nel database e da quel generare i rapporti. La funzione di callback viene chiamato prima la voce corrispondente viene eliminato dalla tabella mail_queue nel database in modo, se necessario, si potrebbe aggiungere campi aggiuntivi ad esso per l'inserimento nel registro / tabella del rapporto.

È necessario utilizzare versioni più recenti della corrispondenza e dei pacchi Net_SMTP PEAR per essere in grado di recuperare l'id ESMTP e dettagli saluto se ne avete bisogno per i vostri rapporti. Inoltre, se si vuole decodificare il corpo dell'e-mail e negozio che per il report è necessario installare il pacchetto PEAR Mail_mimeDecode.

Fornire il nome della funzione di callback in questo modo:

$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,...);
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top