Esempio n. 1
0
$_SESSION['new_mail'] = 0;
//check for email
$email_module = $GO_MODULES->get_module('email');
if ($email_module && ($GO_SECURITY->has_permission($GO_SECURITY->user_id, $email_module['acl_read']) || $GO_SECURITY->has_permission($GO_SECURITY->user_id, $email_module['acl_write']))) {
    require_once $email_module['class_path'] . 'email.class.inc';
    require_once $GO_CONFIG->class_path . 'imap.class.inc';
    $imap = new imap();
    $email1 = new email();
    $email2 = new email();
    $email1->get_accounts($GO_SECURITY->user_id);
    while ($email1->next_record()) {
        if ($email1->f('auto_check') == '1') {
            $account = $email1->Record;
            if ($imap->open($account['host'], $account['type'], $account['port'], $account['username'], $GO_CRYPTO->decrypt($account['password']))) {
                if ($account['type'] == 'imap') {
                    $status = $imap->status('INBOX');
                    if ($status->unseen > 0) {
                        $_SESSION['new_mail'] += $status->unseen;
                    }
                    $email2->get_folders($email1->f('id'));
                    while ($email2->next_record()) {
                        if ($email2->f('name') != 'INBOX') {
                            $status = $imap->status($email2->f('name'));
                            if ($status->unseen > 0) {
                                $_SESSION['new_mail'] += $status->unseen;
                            }
                        }
                    }
                } else {
                    $status = $imap->status('INBOX');
                    if ($status->unseen > 0) {