From 74728935122fe35ed97c40092080cc7dfd4b7052 Mon Sep 17 00:00:00 2001 From: alecpl Date: Mon, 6 Dec 2010 11:13:55 +0000 Subject: - Fix plaintext versions of HTML messages don't contain placeholders for emotions (#1485206) --- program/steps/mail/sendmail.inc | 12 ++++++++---- program/steps/utils/html2text.inc | 7 ++++++- 2 files changed, 14 insertions(+), 5 deletions(-) (limited to 'program/steps') diff --git a/program/steps/mail/sendmail.inc b/program/steps/mail/sendmail.inc index 95b490969..a796c7ba7 100644 --- a/program/steps/mail/sendmail.inc +++ b/program/steps/mail/sendmail.inc @@ -70,7 +70,7 @@ function rcmail_encrypt_header($what) function rcmail_get_identity($id) { global $USER, $OUTPUT; - + if ($sql_arr = $USER->get_identity($id)) { $out = $sql_arr; $out['mailto'] = $sql_arr['email']; @@ -100,7 +100,7 @@ function rcmail_fix_emoticon_paths(&$mime_message) // remove any null-byte characters before parsing $body = preg_replace('/\x00/', '', $body); - + $searchstr = 'program/js/tiny_mce/plugins/emotions/img/'; $offset = 0; @@ -193,6 +193,7 @@ function rcmail_email_input_format($mailto, $count=false, $check=true) return implode(', ', $result); } + /****** compose message ********/ if (strlen($_POST['_draft_saveid']) > 3) @@ -441,13 +442,16 @@ if ($isHtml) { $MAIL_MIME->setHTMLBody($plugin['body']); + // replace emoticons + $plugin['body'] = rcmail_replace_emoticons($plugin['body']); + // add a plain text version of the e-mail as an alternative part. $h2t = new html2text($plugin['body'], false, true, 0); $plainTextPart = rc_wordwrap($h2t->get_text(), $LINE_LENGTH, "\r\n"); $plainTextPart = wordwrap($plainTextPart, 998, "\r\n", true); if (!$plainTextPart) { - // empty message body breaks attachment handling in drafts - $plainTextPart = "\r\n"; + // empty message body breaks attachment handling in drafts + $plainTextPart = "\r\n"; } else { // make sure all line endings are CRLF (#1486712) diff --git a/program/steps/utils/html2text.inc b/program/steps/utils/html2text.inc index ef74ec49e..15c6a52a4 100644 --- a/program/steps/utils/html2text.inc +++ b/program/steps/utils/html2text.inc @@ -19,7 +19,12 @@ */ -$converter = new html2text($HTTP_RAW_POST_DATA); +$html = $HTTP_RAW_POST_DATA; + +// Replace emoticon images with its text representation +$html = rcmail_replace_emoticons($html); + +$converter = new html2text($html); header('Content-Type: text/plain; charset=UTF-8'); print rtrim($converter->get_text()); -- cgit v1.2.3