summaryrefslogtreecommitdiff
path: root/roundcubemail/program/include/rcube_imap.php
diff options
context:
space:
mode:
authoralec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c>2010-02-09 13:10:12 +0000
committeralec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c>2010-02-09 13:10:12 +0000
commit7d6aefc45cb269b327f058bea54bf1136cf95b00 (patch)
tree95006358696d8e68263431c35f6c31eff94a8148 /roundcubemail/program/include/rcube_imap.php
parente9fdb4bae6ee01bae196782932b43caa65e8f48f (diff)
- Fix attachment excessive memory use, support messages of any size (#1484660)
git-svn-id: https://svn.roundcube.net/trunk@3261 208e9e7b-5314-0410-a742-e7e81cd9613c
Diffstat (limited to 'roundcubemail/program/include/rcube_imap.php')
-rw-r--r--roundcubemail/program/include/rcube_imap.php20
1 files changed, 15 insertions, 5 deletions
diff --git a/roundcubemail/program/include/rcube_imap.php b/roundcubemail/program/include/rcube_imap.php
index 6ab0b6a88..ecde6f958 100644
--- a/roundcubemail/program/include/rcube_imap.php
+++ b/roundcubemail/program/include/rcube_imap.php
@@ -1699,17 +1699,27 @@ class rcube_imap
/**
* Append a mail message (source) to a specific mailbox
*
- * @param string Target mailbox
- * @param string Message source
+ * @param string Target mailbox
+ * @param string The message source string or filename
+ * @param string Headers string if $message contains only the body
+ * @param boolean True if $message is a filename
+ *
* @return boolean True on success, False on error
*/
- function save_message($mbox_name, &$message)
+ function save_message($mbox_name, &$message, $headers='', $is_file=false)
{
$mailbox = $this->mod_mailbox($mbox_name);
// make sure mailbox exists
- if (($mailbox == 'INBOX') || in_array($mailbox, $this->_list_mailboxes()))
- $saved = iil_C_Append($this->conn, $mailbox, $message);
+ if (($mailbox == 'INBOX') || in_array($mailbox, $this->_list_mailboxes())) {
+ if ($is_file) {
+ $separator = rcmail::get_instance()->config->header_delimiter();
+ $saved = iil_C_AppendFromFile($this->conn, $mailbox, $message,
+ $headers, $separator.$separator);
+ }
+ else
+ $saved = iil_C_Append($this->conn, $mailbox, $message);
+ }
if ($saved)
{