function hasMailAccounts(){ if (Plugins::instance()->isActivePlugin('mail')) { if(is_null($this->mail_accounts)) $this->mail_accounts = MailAccounts::getMailAccountsByUser(logged_user()); return is_array($this->mail_accounts) && count($this->mail_accounts) > 0; } return false; }
static function prepareTrashAndArchivedConditions($trashed, $archived) { $trashed_cond = "`o`.`trashed_on` " . ($trashed ? ">" : "=") . " " . DB::escape(EMPTY_DATETIME); if ($trashed) { $archived_cond = ""; } else { $archived_cond = "AND `o`.`archived_on` " . ($archived ? ">" : "=") . " " . DB::escape(EMPTY_DATETIME); } if ($trashed && Plugins::instance()->isActivePlugin('mail')) { $mail_accounts = MailAccounts::getMailAccountsByUser(logged_user()); $mail_account_ids = array(); foreach ($mail_accounts as $account) { $mail_account_ids[] = $account->getId(); } $mcot_id = MailContents::instance()->getObjectTypeId(); if (empty($mail_account_ids)) { $trashed_cond .= " AND IF(o.object_type_id={$mcot_id}, 0, 1)"; } else { $trashed_cond .= " AND IF(o.object_type_id={$mcot_id}, NOT (SELECT mcx.is_deleted FROM " . TABLE_PREFIX . "mail_contents mcx WHERE mcx.object_id=o.id) AND EXISTS (SELECT mct.object_id FROM " . TABLE_PREFIX . "mail_contents mct WHERE mct.object_id=o.id AND mct.account_id IN(" . implode(',', $mail_account_ids) . ")), 1)"; } } return array($trashed_cond, $archived_cond); }
/** * Edit email * * @param void * @return null */ function edit_mail() { if (logged_user()->isGuest()) { flash_error(lang('no access permissions')); ajx_current("empty"); return; } $this->setTemplate('add_mail'); if (array_var($_GET, 'id', '') == '') { flash_error('Invalid parameter.'); ajx_current("empty"); } $original_mail = MailContents::findById(get_id('id', $_GET)); if (!$original_mail) { flash_error('Invalid parameter.'); ajx_current("empty"); } $mail_accounts = MailAccounts::getMailAccountsByUser(logged_user()); if (count($mail_accounts) < 1) { flash_error(lang('no mail accounts set')); ajx_current("empty"); return; } $mail_data = array_var($_POST, 'mail', null); if (!is_array($mail_data)) { $body = $original_mail->getBodyHtml() == '' ? $original_mail->getBodyPlain() : $original_mail->getBodyHtml(); //Attachs $attachs = array(); if ($original_mail->getHasAttachments()) { $attachments = self::readAttachmentsFromFileSystem($original_mail, $att_version); foreach ($attachments as $att) { $fName = $att["name"]; $fileType = $att["type"]; $fid = gen_id(); $attachs[] = "FwdMailAttach:{$fName}:{$fileType}:{$fid}"; if ($att_version >= 2) { @copy($att['path'], ROOT . "/tmp/" . logged_user()->getId() . "_" . $original_mail->getAccountId() . "_FwdMailAttach_{$fid}"); } else { file_put_contents(ROOT . "/tmp/" . logged_user()->getId() . "_" . $original_mail->getAccountId() . "_FwdMailAttach_{$fid}", $att['data']); } } } $mail_data = array('to' => $original_mail->getTo(), 'cc' => $original_mail->getCc(), 'bcc' => $original_mail->getBcc(), 'subject' => $original_mail->getSubject(), 'body' => $body, 'type' => $original_mail->getBodyHtml() != '' ? 'html' : 'plain', 'account_id' => $original_mail->getAccountId(), 'conversation_id' => $original_mail->getConversationId(), 'in_reply_to_id' => $original_mail->getMessageId(), 'original_id' => $original_mail->getId(), 'last_mail_in_conversation' => MailContents::getLastMailIdInConversation($original_mail->getConversationId(), true), 'id' => $original_mail->getId(), 'draft_edit' => 1, 'attachs' => $attachs); // array } // if tpl_assign('mail', $original_mail); tpl_assign('mail_data', $mail_data); tpl_assign('mail_accounts', $mail_accounts); }
function hasMailAccounts() { if (is_null($this->mail_accounts)) { $this->mail_accounts = MailAccounts::getMailAccountsByUser(logged_user()); } return is_array($this->mail_accounts) && count($this->mail_accounts) > 0; }
function mail_accounts() { if (!can_manage_security(logged_user())) { flash_error(lang('no access permissions')); ajx_current("empty"); return; } $my_accounts = MailAccounts::getMailAccountsByUser(logged_user()); $all_accounts = MailAccounts::findAll(); tpl_assign('my_accounts', $my_accounts); tpl_assign('all_accounts', $all_accounts); }