Esempio n. 1
0
 public function reload_mails($id)
 {
     $contact = CRM_ContactsCommon::get_contact($id);
     $emails = array($contact['email']);
     $multiple = Utils_RecordBrowserCommon::get_records('rc_multiple_emails', array('record_type' => 'contact', 'record_id' => $id));
     foreach ($multiple as $multi) {
         $emails[] = $multi['email'];
     }
     $emails = array_unique($emails);
     foreach ($emails as $email) {
         $cc = Utils_RecordBrowserCommon::get_records('rc_mails', array('(~from' => '%' . $email . '%', '|~to' => '%' . $email . '%'));
         foreach ($cc as $mail) {
             if ($mail['employee'] == $id || in_array('P:' . $id, $mail['contacts'])) {
                 continue;
             }
             $mail['contacts'][] = 'P:' . $id;
             Utils_RecordBrowserCommon::update_record('rc_mails', $mail['id'], array('contacts' => $mail['contacts']));
             CRM_RoundcubeCommon::create_thread($mail['id']);
         }
     }
 }
<?php

defined("_VALID_ACCESS") || die('Direct access forbidden');
Utils_RecordBrowserCommon::register_processing_callback('rc_mails', array('CRM_RoundcubeCommon', 'submit_mail'));
$mails = Utils_RecordBrowserCommon::get_records('rc_mails', array('thread' => null));
foreach ($mails as $m) {
    if (preg_match('/\\nreferences:(.*)\\n/i', $m['headers_data'], $match)) {
        $ref = trim($match[1]);
        Utils_RecordBrowserCommon::update_record('rc_mails', $m['id'], array('references' => $ref));
    }
    if (preg_match('/\\nmessageid:(.*)\\n/i', $m['headers_data'], $match)) {
        $mid = str_replace(array('<', '>'), '', trim($match[1]));
        Utils_RecordBrowserCommon::update_record('rc_mails', $m['id'], array('message_id' => $mid));
    }
}
foreach ($mails as $m) {
    CRM_RoundcubeCommon::create_thread($m['id']);
}
Esempio n. 3
0
 public static function reload_mails($rs, $id, $email_addresses = null)
 {
     $prefix = ($rs == 'contact' ? 'P' : 'C') . ':';
     if (!$email_addresses) {
         $email_addresses = self::get_email_addresses($rs, $id);
     }
     foreach ($email_addresses as $email) {
         $cc = Utils_RecordBrowserCommon::get_records('rc_mails', array('(~from' => '%' . $email . '%', '|~to' => '%' . $email . '%'));
         foreach ($cc as $mail) {
             if ($rs == 'contact' && $mail['employee'] == $id || in_array($prefix . $id, $mail['contacts'])) {
                 continue;
             }
             if (!preg_match('/(^|[\\s,\\<\\;])' . preg_quote($email, '/') . '($|[\\s,\\>\\&])/i', $mail['from'] . ',' . $mail['to'])) {
                 continue;
             }
             $mail['contacts'][] = $prefix . $id;
             Utils_RecordBrowserCommon::update_record('rc_mails', $mail['id'], array('contacts' => $mail['contacts']));
             CRM_RoundcubeCommon::create_thread($mail['id']);
         }
     }
 }