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']); }
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']); } } }