From 6fc32e8e526f33a386420604378490dce0d79ec5 Mon Sep 17 00:00:00 2001 From: friedPotat0 <5374007+friedPotat0@users.noreply.github.com> Date: Wed, 9 Oct 2019 20:18:21 +0200 Subject: [PATCH] Add option to download quarantine item as eml --- data/web/inc/ajax/qitem_details.php | 13 +++++++++++++ data/web/lang/lang.de.php | 1 + data/web/lang/lang.en.php | 1 + data/web/modals/quarantine.php | 2 ++ 4 files changed, 17 insertions(+) diff --git a/data/web/inc/ajax/qitem_details.php b/data/web/inc/ajax/qitem_details.php index 3c82ee6a..06feb1e7 100644 --- a/data/web/inc/ajax/qitem_details.php +++ b/data/web/inc/ajax/qitem_details.php @@ -91,6 +91,19 @@ if (!empty($_GET['id']) && ctype_alnum($_GET['id'])) { ); } } + if (isset($_GET['eml'])) { + $dl_filename = str_replace('/', '_', $data['subject']); + header('Pragma: public'); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Cache-Control: private', false); + header('Content-Type: message/rfc822'); + header('Content-Disposition: attachment; filename="'. $dl_filename . '.eml";'); + header('Content-Transfer-Encoding: binary'); + header('Content-Length: ' . strlen($mailc['msg'])); + echo $mailc['msg']; + exit; + } if (isset($_GET['att'])) { if ($_SESSION['acl']['quarantine_attachments'] == 0) { exit(json_encode('Forbidden')); diff --git a/data/web/lang/lang.de.php b/data/web/lang/lang.de.php index dadfb8de..1ba5c45e 100644 --- a/data/web/lang/lang.de.php +++ b/data/web/lang/lang.de.php @@ -777,6 +777,7 @@ $lang['quarantine']['quarantine'] = "Quarantäne"; $lang['quarantine']['qinfo'] = 'Das Quarantänesystem speichert abgelehnte Nachrichten in der Datenbank. Dem Sender wird nicht signalisiert, dass seine E-Mail zugestellt wurde.
"' . $lang['quarantine']['learn_spam_delete'] . '" lernt Nachrichten nach bayesscher Statistik als Spam und erstellt Fuzzy Hashes ausgehend von der jeweiligen Nachricht, um ähnliche Inhalte zukünftig zu unterbinden.
Der Prozess des Lernens kann abhängig vom System zeitintensiv sein.'; +$lang['quarantine']['download_eml'] = "Herunterladen (.eml)"; $lang['quarantine']['release'] = "Freigeben"; $lang['quarantine']['empty'] = 'Keine Einträge'; $lang['quarantine']['toggle_all'] = 'Alle auswählen'; diff --git a/data/web/lang/lang.en.php b/data/web/lang/lang.en.php index efdb80ee..eaa51333 100644 --- a/data/web/lang/lang.en.php +++ b/data/web/lang/lang.en.php @@ -794,6 +794,7 @@ $lang['quarantine']['learn_spam_delete'] = "Learn as spam and delete"; $lang['quarantine']['qinfo'] = 'The quarantine system will save rejected mail to the database, while the sender will not be given the impression of a delivered mail.
"' . $lang['quarantine']['learn_spam_delete'] . '" will learn a message as spam via Bayesian theorem and also calculate fuzzy hashes to deny similar messages in the future.
Please be aware that learning multiple messages can be - depending on your system - time consuming.'; +$lang['quarantine']['download_eml'] = "Download (.eml)"; $lang['quarantine']['release'] = "Release"; $lang['quarantine']['empty'] = 'No results'; $lang['quarantine']['toggle_all'] = 'Toggle all'; diff --git a/data/web/modals/quarantine.php b/data/web/modals/quarantine.php index 0d091163..98871fa3 100644 --- a/data/web/modals/quarantine.php +++ b/data/web/modals/quarantine.php @@ -46,6 +46,8 @@ if (!isset($_SESSION['mailcow_cc_role'])) {
  • +
  • +