armut posta kuyruğu raporu senaryo?

1 Cevap php

MQ veritabanından güzel grafikler ve çizelgeler oluşturur bir armut posta sıra raporlama senaryo var mı? Ben MQ bir cron iş kurdunuz ve benim yönetici konsolu bazı raporlama kravat istiyorum.

1 Cevap

'Doğal', ancak veritabanı ve bu raporları oluşturmak bir günlük tablo doldurmak için sürüm 1.2.3 olarak yeni geri desteğini kullanabilirsiniz olamazdı. Eğer log / rapor tabloya eklemek için ona ekstra alan ekleyebilirsiniz gerekirse böylece ilgili giriş veritabanındaki MAIL_QUEUE tablosundan silinir önce geri çağırma işlevi denir.

You'll need to use recent releases of the Mail and Net_SMTP PEAR packages to be able to retrieve the esmtp id and greeting details if you need them for your reports. Also, if you want to decode the body of the email and store that for your report you'll need to install the Mail_mimeDecode PEAR package.

Böylece gibi arama işlevinin adını sağlayın:

$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,...);
}