summaryrefslogtreecommitdiff
path: root/program/steps/mail/sendmail.inc
diff options
context:
space:
mode:
authoralecpl <alec@alec.pl>2010-05-29 17:01:15 +0000
committeralecpl <alec@alec.pl>2010-05-29 17:01:15 +0000
commitac8edbed3542fb62cf23b49a0dfd6f4692898be5 (patch)
tree44a58abedc25265ec4abc6107d4ae6eab2bc2f73 /program/steps/mail/sendmail.inc
parentfc1b7226b4b0e0226e9a176d39e2dc94c6cddc1a (diff)
- Fix use RFC-compliant line-delimiter when saving messages on IMAP (#1486712)
Diffstat (limited to 'program/steps/mail/sendmail.inc')
-rw-r--r--program/steps/mail/sendmail.inc24
1 files changed, 18 insertions, 6 deletions
diff --git a/program/steps/mail/sendmail.inc b/program/steps/mail/sendmail.inc
index 4229e7d3b..3c32530a4 100644
--- a/program/steps/mail/sendmail.inc
+++ b/program/steps/mail/sendmail.inc
@@ -249,7 +249,7 @@ $headers = array();
// if configured, the Received headers goes to top, for good measure
if ($CONFIG['http_received_header'])
{
- $nldlm = $RCMAIL->config->header_delimiter() . "\t";
+ $nldlm = "\r\n\t";
// FROM/VIA
$http_header = 'from ';
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
@@ -398,7 +398,7 @@ $LINE_LENGTH = $RCMAIL->config->get('line_length', 72);
@set_time_limit(0);
// create PEAR::Mail_mime instance
-$MAIL_MIME = new Mail_mime($RCMAIL->config->header_delimiter());
+$MAIL_MIME = new Mail_mime("\r\n");
// Check if we have enough memory to handle the message in it
// It's faster than using files, so we'll do this if we only can
@@ -419,7 +419,9 @@ if (is_array($_SESSION['compose']['attachments']) && $CONFIG['smtp_server']
// the HTML part and the plain-text part
if ($isHtml) {
- $plugin = $RCMAIL->plugins->exec_hook('outgoing_message_body', array('body' => $message_body, 'type' => 'html', 'message' => $MAIL_MIME));
+ $plugin = $RCMAIL->plugins->exec_hook('outgoing_message_body',
+ array('body' => $message_body, 'type' => 'html', 'message' => $MAIL_MIME));
+
$MAIL_MIME->setHTMLBody($plugin['body'] . ($footer ? "\r\n<pre>".$footer.'</pre>' : ''));
// add a plain text version of the e-mail as an alternative part.
@@ -430,7 +432,14 @@ if ($isHtml) {
// empty message body breaks attachment handling in drafts
$plainTextPart = "\r\n";
}
- $plugin = $RCMAIL->plugins->exec_hook('outgoing_message_body', array('body' => $plainTextPart, 'type' => 'alternative', 'message' => $MAIL_MIME));
+ else {
+ // make sure all line endings are CRLF (#1486712)
+ $plainTextPart = preg_replace('/\r?\n/', "\r\n", $plainTextPart);
+ }
+
+ $plugin = $RCMAIL->plugins->exec_hook('outgoing_message_body',
+ array('body' => $plainTextPart, 'type' => 'alternative', 'message' => $MAIL_MIME));
+
$MAIL_MIME->setTXTBody($plugin['body']);
// look for "emoticon" images from TinyMCE and change their src paths to
@@ -452,7 +461,10 @@ else {
// empty message body breaks attachment handling in drafts
$message_body = "\r\n";
}
- $plugin = $RCMAIL->plugins->exec_hook('outgoing_message_body', array('body' => $message_body, 'type' => 'plain', 'message' => $MAIL_MIME));
+
+ $plugin = $RCMAIL->plugins->exec_hook('outgoing_message_body',
+ array('body' => $message_body, 'type' => 'plain', 'message' => $MAIL_MIME));
+
$MAIL_MIME->setTXTBody($plugin['body'], false, true);
}
@@ -512,7 +524,7 @@ if (function_exists('mb_encode_mimeheader'))
{
mb_internal_encoding($message_charset);
$headers['Subject'] = mb_encode_mimeheader($headers['Subject'],
- $message_charset, 'Q', $RCMAIL->config->header_delimiter(), 8);
+ $message_charset, 'Q', "\r\n", 8);
mb_internal_encoding(RCMAIL_CHARSET);
}