예제 #1
0
function mailqueue_callback($args)
{
    if (!$args) {
        echo "NOT ARGS IN CALLBACK:";
        pr($args);
        die;
        //return false;
    }
    global $container_options;
    $log = array();
    $log['args'] = $args;
    $contanier = new Mail_Queue_Container_db($container_options);
    $obj = $contanier->getMailById($args['id']);
    if (!$obj) {
        echo "NOT OBJ IN CALLBACK:";
        pr($obj);
        die;
        //return false;
    }
    $log['mailObject'] = (array) $obj;
    $headers = $obj->headers;
    $subject = $obj->headers['Subject'];
    $body = $obj->body;
    $mail_headers = '';
    foreach ($headers as $key => $value) {
        $mail_headers .= "{$key}:{$value}\n";
    }
    $mail = $mail_headers . "\n" . $body;
    $decoder = new Mail_mimeDecode($mail);
    if (!$decoder) {
        echo "NOT DECODER IN CALLBACK";
        pr($decoder);
        die;
        //return false;
    }
    $decoded = $decoder->decode(array('include_bodies' => TRUE, 'decode_bodies' => TRUE, 'decode_headers' => TRUE));
    $body = $decoded->body;
    $esmtp_id = $args['queued_as'];
    if (isset($args['greeting'])) {
        $greeting = $args['greeting'];
        $greets = explode(' ', $greeting);
        $server = $greets[0];
    } else {
        $server = 'localhost';
    }
    $log['serverResponse'] = compact('server', 'esmtp_id');
    $res = sq("update mail_queue set log = '" . serialize($log) . "' where id = " . $args['id']);
    if (!$res) {
        echo "NOT RES IN CALLBACK";
        pr($res);
        die;
        //return false;
    }
    if (CRON) {
        echo "Email ID " . $args['id'] . "\n";
        echo "Log:\n\n";
        print_r($log);
        echo "\n\n";
    }
}
예제 #2
0
<?php

require_once '_init.php';
$emailQueueId = cleanRequest('id');
if (!$emailQueueId) {
    die("REQUEST = NULL");
} else {
    $mail_queue = new Mail_Queue($container_options, $mail_options);
    $contanier = new Mail_Queue_Container_db($container_options);
    if ($contanier->getMailById($emailQueueId)) {
        $mail_queue->deleteMail($emailQueueId);
    }
    header("Location: ../index.php");
}