| | |
| | | define('RCUBE_COMPOSE_REPLY', 0x0106); |
| | | define('RCUBE_COMPOSE_FORWARD', 0x0107); |
| | | define('RCUBE_COMPOSE_DRAFT', 0x0108); |
| | | define('RCUBE_COMPOSE_EDIT', 0x0109); |
| | | |
| | | $MESSAGE_FORM = NULL; |
| | | $MESSAGE = NULL; |
| | |
| | | $compose_mode = RCUBE_COMPOSE_REPLY; |
| | | else if ($msg_uid = $_SESSION['compose']['param']['_forward_uid']) |
| | | $compose_mode = RCUBE_COMPOSE_FORWARD; |
| | | else if ($msg_uid = $_SESSION['compose']['param']['_uid']) |
| | | $compose_mode = RCUBE_COMPOSE_EDIT; |
| | | else if ($msg_uid = $_SESSION['compose']['param']['_draft_uid']) { |
| | | $RCMAIL->imap->set_mailbox($CONFIG['drafts_mbox']); |
| | | $compose_mode = RCUBE_COMPOSE_DRAFT; |
| | |
| | | if (!empty($msg_uid)) |
| | | { |
| | | // similar as in program/steps/mail/show.inc |
| | | // re-set 'prefer_html' to have possibility to use html part for compose |
| | | $CONFIG['prefer_html'] = $CONFIG['htmleditor']; |
| | | $MESSAGE = new rcube_message($msg_uid); |
| | | |
| | | if (!empty($MESSAGE->headers->charset)) |
| | |
| | | $fvalue = get_input_value($fname, RCUBE_INPUT_POST, TRUE); |
| | | else if ($fname && !$fvalue && !empty($_SESSION['compose']['param'][$fname])) |
| | | $fvalue = $_SESSION['compose']['param'][$fname]; |
| | | |
| | | else if ($header && $compose_mode == RCUBE_COMPOSE_REPLY) |
| | | { |
| | | // get recipent address(es) out of the message headers |
| | |
| | | } |
| | | } |
| | | } |
| | | else if ($header && $compose_mode == RCUBE_COMPOSE_DRAFT) |
| | | else if ($header && in_array($compose_mode, array(RCUBE_COMPOSE_DRAFT, RCUBE_COMPOSE_EDIT))) |
| | | { |
| | | // get drafted headers |
| | | if ($header=='to' && !empty($MESSAGE->headers->to)) |
| | |
| | | } |
| | | |
| | | // get this user's identities |
| | | $sql_result = $USER->list_identities(); |
| | | $user_identities = $USER->list_identities(); |
| | | |
| | | if ($DB->num_rows($sql_result)) |
| | | if (count($user_identities)) |
| | | { |
| | | $from_id = 0; |
| | | $a_signatures = array(); |
| | |
| | | $field_attrib['onchange'] = JS_OBJECT_NAME.".change_identity(this)"; |
| | | $select_from = new html_select($field_attrib); |
| | | |
| | | while ($sql_arr = $DB->fetch_assoc($sql_result)) |
| | | foreach ($user_identities as $sql_arr) |
| | | { |
| | | $identity_id = $sql_arr['identity_id']; |
| | | $select_from->add(format_email_recipient($sql_arr['email'], $sql_arr['name']), $identity_id); |
| | |
| | | else if ($compose_mode == RCUBE_COMPOSE_FORWARD) |
| | | $body = rcmail_create_forward_body($body, $isHtml); |
| | | // load draft message body |
| | | else if ($compose_mode == RCUBE_COMPOSE_DRAFT) |
| | | else if ($compose_mode == RCUBE_COMPOSE_DRAFT || $compose_mode == RCUBE_COMPOSE_EDIT) |
| | | $body = rcmail_create_draft_body($body, $isHtml); |
| | | } |
| | | else if (!empty($_SESSION['compose']['param']['_body'])) |
| | |
| | | "<tr><th align=\"right\" nowrap=\"nowrap\" valign=\"baseline\">To: </th><td>%s</td></tr>", |
| | | Q($MESSAGE->subject), |
| | | Q($MESSAGE->headers->date), |
| | | htmlspecialchars(Q($MESSAGE->get_header('from'), 'replace'), ENT_COMPAT, $OUTPUT->get_charset(), true), |
| | | htmlspecialchars(Q($MESSAGE->get_header('to'), 'replace'), ENT_COMPAT, $OUTPUT->get_charset(), true)); |
| | | htmlspecialchars(Q($MESSAGE->get_header('from'), 'replace'), ENT_COMPAT, $OUTPUT->get_charset()), |
| | | htmlspecialchars(Q($MESSAGE->get_header('to'), 'replace'), ENT_COMPAT, $OUTPUT->get_charset())); |
| | | |
| | | if ($MESSAGE->headers->replyto && $MESSAGE->headers->replyto != $MESSAGE->headers->from) |
| | | $prefix .= sprintf("<tr><th align=\"right\" nowrap=\"nowrap\" valign=\"baseline\">Reply-To: </th><td>%s</td></tr>", |
| | | htmlspecialchars(Q($MESSAGE->get_header('replyto'), 'replace'), ENT_COMPAT, $OUTPUT->get_charset(), true)); |
| | | htmlspecialchars(Q($MESSAGE->get_header('replyto'), 'replace'), ENT_COMPAT, $OUTPUT->get_charset())); |
| | | |
| | | $prefix .= "</tbody></table><br>"; |
| | | } |
| | |
| | | $cid_map = array(); |
| | | foreach ((array)$message->mime_parts as $pid => $part) |
| | | { |
| | | if (($part->ctype_primary != 'message' || !$bodyIsHtml) && |
| | | ($part->disposition=='attachment' || $part->disposition=='inline' || $part->headers['content-id'] |
| | | || (empty($part->disposition) && $part->filename))) |
| | | if (($part->ctype_primary != 'message' || !$bodyIsHtml) && $part->filename && |
| | | ($part->disposition=='attachment' || ($part->disposition=='inline' && $bodyIsHtml) || (empty($part->disposition)))) |
| | | { |
| | | if ($attachment = rcmail_save_attachment($message, $pid)) { |
| | | $_SESSION['compose']['attachments'][$attachment['id']] = $attachment; |
| | |
| | | $subject = 'Fwd: '.$MESSAGE->subject; |
| | | } |
| | | // creeate a draft-subject |
| | | else if ($compose_mode == RCUBE_COMPOSE_DRAFT) { |
| | | else if ($compose_mode == RCUBE_COMPOSE_DRAFT || $compose_mode == RCUBE_COMPOSE_EDIT) { |
| | | $subject = $MESSAGE->subject; |
| | | } |
| | | else if (!empty($_SESSION['compose']['param']['_subject'])) { |
| | |
| | | |
| | | if (is_array($_SESSION['compose']['attachments'])) |
| | | { |
| | | if ($attrib['deleteicon']) |
| | | if ($attrib['deleteicon']) { |
| | | $button = html::img(array( |
| | | 'src' => $CONFIG['skin_path'] . $attrib['deleteicon'], |
| | | 'alt' => rcube_label('delete') |
| | | )); |
| | | )); |
| | | } |
| | | else |
| | | $button = Q(rcube_label('delete')); |
| | | |
| | |
| | | $button) . Q($a_prop['name'])); |
| | | } |
| | | } |
| | | |
| | | if ($attrib['deleteicon']) |
| | | $_SESSION['compose']['deleteicon'] = $CONFIG['skin_path'] . $attrib['deleteicon']; |
| | | |
| | | $OUTPUT->add_gui_object('attachmentlist', $attrib['id']); |
| | | |
| | |
| | | $checkbox = new html_checkbox($attrib); |
| | | |
| | | $out = $form_start ? "$form_start\n" : ''; |
| | | $out .= $checkbox->show( |
| | | $compose_mode == RCUBE_COMPOSE_DRAFT && $MESSAGE->headers->mdn_to ? 1 : 0); |
| | | $out .= $checkbox->show(in_array($compose_mode, array(RCUBE_COMPOSE_DRAFT, RCUBE_COMPOSE_EDIT)) |
| | | && $MESSAGE->headers->mdn_to ? 1 : 0); |
| | | $out .= $form_end ? "\n$form_end" : ''; |
| | | |
| | | return $out; |