diff --git a/services/mail/pod-inbound-mail/src/__tests__/__mocks__/2attachments.txt b/services/mail/pod-inbound-mail/src/__tests__/__mocks__/2attachments.txt new file mode 100644 index 0000000000..6e48b44c36 --- /dev/null +++ b/services/mail/pod-inbound-mail/src/__tests__/__mocks__/2attachments.txt @@ -0,0 +1 @@ +--00000000000016290e0636150598\r\nContent-Type: multipart/alternative; boundary=\"00000000000016290c0636150596\"\r\n\r\n--00000000000016290c0636150596\r\nContent-Type: text/plain; charset=\"UTF-8\"\r\n\r\nSend huly.png and cat.png\r\n\r\n--00000000000016290c0636150596\r\nContent-Type: text/html; charset=\"UTF-8\"\r\n\r\n
Send huly.png and cat.png
\r\n\r\n--00000000000016290c0636150596--\r\n--00000000000016290e0636150598\r\nContent-Type: image/png; name=\"huly.png\"\r\nContent-Disposition: attachment; filename=\"huly.png\"\r\nContent-Transfer-Encoding: base64\r\nContent-ID: \r\nX-Attachment-Id: f_mb5wv8ht1\r\n\r\n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\r\n79HfU74X7JXvfbEvY9+N/VH7mw8wD9T9avPruoP0g2X1SP20+p4GYUNHY1pj+6HIQ81Nfk0HD7sc\r\n3n7E4kjVUb2jS45RjpUc6z9edLz3hORE98nsk4+bJzbfPTXm1LWW+Ja201Gnz50JO3PqLOvs8XP+\r\n546c9z1/6ALzQsNFr4v1rZ6tB3/z/O1gm1db/SXvS42XfS43tY9qP3Yl8MrJqyFXz1zjXLt4PeZ6\r\n+43kG7dujrvZcYt/6/ntvNuv7xTe6bs75x7hXtl9rfsVD0weVP/u8PueDq+Oow9DHrY+Snx09zHv\r\n8csnsiefO0ue0p5WPDN/VvPc7fmRrrCuyy/Gvuh8KXnZ1136h/Yf617Zv/r1z6A/W3vG9HS+lr7u\r\nf7PordHb7X95/NXcG9f74F3+u773ZR+MPuz4yPx49lPqp2d9Uz6TPld+cfjS9DXq673+/P5+CVfK\r\nHfgUwOBAs7IAeLMdAFoaAHTYt1HGKnvBAUGU/esAAv8JK/vFAfECoA5+v8d3w6+bmwDs3QrbL8iv\r\nCXvVOBoAST4AdXcfGiqRZbm7KbmosE8hPOjvfwt7NtIKAL4s7e/vq+7v/7IFBgt7xxNiZQ+qECLs\r\nGTaFfsnMzwT/RpT96Xc5/ngHigg8wI/3fwEZh5CbuXD++AAAAIplWElmTU0AKgAAAAgABAEaAAUA\r\nAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAIdpAAQAAAABAAAATgAAAAAAAACQAAAAAQAA\r\nAJAAAAABAAOShgAHAAAAEgAAAHigAgAEAAAAAQAAAE6gAwAEAAAAAQAAAE4AAAAAQVNDSUkAAABT\r\nY3JlZW5zaG901908xQAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAAdRpVFh0WE1MOmNvbS5hZG9iZS54\r\nbXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBD\r\nb3JlIDYuMC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5\r\nLzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9\r\nIiIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8i\r\nPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+Nzg8L2V4aWY6UGl4ZWxZRGltZW5zaW9u\r\nPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+Nzg8L2V4aWY6UGl4ZWxYRGltZW5zaW9u\r\nPgogICAgICAgICA8ZXhpZjpVc2VyQ29tbWVudD5TY3JlZW5zaG90PC9leGlmOlVzZXJDb21tZW50\r\nPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KAf3Y\r\n0AAAABxpRE9UAAAAAgAAAAAAAAAnAAAAKAAAACcAAAAnAAAIVuqcmxMAAAgiSURBVHgB7JpbbBRV\r\nGMf/u3PZtlu8gpUouBRorXgBIfpAAvriuzEaY2JIjMb4YoiReI0IIjFqfPPFF6MPGtAE1BiDCYpc\r\nW2jlJhQoNQSsFFHasrfZ3dkdv/93Oms1SrZTk77MSaY7c2bOnO/8zv/7zncGEpWKHyAukyaQiMFN\r\nmpk2iMFF44YYXAwuIoGIzWLFxeAiEojYLFZcDC4igYjNYsXF4CISiNgsVlwMLiKBiM1ixcXgIhKI\r\n2CxWXAwuIoGIzWLFxeAiEojY7H9RXBAEKJUq8GsAz+UvErUA1VoNtVqVl6giob+uk0A63QzLsiKa\r\nbJqVymUMDQ1jbCwrfbCfmvadSCTg+76csy6QrgM0NTUhM/cmzJo1c0p9Tmw8ZXCVShVnzo/g3PAY\r\nqoGNpBhqWQnUZADlisCUgzCTCaFalcFVfcxpuxZdHTfBdZ2JtjR8Xix62PZdD/pPDMiElXSCqtUq\r\nUqkU8vm89lmTPgmzKWUhl8vhumuuweOPPYTOjvaG+7nSg1MGd/ZCFscHL0ImF8lkEo6dhCUHB8SZ\r\np/EsNRlYdcL18sUZzG677kq2/ee94ycGsfXr71CViWAfPAitWCyOq81Ac10X2eyoPEcFBljQnsGa\r\n1U//53snc2NK4GjMkYFhnLuQV0W5riW/FjyBxlITd6HrEF6lbJRXk0GwbmnXzZg3t20yttaf3bOv\r\nF9t39YrCDSDHceB5RVRE3eFEuZYt0HJy7Qu4qkwqMHPm9Vj38mqd4PrLIp5MCRz7/PHYGfzyRwlN\r\njiUuCnhlX00h1BCaXzHK0zpxZQ5ucccNWNg+N5LZu/YcwI49ffClD+OeOYXD9/JgXW7sspyzL9N3\r\n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\r\nNl/7NzMsnJ5j57Y3AAAAAElFTkSuQmCC\r\n--00000000000016290e0636150598\r\nContent-Type: image/png; name=\"cat.png\"\r\nContent-Disposition: attachment; filename=\"cat.png\"\r\nContent-Transfer-Encoding: base64\r\nContent-ID: \r\nX-Attachment-Id: f_mb5wv8hi0\r\n\r\niVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAMbWlDQ1BJQ0MgUHJvZmlsZQAASImV\r\nVwdYU8kWnluSkJDQQpcSehNEagApIbQA0otgIySBhBJjQlCxI4sKrl1EsaKrIoptBcSO2FkUe18s\r\nqCjroi42VN6EBHTdV753vm/u/XPmzH/Kncm9BwDND1yJJA/VAiBfXCBNCA9mjElLZ5C6AAIoQB+o\r\nA5zLk0lYcXHRAMrg/e/y7ga0hnLVWcH1z/n/Kjp8gYwHADIO4ky+jJcP8QkA8HU8ibQAAKJCbzWl\r\nQKLAcyDWlcIAIV6pwNlKvEOBM5X4yIBNUgIb4ssAqFG5XGk2ABr3oJ5RyMuGPBqfIXYV80ViADSH\r\nQxzAE3L5ECtiH56fP0mBKyG2h/YSiGE8gJn5HWf23/gzh/i53OwhrMxrQNRCRDJJHnfa/1ma/y35\r\nefJBH7ZwUIXSiARF/rCGt3InRSkwFeJucWZMrKLWEH8Q8ZV1BwClCOURyUp71IQnY8P6wWcOUFc+\r\nNyQKYhOIw8R5MdEqfWaWKIwDMdwt6FRRAScJYkOIFwhkoYkqm03SSQkqX2h9lpTNUunPcaUDfhW+\r\nHshzk1kq/jdCAUfFj2kUCZNSIaZAbF0oSomBWANiF1luYpTKZlSRkB0zaCOVJyjit4Y4QSAOD1by\r\nY4VZ0rAElX1ZvmwwX2yTUMSJUeH9BcKkCGV9sBYedyB+mAt2WSBmJQ/yCGRjogdz4QtCQpW5Y88F\r\n4uREFc8HSUFwgnItTpHkxanscUtBXrhCbwmxh6wwUbUWTymAm1PJj2dJCuKSlHHiRTncyDhlPPhS\r\nEA3YIAQwgByOTDAJ5ABRW3dDN/ylnAkDXCAF2UAAnFWawRWpAzNieE0EReAPiARANrQueGBWAAqh\r\n/suQVnl1BlkDs4UDK3LBU4jzQRTIg7/lA6vEQ95SwBOoEf3DOxcOHow3Dw7F/L/XD2q/aVhQE63S\r\nyAc9MjQHLYmhxBBiBDGM6IAb4wG4Hx4Nr0FwuOFM3Gcwj2/2hKeEdsIjwnVCB+H2RFGx9IcoR4MO\r\nyB+mqkXm97XAbSGnJx6M+0N2yIzr48bAGfeAflh4IPTsCbVsVdyKqjB+4P5bBt89DZUd2ZWMkg3I\r\nQWT7H1dqOGp4DrEoav19fZSxZg7Vmz0086N/9nfV58N71I+W2ALsAHYWO4mdx45gDYCBHccasVbs\r\nqAIP7a4nA7tr0FvCQDy5kEf0D39clU9FJWWuta5drp+VcwWCqQWKg8eeJJkmFWULCxgs+HYQMDhi\r\nnstwhpurmycAineN8u/rbfzAOwTRb/2mm/c7AP7H+/v7D3/TRR4HYJ83PP6HvunsmQBoqwNw7hBP\r\nLi1U6nDFhQD/JTThSTMCZsAK2MN83IAX8ANBIBREgliQBNLABFhlIdznUjAFzABzQSkoB0vBKrAW\r\nbARbwA6wG+wHDeAIOAnOgIvgMrgO7sLd0wlegh7wDvQhCEJCaAgdMULMERvECXFDmEgAEopEIwlI\r\nGpKBZCNiRI7MQOYh5chyZC2yGalB9iGHkJPIeaQduY08RLqQN8gnFEOpqC5qitqiI1AmykKj0CR0\r\nPJqNTkaL0BJ0MVqJVqO70Hr0JHoRvY52oC/RXgxg6pg+ZoE5Y0yMjcVi6VgWJsVmYWVYBVaN1WFN\r\n8DlfxTqwbuwjTsTpOAN3hjs4Ak/GefhkfBa+CF+L78Dr8Rb8Kv4Q78G/EmgEE4ITwZfAIYwhZBOm\r\nEEoJFYRthIOE0/AsdRLeEYlEfaId0RuexTRiDnE6cRFxPXEP8QSxnfiY2EsikYxITiR/UiyJSyog\r\nlZLWkHaRjpOukDpJH9TU1czV3NTC1NLVxGrFahVqO9WOqV1Re6bWR9Yi25B9ybFkPnkaeQl5K7mJ\r\nfIncSe6jaFPsKP6UJEoOZS6lklJHOU25R3mrrq5uqe6jHq8uUp+jXqm+V/2c+kP1j1QdqiOVTR1H\r\nlVMXU7dTT1BvU9/SaDRbWhAtnVZAW0yroZ2iPaB90KBruGhwNPgaszWqNOo1rmi80iRr2miyNCdo\r\nFmlWaB7QvKTZrUXWstVia3G1ZmlVaR3SuqnVq03XHqkdq52vvUh7p/Z57ec6JB1bnVAdvk6Jzhad\r\nUzqP6Rjdis6m8+jz6Fvpp+mdukRdO12Obo5uue5u3TbdHj0dPQ+9FL2pelV6R/U69DF9W32Ofp7+\r\nEv39+jf0PxmYGrAMBAYLDeoMrhi8NxxmGGQoMCwz3GN43fCTEcMo1CjXaJlRg9F9Y9zY0TjeeIrx\r\nBuPTxt3DdIf5DeMNKxu2f9gdE9TE0STBZLrJFpNWk15TM9NwU4npGtNTpt1m+mZBZjlmK82OmXWZ\r\n080DzEXmK82Pm79g6DFYjDxGJaOF0WNhYhFhIbfYbNFm0WdpZ5lsWWy5x/K+FcWKaZVltdKq2arH\r\n2tx6tPUM61rrOzZkG6aN0Ga1zVmb97Z2tqm2820bbJ/bGdpx7Irsau3u2dPsA+0n21fbX3MgOjAd\r\nch3WO1x2RB09HYWOVY6XnFAnLyeR03qn9uGE4T7DxcOrh990pjqznAuda50fuui7RLsUuzS4vBph\r\nPSJ9xLIRZ0d8dfV0zXPd6np3pM7IyJHFI5tGvnFzdOO5Vbldc6e5h7nPdm90f+3h5CHw2OBxy5Pu\r\nOdpzvmez5xcvby+pV51Xl7e1d4b3Ou+bTF1mHHMR85wPwSfYZ7bPEZ+Pvl6+Bb77ff/0c/bL9dvp\r\n93yU3SjBqK2jHvtb+nP9N/t3BDACMgI2BXQEWgRyA6sDHwVZBfGDtgU9Yzmwcli7WK+CXYOlwQeD\r\n37N92TPZJ0KwkPCQspC2UJ3Q5NC1oQ/CLMOyw2rDesI9w6eHn4ggRERFLIu4yTHl8Dg1nJ5I78iZ\r\nkS1R1KjEqLVRj6Ido6XRTaPR0ZGjV4y+F2MTI45piAWxnNgVsffj7OImxx2OJ8bHxVfFP00YmTAj\r\n4WwiPXFi4s7Ed0nBSUuS7ibbJ8uTm1M0U8al1KS8Tw1JXZ7aMWbEmJljLqYZp4nSGtNJ6Snp29J7\r\nx4aOXTW2c5znuNJxN8bbjZ86/vwE4wl5E45O1JzInXggg5CRmrEz4zM3llvN7c3kZK7L7OGxeat5\r\nL/lB/JX8LoG/YLngWZZ/1vKs59n+2Suyu4SBwgpht4gtWit6nRORszHnfW5s7vbc/rzUvD35avkZ\r\n+YfEOuJcccsks0lTJ7VLnCSlko7JvpNXTe6RRkm3yRDZeFljgS78qG+V28t/kj8sDCisKvwwJWXK\r\nganaU8VTW6c5Tls47VlRWNEv0/HpvOnNMyxmzJ3xcCZr5uZZyKzMWc2zrWaXzO6cEz5nx1zK3Ny5\r\nvxW7Fi8v/mte6rymEtOSOSWPfwr/qbZUo1RaenO+3/yNC/AFogVtC90Xrln4tYxfdqHctbyi/PMi\r\n3qILP4/8ufLn/sVZi9uWeC3ZsJS4VLz0xrLAZTuWay8vWv54xegV9SsZK8tW/rVq4qrzFR4VG1dT\r\nVstXd1RGVzausV6zdM3ntcK116uCq/asM1m3cN379fz1VzYEbajbaLqxfOOnTaJNtzaHb66vtq2u\r\n2ELcUrjl6daUrWd/Yf5Ss814W/m2L9vF2zt2JOxoqfGuqdlpsnNJLVorr+3aNW7X5d0huxvrnOs2\r\n79HfU74X7JXvfbEvY9+N/VH7mw8wD9T9avPruoP0g2X1SP20+p4GYUNHY1pj+6HIQ81Nfk0HD7sc\r\n3n7E4kjVUb2jS45RjpUc6z9edLz3hORE98nsk4+bJzbfPTXm1LWW+Ja201Gnz50JO3PqLOvs8XP+\r\n546c9z1/6ALzQsNFr4v1rZ6tB3/z/O1gm1db/SXvS42XfS43tY9qP3Yl8MrJqyFXz1zjXLt4PeZ6\r\n+43kG7dujrvZcYt/6/ntvNuv7xTe6bs75x7hXtl9rfsVD0weVP/u8PueDq+Oow9DHrY+Snx09zHv\r\n8csnsiefO0ue0p5WPDN/VvPc7fmRrrCuyy/Gvuh8KXnZ1136h/Yf617Zv/r1z6A/W3vG9HS+lr7u\r\nf7PordHb7X95/NXcG9f74F3+u773ZR+MPuz4yPx49lPqp2d9Uz6TPld+cfjS9DXq673+/P5+CVfK\r\nHfgUwOBAs7IAeLMdAFoaAHTYt1HGKnvBAUGU/esAAv8JK/vFAfECoA5+v8d3w6+bmwDs3QrbL8iv\r\nCXvVOBoAST4AdXcfGiqRZbm7KbmosE8hPOjvfwt7NtIKAL4s7e/vq+7v/7IFBgt7xxNiZQ+qECLs\r\nGTaFfsnMzwT/RpT96Xc5/ngHigg8wI/3fwEZh5CbuXD++AAAAIplWElmTU0AKgAAAAgABAEaAAUA\r\nAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAIdpAAQAAAABAAAATgAAAAAAAACQAAAAAQAA\r\nAJAAAAABAAOShgAHAAAAEgAAAHigAgAEAAAAAQAAAECgAwAEAAAAAQAAAEAAAAAAQVNDSUkAAABT\r\nY3JlZW5zaG90PDzW7wAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAAdRpVFh0WE1MOmNvbS5hZG9iZS54\r\nbXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBD\r\nb3JlIDYuMC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5\r\nLzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9\r\nIiIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8i\r\nPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+NjQ8L2V4aWY6UGl4ZWxZRGltZW5zaW9u\r\nPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NjQ8L2V4aWY6UGl4ZWxYRGltZW5zaW9u\r\nPgogICAgICAgICA8ZXhpZjpVc2VyQ29tbWVudD5TY3JlZW5zaG90PC9leGlmOlVzZXJDb21tZW50\r\nPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KzFR6\r\nTgAAABxpRE9UAAAAAgAAAAAAAAAgAAAAKAAAACAAAAAgAAAJt9JZtS4AAAmDSURBVHgB7Fl9jBR3\r\nGX52Pnb39va+uE9ub7lv4I4DWguhEYVi1VhJW4laS/yIMUqT1opi6lcq1TRpaqwx8EcTY2Lqn6JV\r\nMSraQgwtQUwppXDAXbnljrvr3XFwu3d7uzs7OzO7Pu9vuQRbmnBbY4jwO3ZmZ3bmN+/7vM/7vO9v\r\n8BU4cAsPXz6fL/h8PggOt+Led5sBZMAtnAG4zYBbPgVuAyDyfwuPm14DMnYab/S/BjfpIu/l4flc\r\nNLVG0Ne19r8StpsegBf+9AtMnp6Ak7HZq+TheC7MShM7duzE0vrm9w3CTQmAZGXKmsf+Q/sw/uYo\r\nspmslCsCADiuqxq2lRv68NCDn4ffDLwvEG5KAFKZJH5/4DeYHBiHYzvwXA9g9KVlcZkGPECwMoRP\r\nb38Yvd2r/78AmIiP4eV//A3jZy4Cyu8CHecXOp0nEG4+r5jg0324d+snsGXTx/73ALw1fA5/PPhb\r\nLKtrRbiyEt1dKxFtbEUoGCrZGM/zMDIRwyuHD2Hk7DDAaOu6rhyXSQt03PMK8AiGpIisW9p7O7F9\r\n+5dRXhYu+bmLToF46gr27n0OTtymERpITGghDUuboqhtqscn770flQTlRkdiPo7Z2TgGB8/ijROv\r\nY+DkOTg5Bw319agIh2HoGmNPALjxSP88UwGa/NPgr/Xj0Ud2oa6m4UYf967rFg3A0f7D2P/CizCg\r\nFwGgKmezNi4n4hgaHkJ9UyOeePI7+PC6Le962MKJOWsOF8bO418nX4We9kNzfEjOzeLY0WM4cfIk\r\nuruXoy0aRVVVFQHQFQByr6RCnkzRCIrp98PyMvjmrh+guSmyMPWi94sG4J/9r+DFX+2DeRUAjwCk\r\n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\r\nRK5CYII=\r\n--00000000000016290e0636150598--\r\n \ No newline at end of file diff --git a/services/mail/pod-inbound-mail/src/__tests__/__mocks__/attachment.txt b/services/mail/pod-inbound-mail/src/__tests__/__mocks__/attachment.txt new file mode 100644 index 0000000000..eb2106e20a --- /dev/null +++ b/services/mail/pod-inbound-mail/src/__tests__/__mocks__/attachment.txt @@ -0,0 +1 @@ +\r\n--000000000000384e1705e9d0930b\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/html\r\n\r\n
Attached huly.png
\r\n--000000000000384e1705e9d0930b\r\nContent-Disposition: attachment;\r\n\tfilename=\"huly.png\"\r\nContent-Transfer-Encoding: base64\r\nContent-Type: image/png;\r\n\tname=\"huly.png\"\r\n\r\n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\r\n79HfU74X7JXvfbEvY9+N/VH7mw8wD9T9avPruoP0g2X1SP20+p4GYUNHY1pj+6HIQ81Nfk0HD7sc\r\n3n7E4kjVUb2jS45RjpUc6z9edLz3hORE98nsk4+bJzbfPTXm1LWW+Ja201Gnz50JO3PqLOvs8XP+\r\n546c9z1/6ALzQsNFr4v1rZ6tB3/z/O1gm1db/SXvS42XfS43tY9qP3Yl8MrJqyFXz1zjXLt4PeZ6\r\n+43kG7dujrvZcYt/6/ntvNuv7xTe6bs75x7hXtl9rfsVD0weVP/u8PueDq+Oow9DHrY+Snx09zHv\r\n8csnsiefO0ue0p5WPDN/VvPc7fmRrrCuyy/Gvuh8KXnZ1136h/Yf617Zv/r1z6A/W3vG9HS+lr7u\r\nf7PordHb7X95/NXcG9f74F3+u773ZR+MPuz4yPx49lPqp2d9Uz6TPld+cfjS9DXq673+/P5+CVfK\r\nHfgUwOBAs7IAeLMdAFoaAHTYt1HGKnvBAUGU/esAAv8JK/vFAfECoA5+v8d3w6+bmwDs3QrbL8iv\r\nCXvVOBoAST4AdXcfGiqRZbm7KbmosE8hPOjvfwt7NtIKAL4s7e/vq+7v/7IFBgt7xxNiZQ+qECLs\r\nGTaFfsnMzwT/RpT96Xc5/ngHigg8wI/3fwEZh5CbuXD++AAAAIplWElmTU0AKgAAAAgABAEaAAUA\r\nAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAIdpAAQAAAABAAAATgAAAAAAAACQAAAAAQAA\r\nAJAAAAABAAOShgAHAAAAEgAAAHigAgAEAAAAAQAAAE6gAwAEAAAAAQAAAE4AAAAAQVNDSUkAAABT\r\nY3JlZW5zaG901908xQAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAAdRpVFh0WE1MOmNvbS5hZG9iZS54\r\nbXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBD\r\nb3JlIDYuMC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5\r\nLzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9\r\nIiIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8i\r\nPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+Nzg8L2V4aWY6UGl4ZWxZRGltZW5zaW9u\r\nPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+Nzg8L2V4aWY6UGl4ZWxYRGltZW5zaW9u\r\nPgogICAgICAgICA8ZXhpZjpVc2VyQ29tbWVudD5TY3JlZW5zaG90PC9leGlmOlVzZXJDb21tZW50\r\nPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KAf3Y\r\n0AAAABxpRE9UAAAAAgAAAAAAAAAnAAAAKAAAACcAAAAnAAAIVuqcmxMAAAgiSURBVHgB7JpbbBRV\r\nGMf/u3PZtlu8gpUouBRorXgBIfpAAvriuzEaY2JIjMb4YoiReI0IIjFqfPPFF6MPGtAE1BiDCYpc\r\nW2jlJhQoNQSsFFHasrfZ3dkdv/93Oms1SrZTk77MSaY7c2bOnO/8zv/7zncGEpWKHyAukyaQiMFN\r\nmpk2iMFF44YYXAwuIoGIzWLFxeAiEojYLFZcDC4igYjNYsXF4CISiNgsVlwMLiKBiM1ixcXgIhKI\r\n2CxWXAwuIoGIzWLFxeAiEojY7H9RXBAEKJUq8GsAz+UvErUA1VoNtVqVl6giob+uk0A63QzLsiKa\r\nbJqVymUMDQ1jbCwrfbCfmvadSCTg+76csy6QrgM0NTUhM/cmzJo1c0p9Tmw8ZXCVShVnzo/g3PAY\r\nqoGNpBhqWQnUZADlisCUgzCTCaFalcFVfcxpuxZdHTfBdZ2JtjR8Xix62PZdD/pPDMiElXSCqtUq\r\nUqkU8vm89lmTPgmzKWUhl8vhumuuweOPPYTOjvaG+7nSg1MGd/ZCFscHL0ImF8lkEo6dhCUHB8SZ\r\np/EsNRlYdcL18sUZzG677kq2/ee94ycGsfXr71CViWAfPAitWCyOq81Ac10X2eyoPEcFBljQnsGa\r\n1U//53snc2NK4GjMkYFhnLuQV0W5riW/FjyBxlITd6HrEF6lbJRXk0GwbmnXzZg3t20yttaf3bOv\r\nF9t39YrCDSDHceB5RVRE3eFEuZYt0HJy7Qu4qkwqMHPm9Vj38mqd4PrLIp5MCRz7/PHYGfzyRwlN\r\njiUuCnhlX00h1BCaXzHK0zpxZQ5ucccNWNg+N5LZu/YcwI49ffClD+OeOYXD9/JgXW7sspyzL9N3\r\n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\r\nNl/7NzMsnJ5j57Y3AAAAAElFTkSuQmCC\r\n--000000000000384e1705e9d0930b-- \ No newline at end of file diff --git a/services/mail/pod-inbound-mail/src/__tests__/handlerMta.test.ts b/services/mail/pod-inbound-mail/src/__tests__/handlerMta.test.ts index e6a3047fd6..2bba73dd38 100644 --- a/services/mail/pod-inbound-mail/src/__tests__/handlerMta.test.ts +++ b/services/mail/pod-inbound-mail/src/__tests__/handlerMta.test.ts @@ -394,6 +394,10 @@ describe('handleMtaHook', () => { it('should process HTML email correctly', async () => { // Mock request with HTML content const htmlContent = '

Hello

This is an HTML test email

' + const expectedContent = `Hello +===== + +This is an **HTML** test email` mockReq = { headers: { 'x-hook-token': 'test-hook-token' }, body: createValidMtaMessage('sender@example.com', ['recipient@example.com'], { @@ -423,7 +427,7 @@ describe('handleMtaHook', () => { from: { email: 'sender@example.com', firstName: 'sender', lastName: 'example.com' }, to: [{ email: 'recipient@example.com', firstName: 'recipient', lastName: 'example.com' }], subject: 'HTML Test Subject', - content: htmlContent, + content: expectedContent, incoming: true }), [] // attachments diff --git a/services/mail/pod-inbound-mail/src/__tests__/parseMail.test.ts b/services/mail/pod-inbound-mail/src/__tests__/parseMail.test.ts new file mode 100644 index 0000000000..85f5f47590 --- /dev/null +++ b/services/mail/pod-inbound-mail/src/__tests__/parseMail.test.ts @@ -0,0 +1,115 @@ +// +// Copyright © 2025 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import fs from 'fs/promises' +import path from 'path' +import { MeasureContext } from '@hcengineering/core' +import { parseContent } from '../utils' +import { type MtaMessage } from '../types' + +// Mock config to ensure storage is available for tests +jest.mock('../config', () => ({ + storageConfig: { + // Mock minimal storage config to ensure attachments are processed + type: 'fs', + url: '/tmp' + } +})) + +// Create a mock logger context +const mockContext = { + info: jest.fn(), + warn: jest.fn(), + error: jest.fn() +} as unknown as MeasureContext + +describe('parseContent', () => { + beforeEach(() => { + jest.clearAllMocks() + }) + + test('should parse email with attachment', async () => { + const attachmentEml = await fs.readFile(path.join(__dirname, '__mocks__/attachment.txt'), 'utf-8') + // Create MTA message from the sample email file + const mtaMessage: MtaMessage = { + envelope: { + from: { address: 'test1@example.com' }, + to: [{ address: 'test2@example.com' }] + }, + message: { + headers: [['Content-Type', 'multipart/mixed; boundary="000000000000384e1705e9d0930b"']], + contents: attachmentEml + } + } + + const result = await parseContent(mockContext, mtaMessage) + + // Verify content was parsed + expect(result.content).toContain('Attached huly.png') + + // Verify attachment was extracted + expect(result.attachments.length).toBe(1) + + // Check attachment properties + const attachment = result.attachments[0] + expect(attachment).toHaveProperty('id') + expect(attachment).toHaveProperty('name') + expect(attachment).toHaveProperty('data') + expect(attachment).toHaveProperty('contentType') + + // Verify attachment data is a Buffer + expect(Buffer.isBuffer(attachment.data)).toBe(true) + expect(attachment.name).toBe('huly.png') + }) + + test('should parse email with 2 attachments', async () => { + const attachmentEml = await fs.readFile(path.join(__dirname, '__mocks__/2attachments.txt'), 'utf-8') + // Create MTA message from the sample email file + const mtaMessage: MtaMessage = { + envelope: { + from: { address: 'test1@example.com' }, + to: [{ address: 'test2@example.com' }] + }, + message: { + headers: [['Content-Type', 'multipart/mixed; boundary="00000000000016290e0636150598"']], + contents: attachmentEml + } + } + + const result = await parseContent(mockContext, mtaMessage) + + // Verify content was parsed + expect(result.content).toContain('Send huly.png and cat.png') + + // Verify attachment was extracted + expect(result.attachments.length).toBe(2) + + // Check attachment properties + const attachment = result.attachments[0] + expect(attachment).toHaveProperty('id') + expect(attachment).toHaveProperty('name') + expect(attachment).toHaveProperty('data') + expect(attachment).toHaveProperty('contentType') + + // Verify attachment data is a Buffer + expect(Buffer.isBuffer(attachment.data)).toBe(true) + expect(attachment.name).toBe('huly.png') + + const catAttachment = result.attachments[1] + // Verify attachment data is a Buffer + expect(Buffer.isBuffer(catAttachment.data)).toBe(true) + expect(catAttachment.name).toBe('cat.png') + }) +}) diff --git a/services/mail/pod-inbound-mail/src/utils.ts b/services/mail/pod-inbound-mail/src/utils.ts index ccbbf287bf..a0b41d2ce2 100644 --- a/services/mail/pod-inbound-mail/src/utils.ts +++ b/services/mail/pod-inbound-mail/src/utils.ts @@ -27,7 +27,7 @@ export async function parseContent ( mta: MtaMessage ): Promise<{ content: string, attachments: Attachment[] }> { // TODO: UBERF-11029 - remove this logging after testing - ctx.info('Parsing email content', { content: mta.message.contents }) + ctx.info('Parsing email content', { mta }) const contentType = getHeader(mta, 'Content-Type') if (contentType === undefined) { throw new Error('Content-Type header not found') @@ -37,7 +37,7 @@ export async function parseContent ( return { content: mta.message.contents, attachments: [] } } - const email = await getEmailContent(mta.message.contents, contentType) + const email = await getEmailContent(mta) let content = email.text ?? '' let isMarkdown = false @@ -83,23 +83,34 @@ export async function parseContent ( return { content, attachments } } +export function convertMtaToEml (mta: MtaMessage): string { + return `MIME-Version: 1.0 +Date: ${new Date().toUTCString()} +From: ${mta.envelope.from.address} +To: ${mta.envelope.to.map((to) => to.address).join(', ')} +Content-Type: ${getHeader(mta, 'Content-Type') ?? 'text/plain; charset=utf-8'} + +${unescapeString(mta.message.contents)}` +} + +function unescapeString (str: string): string { + return str + .replace(/\\n/g, '\n') + .replace(/\\r/g, '\r') + .replace(/\\t/g, '\t') + .replace(/\\"/g, '"') + .replace(/\\\\/g, '\\') +} + export function getHeader (mta: MtaMessage, header: string): string | undefined { const h = header.toLowerCase() return mta.message.headers.find((header) => header[0].toLowerCase() === h)?.[1]?.trim() } -async function getEmailContent (mtaContent: string, contentType: string): Promise { - if (mtaContent == null) { - return { - text: '', - html: '', - attachments: [] - } as any - } - const contentRegex = /Content-Type/i - const content = contentRegex.test(mtaContent) ? mtaContent : `Content-Type: ${contentType}\r\n${mtaContent}` +async function getEmailContent (mta: MtaMessage): Promise { + const eml = convertMtaToEml(mta) const email = await new Promise((resolve, reject) => { - readEml(content, (err, json) => { + readEml(eml, (err, json) => { if (err !== undefined && err !== null) { reject(new Error(`Email parsing error: ${err.message}`)) } else if (json === undefined) { @@ -112,7 +123,7 @@ async function getEmailContent (mtaContent: string, contentType: string): Promis if (isEmptyString(email.text) && isEmptyString(email.html)) { return { ...email, - text: removeContentTypeHeader(mtaContent) + text: removeContentTypeHeader(mta.message.contents) } } return email