| | |
| | | +-----------------------------------------------------------------------+ |
| | | | program/steps/mail/sendmail.inc | |
| | | | | |
| | | | This file is part of the RoundCube Webmail client | |
| | | | Copyright (C) 2005-2010, RoundCube Dev. - Switzerland | |
| | | | This file is part of the Roundcube Webmail client | |
| | | | Copyright (C) 2005-2010, Roundcube Dev. - Switzerland | |
| | | | Licensed under the GNU GPL | |
| | | | | |
| | | | PURPOSE: | |
| | |
| | | if (strlen($_POST['_draft_saveid']) > 3) |
| | | $olddraftmessageid = get_input_value('_draft_saveid', RCUBE_INPUT_POST); |
| | | |
| | | $message_id = sprintf('<%s@%s>', md5(uniqid('rcmail'.mt_rand(),true)), $RCMAIL->config->mail_domain($_SESSION['imap_host'])); |
| | | $message_id = rcmail_gen_message_id(); |
| | | |
| | | // set default charset |
| | | $input_charset = $OUTPUT->get_charset(); |
| | |
| | | $headers['Received'] = $http_header; |
| | | } |
| | | |
| | | $headers['Date'] = date('r'); |
| | | $headers['Date'] = rcmail_user_date(); |
| | | $headers['From'] = rcube_charset_convert($identity_arr['string'], RCMAIL_CHARSET, $message_charset); |
| | | $headers['To'] = $mailto; |
| | | |
| | |
| | | $headers['User-Agent'] = $CONFIG['useragent']; |
| | | |
| | | // exec hook for header checking and manipulation |
| | | $data = $RCMAIL->plugins->exec_hook('outgoing_message_headers', array('headers' => $headers)); |
| | | $data = $RCMAIL->plugins->exec_hook('message_outgoing_headers', array('headers' => $headers)); |
| | | |
| | | // sending aborted by plugin |
| | | if ($data['abort'] && !$savedraft) { |
| | |
| | | // the HTML part and the plain-text part |
| | | |
| | | if ($isHtml) { |
| | | $plugin = $RCMAIL->plugins->exec_hook('outgoing_message_body', |
| | | $plugin = $RCMAIL->plugins->exec_hook('message_outgoing_body', |
| | | array('body' => $message_body, 'type' => 'html', 'message' => $MAIL_MIME)); |
| | | |
| | | $MAIL_MIME->setHTMLBody($plugin['body']); |
| | |
| | | $plainTextPart = preg_replace('/\r?\n/', "\r\n", $plainTextPart); |
| | | } |
| | | |
| | | $plugin = $RCMAIL->plugins->exec_hook('outgoing_message_body', |
| | | $plugin = $RCMAIL->plugins->exec_hook('message_outgoing_body', |
| | | array('body' => $plainTextPart, 'type' => 'alternative', 'message' => $MAIL_MIME)); |
| | | |
| | | $MAIL_MIME->setTXTBody($plugin['body']); |
| | |
| | | $message_body = rcmail_fix_emoticon_paths($MAIL_MIME); |
| | | } |
| | | else { |
| | | $plugin = $RCMAIL->plugins->exec_hook('outgoing_message_body', |
| | | $plugin = $RCMAIL->plugins->exec_hook('message_outgoing_body', |
| | | array('body' => $message_body, 'type' => 'plain', 'message' => $MAIL_MIME)); |
| | | |
| | | $message_body = $plugin['body']; |
| | | |
| | | // compose format=flowed content if enabled and not a reply message |
| | | if (empty($_SESSION['compose']['reply_msgid']) && ($flowed = $RCMAIL->config->get('send_format_flowed', true))) |
| | | $message_body = rcube_message::format_flowed($message_body, $LINE_LENGTH); |
| | | // compose format=flowed content if enabled |
| | | if ($flowed = $RCMAIL->config->get('send_format_flowed', true)) |
| | | $message_body = rcube_message::format_flowed($message_body, min($LINE_LENGTH+2, 79)); |
| | | else |
| | | $message_body = rc_wordwrap($message_body, $LINE_LENGTH, "\r\n"); |
| | | |
| | |
| | | { |
| | | foreach ($_SESSION['compose']['attachments'] as $id => $attachment) { |
| | | // This hook retrieves the attachment contents from the file storage backend |
| | | $attachment = $RCMAIL->plugins->exec_hook('get_attachment', $attachment); |
| | | $attachment = $RCMAIL->plugins->exec_hook('attachment_get', $attachment); |
| | | |
| | | $dispurl = '/\ssrc\s*=\s*[\'"]*\S+display-attachment\S+file=rcmfile' . preg_quote($attachment['id']) . '[\s\'"]*/'; |
| | | $message_body = $MAIL_MIME->getHTMLBody(); |
| | |
| | | $OUTPUT->send('iframe'); |
| | | } |
| | | |
| | | ?> |
| | | |