From 6d68d1e350d201dd12f65e0cb4bc8388c09822e4 Mon Sep 17 00:00:00 2001 From: Aleksandr Bogdanov Date: Fri, 21 Jan 2022 11:40:14 +0100 Subject: [PATCH] go depth-first while searching for a matching content-type in multi-level multipart emails (e.g html+inline images as multipart/related + attached files) --- assets/js/controllers.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/assets/js/controllers.js b/assets/js/controllers.js index 846c413..176fa38 100644 --- a/assets/js/controllers.js +++ b/assets/js/controllers.js @@ -473,14 +473,15 @@ mailhogApp.controller('MailCtrl', function ($scope, $http, $sce, $timeout) { for(var p in part.MIME.Parts) { if("Content-Type" in part.MIME.Parts[p].Headers) { if(part.MIME.Parts[p].Headers["Content-Type"].length > 0) { - if(part.MIME.Parts[p].Headers["Content-Type"][0].match(mime + ";?.*")) { - return part.MIME.Parts[p]; - } else if (part.MIME.Parts[p].Headers["Content-Type"][0].match(/multipart\/.*/)) { + if (part.MIME.Parts[p].Headers["Content-Type"][0].match(/multipart\/.*/)) { var f = $scope.findMatchingMIME(part.MIME.Parts[p], mime); if(f != null) { return f; } } + if(part.MIME.Parts[p].Headers["Content-Type"][0].match(mime + ";?.*")) { + return part.MIME.Parts[p]; + } } } }