From 7dfb1fba5001299300736e6b5d95d9400575e3e7 Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Thu, 18 Sep 2008 14:59:02 -0400
Subject: [PATCH] Set the right number of arguments for setcookie()

---
 program/steps/mail/sendmail.inc |   79 +++++++++++++++++++++++----------------
 1 files changed, 47 insertions(+), 32 deletions(-)

diff --git a/program/steps/mail/sendmail.inc b/program/steps/mail/sendmail.inc
index a1b25ab..543895d 100644
--- a/program/steps/mail/sendmail.inc
+++ b/program/steps/mail/sendmail.inc
@@ -21,15 +21,37 @@
 */
 
 
-if (!isset($_SESSION['compose']['id']))
-  {
-  rcmail_overwrite_action('list');
-  return;
-  }
+// remove all scripts and act as called in frame
+$OUTPUT->reset();
+$OUTPUT->framed = TRUE;
+
+$savedraft = !empty($_POST['_draft']) ? TRUE : FALSE;
+
+/****** checks ********/
+
+if (!isset($_SESSION['compose']['id'])) {
+  raise_error(array('code' => 500, 'file' => __FILE__, 'message' => "Invalid compose ID"), true, false);
+  console("Sendmail error", $_SESSION['compose']);
+  $OUTPUT->show_message("An internal error occured. Please try again.", 'error');
+  $OUTPUT->send('iframe');
+}
+
+if (!$savedraft && empty($_POST['_to']) && empty($_POST['_cc']) && empty($_POST['_bcc']) && empty($_POST['_subject']) && $_POST['_message']) {
+  $OUTPUT->show_message('sendingfailed', 'error');
+  $OUTPUT->send('iframe');
+}
+
+if(!$savedraft && !empty($CONFIG['sendmail_delay'])) {
+  $wait_sec = time() - intval($CONFIG['sendmail_delay']) - intval($_SESSION['last_message_time']);
+  if($wait_sec < 0)
+    {
+    $OUTPUT->show_message('senttooquickly', 'error', array('sec' => $wait_sec * -1));
+    $OUTPUT->send('iframe');
+    }
+}
 
 
 /****** message sending functions ********/
-
 
 // get identity record
 function rcmail_get_identity($id)
@@ -110,27 +132,13 @@
   $mime_message->setHTMLBody($body);
 }
 
+
+/****** compose message ********/
+
 if (strlen($_POST['_draft_saveid']) > 3)
   $olddraftmessageid = get_input_value('_draft_saveid', RCUBE_INPUT_POST);
 
 $message_id = sprintf('<%s@%s>', md5(uniqid('rcmail'.rand(),true)), $RCMAIL->config->mail_domain($_SESSION['imap_host']));
-$savedraft = !empty($_POST['_draft']) ? TRUE : FALSE;
-
-// remove all scripts and act as called in frame
-$OUTPUT->reset();
-$OUTPUT->framed = TRUE;
-
-
-/****** check submission and compose message ********/
-
-
-if (!$savedraft && empty($_POST['_to']) && empty($_POST['_cc']) && empty($_POST['_bcc']) && empty($_POST['_subject']) && $_POST['_message'])
-  {
-  $OUTPUT->show_message("sendingfailed", 'error');
-  $OUTPUT->send('iframe');
-  return;
-  }
-
 
 // set default charset
 $input_charset = $OUTPUT->get_charset();
@@ -221,15 +229,19 @@
 if (!empty($CONFIG['useragent']))
   $headers['User-Agent'] = $CONFIG['useragent'];
 
+$isHtmlVal = strtolower(get_input_value('_is_html', RCUBE_INPUT_POST));
+$isHtml = ($isHtmlVal == "1");
+
 // fetch message body
 $message_body = get_input_value('_message', RCUBE_INPUT_POST, TRUE, $message_charset);
+
+// remove signature's div ID
+if (!$savedraft && $isHtml)
+  $message_body = preg_replace('/\s*id="_rc_sig"/', '', $message_body);
 
 // append generic footer to all messages
 if (!$savedraft && !empty($CONFIG['generic_message_footer']) && ($footer = file_get_contents(realpath($CONFIG['generic_message_footer']))))
   $message_body .= "\r\n" . rcube_charset_convert($footer, 'UTF-8', $message_charset);
-
-$isHtmlVal = strtolower(get_input_value('_is_html', RCUBE_INPUT_POST));
-$isHtml = ($isHtmlVal == "1");
 
 // create extended PEAR::Mail_mime instance
 $MAIL_MIME = new rcube_mail_mime($RCMAIL->config->header_delimiter());
@@ -288,11 +300,11 @@
 
       // .eml attachments send inline
       $MAIL_MIME->addAttachment($attachment['path'],
-	$ctype, 
+        $ctype, 
         $attachment['name'], true, 
-	($ctype == 'message/rfc822' ? $transfer_encoding : 'base64'),
+        ($ctype == 'message/rfc822' ? $transfer_encoding : 'base64'),
         ($ctype == 'message/rfc822' ? 'inline' : 'attachment'),
-	$message_charset);
+        $message_charset);
     }
   }
 
@@ -340,8 +352,11 @@
     {
     $OUTPUT->show_message("sendingfailed", 'error'); 
     $OUTPUT->send('iframe');
-    return;
     }
+
+  // save message sent time
+  if (!empty($CONFIG['sendmail_delay']))
+    $_SESSION['last_message_time'] = time();
   
   // set replied/forwarded flag
   if ($_SESSION['compose']['reply_uid'])
@@ -366,9 +381,9 @@
     {
       // folder may be existing but not subscribed (#1485241)
       if (!in_array_nocase($store_target, $IMAP->list_unsubscribed()))
-	$store_folder = $IMAP->create_mailbox($store_target, TRUE);
+        $store_folder = $IMAP->create_mailbox($store_target, TRUE);
       else if ($IMAP->subscribe($store_target))
-	$store_folder = TRUE;
+        $store_folder = TRUE;
     }
   else
     $store_folder = TRUE;

--
Gitblit v1.9.1