summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Machniak <alec@alec.pl>2013-03-02 16:13:08 +0100
committerAleksander Machniak <alec@alec.pl>2013-03-02 16:13:08 +0100
commitee89c6dff6a309bd6d024a725eb24d79b4ac1236 (patch)
treecb31685cf2c29d8501cf40f60f5ad286a88196bb
parent588a07e41dbfa14edcef645c2deb7c041b6b867c (diff)
Display notice that message is encrypted also for application/pkcs7-mime messages (#1488526)
-rw-r--r--program/lib/Roundcube/rcube_message.php11
-rw-r--r--program/steps/mail/func.inc4
2 files changed, 13 insertions, 2 deletions
diff --git a/program/lib/Roundcube/rcube_message.php b/program/lib/Roundcube/rcube_message.php
index e0c3e3475..dc7080746 100644
--- a/program/lib/Roundcube/rcube_message.php
+++ b/program/lib/Roundcube/rcube_message.php
@@ -468,6 +468,17 @@ class rcube_message
$this->parts[] = $p;
}
+ // this is an S/MIME ecrypted message -> create a plaintext body with the according message
+ else if ($mimetype == 'application/pkcs7-mime') {
+ $p = new stdClass;
+ $p->type = 'content';
+ $p->ctype_primary = 'text';
+ $p->ctype_secondary = 'plain';
+ $p->mimetype = 'text/plain';
+ $p->realtype = 'application/pkcs7-mime';
+
+ $this->parts[] = $p;
+ }
// message contains multiple parts
else if (is_array($structure->parts) && !empty($structure->parts)) {
// iterate over parts
diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc
index 36ac1aa2b..4a3476320 100644
--- a/program/steps/mail/func.inc
+++ b/program/steps/mail/func.inc
@@ -1083,9 +1083,9 @@ function rcmail_message_body($attrib)
$out .= html::div('message-partheaders', rcmail_message_headers(sizeof($header_attrib) ? $header_attrib : null, $part->headers));
}
else if ($part->type == 'content') {
- // unsapported
+ // unsupported (e.g. encrypted)
if ($part->realtype) {
- if ($part->realtype == 'multipart/encrypted') {
+ if ($part->realtype == 'multipart/encrypted' || $part->realtype == 'application/pkcs7-mime') {
$out .= html::span('part-notice', rcube_label('encryptedmessage'));
}
continue;