| | |
| | | |
| | | // reset some session parameters when changing task |
| | | if ($this->task != 'utils') { |
| | | if ($this->session && $_SESSION['task'] != $this->task) |
| | | // we reset list page when switching to another task |
| | | // but only to the main task interface - empty action (#1489076) |
| | | // this will prevent from unintentional page reset on cross-task requests |
| | | if ($this->session && $_SESSION['task'] != $this->task && empty($this->action)) |
| | | $this->session->remove('page'); |
| | | // set current task to session |
| | | $_SESSION['task'] = $this->task; |
| | |
| | | } |
| | | |
| | | if (!$contacts) { |
| | | // there's no default, just return |
| | | if ($default) { |
| | | return null; |
| | | } |
| | | |
| | | self::raise_error(array( |
| | | 'code' => 700, 'type' => 'php', |
| | | 'file' => __FILE__, 'line' => __LINE__, |
| | |
| | | } |
| | | |
| | | return $contacts; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Return identifier of the address book object |
| | | * |
| | | * @param rcube_addressbook Addressbook source object |
| | | * |
| | | * @return string Source identifier |
| | | */ |
| | | public function get_address_book_id($object) |
| | | { |
| | | foreach ($this->address_books as $index => $book) { |
| | | if ($book === $object) { |
| | | return $index; |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | |
| | | * @param object $message Reference to Mail_MIME object |
| | | * @param string $from Sender address string |
| | | * @param array $mailto Array of recipient address strings |
| | | * @param array $smtp_error SMTP error array (reference) |
| | | * @param array $error SMTP error array (reference) |
| | | * @param string $body_file Location of file with saved message body (reference), |
| | | * used when delay_file_io is enabled |
| | | * @param array $smtp_opts SMTP options (e.g. DSN request) |
| | | * @param array $options SMTP options (e.g. DSN request) |
| | | * |
| | | * @return boolean Send status. |
| | | */ |
| | | public function deliver_message(&$message, $from, $mailto, &$smtp_error, &$body_file = null, $smtp_opts = null) |
| | | public function deliver_message(&$message, $from, $mailto, &$error, &$body_file = null, $options = null) |
| | | { |
| | | $plugin = $this->plugins->exec_hook('message_before_send', array( |
| | | 'message' => $message, |
| | | 'from' => $from, |
| | | 'mailto' => $mailto, |
| | | 'options' => $options, |
| | | )); |
| | | |
| | | if ($plugin['abort']) { |
| | | return isset($plugin['result']) ? $plugin['result'] : false; |
| | | } |
| | | |
| | | $from = $plugin['from']; |
| | | $mailto = $plugin['mailto']; |
| | | $options = $plugin['options']; |
| | | $message = $plugin['message']; |
| | | $headers = $message->headers(); |
| | | |
| | | // send thru SMTP server using custom SMTP library |
| | |
| | | $this->smtp_init(true); |
| | | } |
| | | |
| | | $sent = $this->smtp->send_mail($from, $a_recipients, $smtp_headers, $msg_body, $smtp_opts); |
| | | $smtp_response = $this->smtp->get_response(); |
| | | $smtp_error = $this->smtp->get_error(); |
| | | $sent = $this->smtp->send_mail($from, $a_recipients, $smtp_headers, $msg_body, $options); |
| | | $response = $this->smtp->get_response(); |
| | | $error = $this->smtp->get_error(); |
| | | |
| | | // log error |
| | | if (!$sent) { |
| | | self::raise_error(array('code' => 800, 'type' => 'smtp', |
| | | 'line' => __LINE__, 'file' => __FILE__, |
| | | 'message' => "SMTP error: ".join("\n", $smtp_response)), TRUE, FALSE); |
| | | 'message' => "SMTP error: ".join("\n", $response)), TRUE, FALSE); |
| | | } |
| | | } |
| | | // send mail using PHP's mail() function |
| | |
| | | $subject = str_replace("\r\n", $delim, $subject); |
| | | } |
| | | |
| | | if (ini_get('safe_mode')) |
| | | if (filter_var(ini_get('safe_mode'), FILTER_VALIDATE_BOOLEAN)) |
| | | $sent = mail($to, $subject, $msg_body, $header_str); |
| | | else |
| | | $sent = mail($to, $subject, $msg_body, $header_str, "-f$from"); |
| | |
| | | $this->user->get_username(), |
| | | $_SERVER['REMOTE_ADDR'], |
| | | $mailto, |
| | | !empty($smtp_response) ? join('; ', $smtp_response) : '')); |
| | | !empty($response) ? join('; ', $response) : '')); |
| | | } |
| | | } |
| | | |
| | |
| | | public function upload_init() |
| | | { |
| | | // Enable upload progress bar |
| | | if (($seconds = $this->config->get('upload_progress')) && ini_get('apc.rfc1867')) { |
| | | $rfc1867 = filter_var(ini_get('apc.rfc1867'), FILTER_VALIDATE_BOOLEAN); |
| | | if ($rfc1867 && ($seconds = $this->config->get('upload_progress'))) { |
| | | if ($field_name = ini_get('apc.rfc1867_name')) { |
| | | $this->output->set_env('upload_progress_name', $field_name); |
| | | $this->output->set_env('upload_progress_time', (int) $seconds); |