From 1cd3762b0d7707f4dd665c00ff4d83db6172b4a7 Mon Sep 17 00:00:00 2001 From: Thomas Bruederli <thomas@roundcube.net> Date: Mon, 25 May 2015 12:51:33 -0400 Subject: [PATCH] Start integrating the Mailvelope browser extension via its API. --- program/steps/mail/func.inc | 23 ++++++++++++++++++++++- 1 files changed, 22 insertions(+), 1 deletions(-) diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc index 684cdf9..a90541d 100644 --- a/program/steps/mail/func.inc +++ b/program/steps/mail/func.inc @@ -1185,7 +1185,23 @@ // unsupported (e.g. encrypted) if ($part->realtype) { if ($part->realtype == 'multipart/encrypted' || $part->realtype == 'application/pkcs7-mime') { - $out .= html::span('part-notice', $RCMAIL->gettext('encryptedmessage')); + if (!empty($_SESSION['browser_caps']['pgpmime']) && $part->realtype == 'multipart/encrypted') { + // find the encrypted message payload part + foreach ($MESSAGE->mime_parts as $mime_id => $mpart) { + if ($mpart->mimetype == 'application/octet-stream' || !empty($mpart->filename)) { + $out .= html::span('part-notice', $RCMAIL->gettext('externalmessagedecryption')); + $OUTPUT->set_env('pgp_mime_part', $mime_id); + $OUTPUT->set_env('pgp_mime_container', '#' . $attrib['id']); + $OUTPUT->add_label('loadingdata'); + $MESSAGE->encrypted_part = $mime_id; + break; + } + } + } + + if (!$MESSAGE->encrypted_part) { + $out .= html::span('part-notice', $RCMAIL->gettext('encryptedmessage')); + } } continue; } @@ -1219,6 +1235,11 @@ rcmail_message_error($MESSAGE->uid); } + // check if the message body is PGP encrypted + if (strpos($body, 'BEGIN PGP MESSAGE') !== false) { + $OUTPUT->set_env('is_pgp_content', '#' . $attrib['id']); + } + $plugin = $RCMAIL->plugins->exec_hook('message_body_prefix', array('part' => $part, 'prefix' => '')); -- Gitblit v1.9.1